diff --git a/3rdparty b/3rdparty
index a13af72fbe8983686fc47489a750e60319f68ac2..e312294ef62873df2b8c02e774f9dfe1b7fbc38d 160000
--- a/3rdparty
+++ b/3rdparty
@@ -1 +1 @@
-Subproject commit a13af72fbe8983686fc47489a750e60319f68ac2
+Subproject commit e312294ef62873df2b8c02e774f9dfe1b7fbc38d
diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php
index 05ab1722b3e4f5411bb32671bb69dd03582ecd86..99739cb4cee71461bf43d1a6f0e8143b7e8939a4 100644
--- a/apps/files/appinfo/app.php
+++ b/apps/files/appinfo/app.php
@@ -20,4 +20,4 @@ OC_Search::registerProvider('OC_Search_Provider_File');
 \OC_Hook::connect('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Updater', 'deleteHook');
 \OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook');
 
-\OC_BackgroundJob_RegularTask::register('\OC\Files\Cache\BackgroundWatcher', 'checkNext');
+\OCP\BackgroundJob::addRegularTask('\OC\Files\Cache\BackgroundWatcher', 'checkNext');
diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php
index 6d7953b5639fd9a02633c5e955093a81a08f73e4..6a0186d5a9b1b14d343a486eeb3ac22903cccba9 100644
--- a/apps/files_encryption/ajax/adminrecovery.php
+++ b/apps/files_encryption/ajax/adminrecovery.php
@@ -13,31 +13,47 @@ use OCA\Encryption;
 \OCP\JSON::checkAppEnabled('files_encryption');
 \OCP\JSON::callCheck();
 
-$l=OC_L10N::get('files_encryption');
+$l = OC_L10N::get('files_encryption');
 
 $return = false;
-
 // Enable recoveryAdmin
 
 $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId');
 
-if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){
+if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1') {
 
 	$return = \OCA\Encryption\Helper::adminEnableRecovery($recoveryKeyId, $_POST['recoveryPassword']);
-	$action = "enable";
+
+	// Return success or failure
+	if ($return) {
+		\OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully enabled'))));
+	} else {
+		\OCP\JSON::error(array(
+							  'data' => array(
+								  'message' => $l->t(
+									  'Could not enable recovery key. Please check your recovery key password!')
+							  )
+						 ));
+	}
 
 // Disable recoveryAdmin
 } elseif (
 	isset($_POST['adminEnableRecovery'])
-	&& 0 == $_POST['adminEnableRecovery']
+	&& '0' === $_POST['adminEnableRecovery']
 ) {
 	$return = \OCA\Encryption\Helper::adminDisableRecovery($_POST['recoveryPassword']);
-	$action = "disable";
-}
 
-// Return success or failure
-if ($return) {
-	\OCP\JSON::success(array("data" => array( "message" => $l->t('Recovery key successfully ' . $action.'d'))));
-} else {
-	\OCP\JSON::error(array("data" => array( "message" => $l->t('Could not '.$action.' recovery key. Please check your recovery key password!'))));
+	// Return success or failure
+	if ($return) {
+		\OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully disabled'))));
+	} else {
+		\OCP\JSON::error(array(
+							  'data' => array(
+								  'message' => $l->t(
+									  'Could not disable recovery key. Please check your recovery key password!')
+							  )
+						 ));
+	}
 }
+
+
diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php
index d990796a4fbbec02fe6b19d6d825b78a784efb32..b0594f967ba30c88ff067ef122ba8f4b445eca50 100644
--- a/apps/files_encryption/ajax/changeRecoveryPassword.php
+++ b/apps/files_encryption/ajax/changeRecoveryPassword.php
@@ -6,7 +6,7 @@
  * See the COPYING-README file.
  *
  * @brief Script to change recovery key password
- * 
+ *
  */
 
 use OCA\Encryption;
@@ -15,7 +15,7 @@ use OCA\Encryption;
 \OCP\JSON::checkAppEnabled('files_encryption');
 \OCP\JSON::callCheck();
 
-$l=OC_L10N::get('core');
+$l = OC_L10N::get('core');
 
 $return = false;
 
@@ -28,7 +28,7 @@ $result = $util->checkRecoveryPassword($oldPassword);
 
 if ($result) {
 	$keyId = $util->getRecoveryKeyId();
-	$keyPath = '/owncloud_private_key/' . $keyId . ".private.key";
+	$keyPath = '/owncloud_private_key/' . $keyId . '.private.key';
 	$view = new \OC\Files\View('/');
 
 	$proxyStatus = \OC_FileProxy::$enabled;
@@ -46,7 +46,7 @@ if ($result) {
 
 // success or failure
 if ($return) {
-	\OCP\JSON::success(array("data" => array( "message" => $l->t('Password successfully changed.'))));
+	\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.'))));
+	\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
diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php
index 1f42b376e422f0a044a22ce0dcd2d9d7af3eff85..1d0f1ac2d17219c044942f33cc84c6df36a296ab 100644
--- a/apps/files_encryption/ajax/userrecovery.php
+++ b/apps/files_encryption/ajax/userrecovery.php
@@ -10,32 +10,32 @@
 use OCA\Encryption;
 
 \OCP\JSON::checkLoggedIn();
-\OCP\JSON::checkAppEnabled( 'files_encryption' );
+\OCP\JSON::checkAppEnabled('files_encryption');
 \OCP\JSON::callCheck();
 
-if ( 
-	isset( $_POST['userEnableRecovery'] ) 
-	&& ( 0 == $_POST['userEnableRecovery'] || 1 == $_POST['userEnableRecovery'] )
+if (
+	isset($_POST['userEnableRecovery'])
+	&& (0 == $_POST['userEnableRecovery'] || '1' === $_POST['userEnableRecovery'])
 ) {
 
 	$userId = \OCP\USER::getUser();
-	$view = new \OC_FilesystemView( '/' );
-	$util = new \OCA\Encryption\Util( $view, $userId );
-	
+	$view = new \OC_FilesystemView('/');
+	$util = new \OCA\Encryption\Util($view, $userId);
+
 	// Save recovery preference to DB
-	$return = $util->setRecoveryForUser( $_POST['userEnableRecovery'] );
+	$return = $util->setRecoveryForUser($_POST['userEnableRecovery']);
 
-	if ($_POST['userEnableRecovery'] == "1") {
+	if ($_POST['userEnableRecovery'] === '1') {
 		$util->addRecoveryKeys();
 	} else {
 		$util->removeRecoveryKeys();
 	}
-	
+
 } else {
 
 	$return = false;
-	
+
 }
 
 // Return success or failure
-( $return ) ? \OCP\JSON::success() : \OCP\JSON::error();
\ No newline at end of file
+($return) ? \OCP\JSON::success() : \OCP\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 7d01696e08a51a516553de81a0d2b544930afabf..99bdc2c24702fdea6f15ff29a78d2a225bcf0f67 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -10,7 +10,7 @@ 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() );
+OC_FileProxy::register(new OCA\Encryption\Proxy());
 
 // User related hooks
 OCA\Encryption\Helper::registerUserHooks();
@@ -21,10 +21,16 @@ OCA\Encryption\Helper::registerShareHooks();
 // Filesystem related hooks
 OCA\Encryption\Helper::registerFilesystemHooks();
 
-stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' );
+stream_wrapper_register('crypt', 'OCA\Encryption\Stream');
 
 // check if we are logged in
 if (OCP\User::isLoggedIn()) {
+
+	// ensure filesystem is loaded
+	if(!\OC\Files\Filesystem::$loaded) {
+		\OC_Util::setupFS();
+	}
+
 	$view = new OC_FilesystemView('/');
 	$session = new \OCA\Encryption\Session($view);
 
@@ -46,6 +52,6 @@ if (OCP\User::isLoggedIn()) {
 }
 
 // Register settings scripts
-OCP\App::registerAdmin( 'files_encryption', 'settings-admin' );
-OCP\App::registerPersonal( 'files_encryption', 'settings-personal' );
+OCP\App::registerAdmin('files_encryption', 'settings-admin');
+OCP\App::registerPersonal('files_encryption', 'settings-personal');
 
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index 0ef796dbaef2b5451bf8e32d8c8cb6dff4a1dd3f..d1b08a0b9788d9261b1a01decd384f5b917d6d86 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -37,106 +37,111 @@ class Hooks {
 	 * @brief Startup encryption backend upon user login
 	 * @note This method should never be called for users using client side encryption
 	 */
-	public static function login( $params ) {
-	
+	public static function login($params) {
+
 		// Manually initialise Filesystem{} singleton with correct 
 		// fake root path, in order to avoid fatal webdav errors
-        // NOTE: disabled because this give errors on webdav!
+		// NOTE: disabled because this give errors on webdav!
 		//\OC\Files\Filesystem::init( $params['uid'], '/' . 'files' . '/' );
-	
-		$view = new \OC_FilesystemView( '/' );
 
-		$util = new Util( $view, $params['uid'] );
+		$view = new \OC_FilesystemView('/');
+
+		// ensure filesystem is loaded
+		if(!\OC\Files\Filesystem::$loaded) {
+			\OC_Util::setupFS($params['uid']);
+		}
 
-        // setup user, if user not ready force relogin
-		if(Helper::setupUser($util, $params['password']) === false) {
-            return false;
-        }
+		$util = new Util($view, $params['uid']);
+
+		// setup user, if user not ready force relogin
+		if (Helper::setupUser($util, $params['password']) === false) {
+			return false;
+		}
 
-		$encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] );
-		
-		$privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] );
+		$encryptedKey = Keymanager::getPrivateKey($view, $params['uid']);
+
+		$privateKey = Crypt::symmetricDecryptFileContent($encryptedKey, $params['password']);
+
+		$session = new \OCA\Encryption\Session($view);
+
+		$session->setPrivateKey($privateKey, $params['uid']);
 
-		$session = new \OCA\Encryption\Session( $view );
-		
-		$session->setPrivateKey( $privateKey, $params['uid'] );
-		
 		// Check if first-run file migration has already been performed
 		$migrationCompleted = $util->getMigrationStatus();
-		
+
 		// If migration not yet done
-		if ( ! $migrationCompleted ) {
-		
-			$userView = new \OC_FilesystemView( '/' . $params['uid'] );
-			
+		if (!$migrationCompleted) {
+
+			$userView = new \OC_FilesystemView('/' . $params['uid']);
+
 			// Set legacy encryption key if it exists, to support 
 			// depreciated encryption system
 			if (
-				$userView->file_exists( 'encryption.key' )
-				&& $encLegacyKey = $userView->file_get_contents( 'encryption.key' )
+				$userView->file_exists('encryption.key')
+				&& $encLegacyKey = $userView->file_get_contents('encryption.key')
 			) {
-			
-				$plainLegacyKey = Crypt::legacyBlockDecrypt( $encLegacyKey, $params['password'] );
-				
-				$session->setLegacyKey( $plainLegacyKey );
-			
+
+				$plainLegacyKey = Crypt::legacyBlockDecrypt($encLegacyKey, $params['password']);
+
+				$session->setLegacyKey($plainLegacyKey);
+
 			}
-			
+
 			// Encrypt existing user files:
 			// This serves to upgrade old versions of the encryption
 			// app (see appinfo/spec.txt)
 			if (
-				$util->encryptAll( '/' . $params['uid'] . '/' . 'files', $session->getLegacyKey(), $params['password'] )
+				$util->encryptAll('/' . $params['uid'] . '/' . 'files', $session->getLegacyKey(), $params['password'])
 			) {
-				
-				\OC_Log::write( 
+
+				\OC_Log::write(
 					'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" completed'
-					, \OC_Log::INFO 
+					, \OC_Log::INFO
 				);
-			
+
 			}
 
 			// Register successful migration in DB
-			$util->setMigrationStatus( 1 );
-		
+			$util->setMigrationStatus(1);
+
 		}
 
 		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( '/' );
+	/**
+	 * @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'] );
+		$util = new Util($view, $params['uid']);
 
-        Helper::setupUser($util, $params['password']);
-    }
+		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( '/' );
+	/**
+	 * @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';
+		// 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;
+		// Disable encryption proxy to prevent recursive calls
+		$proxyStatus = \OC_FileProxy::$enabled;
+		\OC_FileProxy::$enabled = false;
 
-        $view->unlink($publicKey);
+		$view->unlink($publicKey);
 
-        \OC_FileProxy::$enabled = $proxyStatus;
-    }
+		\OC_FileProxy::$enabled = $proxyStatus;
+	}
 
-    /**
+	/**
 	 * @brief Change a user's encryption passphrase
 	 * @param array $params keys: uid, password
 	 */
@@ -145,9 +150,9 @@ class Hooks {
 		// 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') {
 
-			if ($params['uid'] == \OCP\User::getUser()) {
+			if ($params['uid'] === \OCP\User::getUser()) {
 
 				$view = new \OC_FilesystemView('/');
 
@@ -165,10 +170,10 @@ class Hooks {
 				// 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'];
@@ -179,21 +184,22 @@ class Hooks {
 				\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'] );
+				$view->file_put_contents('/public-keys/' . $user . '.public.key', $keypair['publicKey']);
 
 				// Encrypt private key empty passphrase
-				$encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], $newUserPassword );
+				$encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $newUserPassword);
 
 				// Save private key
-				$view->file_put_contents( '/'.$user.'/files_encryption/'.$user.'.private.key', $encryptedPrivateKey );
+				$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
+				if ($recoveryPassword) { // if recovery key is set we can re-encrypt the key files
 					$util = new Util($view, $user);
 					$util->recoverUsersFiles($recoveryPassword);
 				}
@@ -231,16 +237,17 @@ class Hooks {
 			}
 		}
 
-		if($error)
-			// Set flag var 'run' to notify emitting
+		if ($error) // 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
+		}
+		// TODO: Make sure files_sharing provides user
+		// feedback on failed share
 	}
 
 	/**
-	 * @brief 
+	 * @brief
 	 */
 	public static function postShared($params) {
 
@@ -273,7 +280,7 @@ class Hooks {
 
 			$share = $util->getParentFromShare($params['id']);
 			//if parent is set, then this is a re-share action
-			if ($share['parent'] != null) {
+			if ($share['parent'] !== null) {
 
 				// get the parent from current share
 				$parent = $util->getShareParent($params['parent']);
@@ -325,6 +332,12 @@ class Hooks {
 
 			$sharingEnabled = \OCP\Share::isEnabled();
 
+			// get the path including mount point only if not a shared folder
+			if(strncmp($path, '/Shared' , strlen('/Shared') !== 0)) {
+				// get path including the the storage mount point
+				$path = $util->getPathWithMountPoint($params['itemSource']);
+			}
+
 			// if a folder was shared, get a list of all (sub-)folders
 			if ($params['itemType'] === 'folder') {
 				$allFiles = $util->getAllFiles($path);
@@ -334,15 +347,15 @@ class Hooks {
 
 			foreach ($allFiles as $path) {
 				$usersSharing = $util->getSharingUsersArray($sharingEnabled, $path);
-				$util->setSharedFileKeyfiles( $session, $usersSharing, $path );
+				$util->setSharedFileKeyfiles($session, $usersSharing, $path);
 			}
 		}
 	}
-	
+
 	/**
-	 * @brief 
+	 * @brief
 	 */
-	public static function postUnshare( $params ) {
+	public static function postUnshare($params) {
 
 		// NOTE: $params has keys:
 		// [itemType] => file
@@ -351,40 +364,34 @@ class Hooks {
 		// [shareWith] => test1
 		// [itemParent] =>
 
-		if ( $params['itemType'] === 'file' || $params['itemType'] === 'folder' ) {
+		if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
 
-			$view = new \OC_FilesystemView( '/' );
+			$view = new \OC_FilesystemView('/');
 			$userId = \OCP\User::getUser();
-			$util = new Util( $view, $userId);
-			$path = $util->fileIdToPath( $params['itemSource'] );
+			$util = new Util($view, $userId);
+			$path = $util->fileIdToPath($params['itemSource']);
 
 			// check if this is a re-share
-			if ( $params['itemParent'] ) {
+			if ($params['itemParent']) {
 
 				// get the parent from current share
-				$parent = $util->getShareParent( $params['itemParent'] );
+				$parent = $util->getShareParent($params['itemParent']);
 
 				// get target path
-				$targetPath = $util->fileIdToPath( $params['itemSource'] );
-				$targetPathSplit = array_reverse( explode( '/', $targetPath ) );
+				$targetPath = $util->fileIdToPath($params['itemSource']);
+				$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
@@ -392,118 +399,127 @@ class Hooks {
 			}
 
 			// for group shares get a list of the group members
-			if ( $params['shareType'] == \OCP\Share::SHARE_TYPE_GROUP ) {
+			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 ($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK) {
+					$userIds = array($util->getPublicShareKeyId());
+				} else {
+					$userIds = array($params['shareWith']);
+				}
+			}
+
+			// get the path including mount point only if not a shared folder
+			if(strncmp($path, '/Shared' , strlen('/Shared') !== 0)) {
+				// get path including the the storage mount point
+				$path = $util->getPathWithMountPoint($params['itemSource']);
 			}
 
 			// if we unshare a folder we need a list of all (sub-)files
-			if ( $params['itemType'] === 'folder' ) {
-			
+			if ($params['itemType'] === 'folder') {
 				$allFiles = $util->getAllFiles( $path );
-				
 			} else {
-			
-				$allFiles = array( $path );
+				$allFiles = array($path);
 			}
 
-			foreach ( $allFiles as $path ) {
+			foreach ($allFiles as $path) {
 
 				// check if the user still has access to the file, otherwise delete share key
-				$sharingUsers = $util->getSharingUsersArray( true, $path );
+				$sharingUsers = $util->getSharingUsersArray(true, $path);
 
 				// Unshare every user who no longer has access to the file
-				$delUsers = array_diff( $userIds, $sharingUsers);
+				$delUsers = array_diff($userIds, $sharingUsers);
 
 				// delete share key
-				Keymanager::delShareKey( $view, $delUsers, $path );
+				Keymanager::delShareKey($view, $delUsers, $path);
 			}
 
 		}
 	}
-	
+
 	/**
-     * @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
-     *
-     * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
-     * of the stored versions along the actual file
-     */
-    public static function postRename($params) {
-        // Disable encryption proxy to prevent recursive calls
-        $proxyStatus = \OC_FileProxy::$enabled;
-        \OC_FileProxy::$enabled = false;
-
-        $view = new \OC_FilesystemView('/');
-        $session = new \OCA\Encryption\Session($view);
-        $userId = \OCP\User::getUser();
-        $util = new Util( $view, $userId );
-
-        // Format paths to be relative to user files dir
-        $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)) {
-            $oldKeyfilePath .= '.key';
-            $newKeyfilePath .= '.key';
-
-            // handle share-keys
-            $localKeyPath = $view->getLocalFile($userId.'/files_encryption/share-keys/'.$params['oldpath']);
-            $matches = glob(preg_quote($localKeyPath).'*.shareKey');
-            foreach ($matches as $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 = \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);
-        }
-
-        // build the path to the file
-        $newPath = '/' . $userId . '/files' .$params['newpath'];
-        $newPathRelative = $params['newpath'];
-
-        if($util->fixFileSize($newPath)) {
-            // get sharing app state
-            $sharingEnabled = \OCP\Share::isEnabled();
-
-            // get users
-            $usersSharing = $util->getSharingUsersArray($sharingEnabled, $newPathRelative);
-
-            // update sharing-keys
-            $util->setSharedFileKeyfiles($session, $usersSharing, $newPathRelative);
-        }
-
-        \OC_FileProxy::$enabled = $proxyStatus;
-    }
+	 * @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
+	 *
+	 * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
+	 * of the stored versions along the actual file
+	 */
+	public static function postRename($params) {
+		// Disable encryption proxy to prevent recursive calls
+		$proxyStatus = \OC_FileProxy::$enabled;
+		\OC_FileProxy::$enabled = false;
+
+		$view = new \OC_FilesystemView('/');
+		$session = new \OCA\Encryption\Session($view);
+		$userId = \OCP\User::getUser();
+		$util = new Util($view, $userId);
+
+		// Format paths to be relative to user files dir
+		$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)) {
+			$oldKeyfilePath .= '.key';
+			$newKeyfilePath .= '.key';
+
+			// handle share-keys
+			$localKeyPath = $view->getLocalFile($userId . '/files_encryption/share-keys/' . $params['oldpath']);
+			$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
+			foreach ($matches as $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 = \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);
+		}
+
+		// build the path to the file
+		$newPath = '/' . $userId . '/files' . $params['newpath'];
+		$newPathRelative = $params['newpath'];
+
+		if ($util->fixFileSize($newPath)) {
+			// get sharing app state
+			$sharingEnabled = \OCP\Share::isEnabled();
+
+			// get users
+			$usersSharing = $util->getSharingUsersArray($sharingEnabled, $newPathRelative);
+
+			// update sharing-keys
+			$util->setSharedFileKeyfiles($session, $usersSharing, $newPathRelative);
+		}
+
+		\OC_FileProxy::$enabled = $proxyStatus;
+	}
 }
diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php
index 5ab283ccab345274ceb7bf4b1a0ee389ebcd1e17..884ed3c50b03d0439e5b752049b32eff721c5bed 100644
--- a/apps/files_encryption/l10n/de_DE.php
+++ b/apps/files_encryption/l10n/de_DE.php
@@ -1,9 +1,19 @@
 <?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
+"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
+"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
 "Password successfully changed." => "Das Passwort wurde erfolgreich geändert.",
 "Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
 "Saving..." => "Speichern...",
 "Encryption" => "Verschlüsselung",
+"Recovery account password" => "Account-Passwort wiederherstellen",
 "Enabled" => "Aktiviert",
 "Disabled" => "Deaktiviert",
-"Change Password" => "Passwort ändern"
+"Old Recovery account password" => "Altes Passwort für die Account-Wiederherstellung",
+"New Recovery account password" => "Neues Passwort für die Account-Wiederherstellung",
+"Change Password" => "Passwort ändern",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
+"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
+"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden."
 );
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php
index 7311a78f09b3edeeff95fa91a76773621ff48948..58adbd716a839eedd84becaeac32ecdf4a3e4ab7 100644
--- a/apps/files_encryption/l10n/es.php
+++ b/apps/files_encryption/l10n/es.php
@@ -1,4 +1,22 @@
 <?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Se ha habilitado la recuperación de archivos",
+"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
+"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
+"Password successfully changed." => "Su contraseña ha sido cambiada",
+"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
 "Saving..." => "Guardando...",
-"Encryption" => "Cifrado"
+"Encryption" => "Cifrado",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Habilitar clave de recuperación de contraseñas ():",
+"Recovery account password" => "Recuperar contraseña",
+"Enabled" => "Habilitar",
+"Disabled" => "Deshabilitado",
+"Change encryption passwords recovery key:" => "Cambiar clave de cifrado de contraseñas:",
+"Old Recovery account password" => "Contraseña de recuperación actual",
+"New Recovery account password" => "Contraseña de recuperación nueva",
+"Change Password" => "Cambiar contraseña",
+"Enable password recovery by sharing all files with your administrator:" => "Habilitar recuperación de contraseña compartiendo todos los archivos con su administrador",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Habilitar esta opción para poder acceder a sus archivos cifrados si pierde su contraseña",
+"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
+"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos"
 );
diff --git a/apps/files_encryption/l10n/et_EE.php b/apps/files_encryption/l10n/et_EE.php
index daa0b118821970ef99a2c595281fdf8580491a29..e762647f782f6d1ebec868c393af9c6f13b178c3 100644
--- a/apps/files_encryption/l10n/et_EE.php
+++ b/apps/files_encryption/l10n/et_EE.php
@@ -1,7 +1,22 @@
 <?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Taastevõtme lubamine õnnestus",
+"Could not enable recovery key. Please check your recovery key password!" => "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+"Recovery key successfully disabled" => "Taastevõtme keelamine õnnestus",
+"Could not disable recovery key. Please check your recovery key password!" => "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+"Password successfully changed." => "Parool edukalt vahetatud.",
+"Could not change the password. Maybe the old password was not correct." => "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
 "Saving..." => "Salvestamine...",
 "Encryption" => "Krüpteerimine",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Luba krüpteerimise paroolide taastevõti (võimalda parooli jagamine taastevõtmesse):",
+"Recovery account password" => "Konto taasteparool",
 "Enabled" => "Sisse lülitatud",
 "Disabled" => "Väljalülitatud",
-"Change Password" => "Muuda parooli"
+"Change encryption passwords recovery key:" => "Muuda taaste võtme krüpteerimise paroole:",
+"Old Recovery account password" => "Konto vana taaste parool",
+"New Recovery account password" => "Konto uus taasteparool",
+"Change Password" => "Muuda parooli",
+"Enable password recovery by sharing all files with your administrator:" => "Luba parooli taaste jagades kõik failid administraatoriga:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parool on kadunud",
+"File recovery settings updated" => "Faili taaste seaded uuendatud",
+"Could not update file recovery" => "Ei suuda uuendada taastefaili"
 );
diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php
index 4c53c7e3d2be1b0dbbdd0f1354cbbb9ba92fe23f..ca93efba9aa20d76af5003a99812f6c559dc1de5 100644
--- a/apps/files_encryption/l10n/gl.php
+++ b/apps/files_encryption/l10n/gl.php
@@ -1,6 +1,8 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "O contrasinal foi recuperado satisfactoriamente",
-"Could not " => "Non foi posíbel",
+"Recovery key successfully enabled" => "Activada satisfactoriamente a chave de recuperación",
+"Could not enable recovery key. Please check your recovery key password!" => "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
+"Recovery key successfully disabled" => "Desactivada satisfactoriamente a chave de recuperación",
+"Could not disable recovery key. Please check your recovery key password!" => "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
 "Password successfully changed." => "O contrasinal foi cambiado satisfactoriamente",
 "Could not change the password. Maybe the old password was not correct." => "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o  correcto.",
 "Saving..." => "Gardando...",
diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php
index 8f7a4023b6fdddf41b51fa09cb88189700db4ed9..63ae4b70b443aa145b243f3761bea1e54271ecd7 100644
--- a/apps/files_encryption/l10n/it.php
+++ b/apps/files_encryption/l10n/it.php
@@ -1,6 +1,8 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "Chiave ripristinata correttamente",
-"Could not " => "Impossibile",
+"Recovery key successfully enabled" => "Chiave di ripristino abilitata correttamente",
+"Could not enable recovery key. Please check your recovery key password!" => "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
+"Recovery key successfully disabled" => "Chiave di ripristinata disabilitata correttamente",
+"Could not disable recovery key. Please check your recovery key password!" => "Impossibile disabilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
 "Password successfully changed." => "Password modificata correttamente.",
 "Could not change the password. Maybe the old password was not correct." => "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
 "Saving..." => "Salvataggio in corso...",
diff --git a/apps/files_encryption/l10n/ja_JP.php b/apps/files_encryption/l10n/ja_JP.php
index 287091f63769264c877f53584d6a7bedc0510ba3..6d2d3e249c0b0ffc17b4e4783c41ac279a135244 100644
--- a/apps/files_encryption/l10n/ja_JP.php
+++ b/apps/files_encryption/l10n/ja_JP.php
@@ -1,6 +1,8 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "鍵を復旧することができました。",
-"Could not " => "できませんでした。",
+"Recovery key successfully enabled" => "リカバリ用のキーは正常に有効化されました",
+"Could not enable recovery key. Please check your recovery key password!" => "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認して下さい!",
+"Recovery key successfully disabled" => "リカバリ用のキーを正常に無効化しました",
+"Could not disable recovery key. Please check your recovery key password!" => "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認して下さい!",
 "Password successfully changed." => "パスワードを変更できました。",
 "Could not change the password. Maybe the old password was not correct." => "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
 "Saving..." => "保存中...",
diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php
index e2f22b4d92f387abb4b39e4e3121592ab0314493..9c462917cf3c33374d7ad6906f88fb65ec5da34c 100644
--- a/apps/files_encryption/l10n/nl.php
+++ b/apps/files_encryption/l10n/nl.php
@@ -1,6 +1,8 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "Sleutelherstel succesvol",
-"Could not " => "Kon niet",
+"Recovery key successfully enabled" => "Herstelsleutel succesvol geactiveerd",
+"Could not enable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!",
+"Recovery key successfully disabled" => "Herstelsleutel succesvol gedeactiveerd",
+"Could not disable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!",
 "Password successfully changed." => "Wachtwoord succesvol gewijzigd.",
 "Could not change the password. Maybe the old password was not correct." => "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
 "Saving..." => "Opslaan",
diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php
index 313d27b70c9bd706730d382559b43c5a9fb2c2ce..a6f90db4cd86ea74eaa47a3f736293747dbd8d6d 100644
--- a/apps/files_encryption/l10n/pl.php
+++ b/apps/files_encryption/l10n/pl.php
@@ -1,6 +1,4 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "Odzyskanie klucza udane",
-"Could not " => "Nie można",
 "Password successfully changed." => "Zmiana hasła udana.",
 "Could not change the password. Maybe the old password was not correct." => "Nie można zmienić hasła. Może stare hasło nie było poprawne.",
 "Saving..." => "Zapisywanie...",
diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php
index 91b4672f27efca8e503c8aa40c699cdbb93e8ab5..e5fa0b55cadae5140b0771133769456affe151e3 100644
--- a/apps/files_encryption/l10n/pt_BR.php
+++ b/apps/files_encryption/l10n/pt_BR.php
@@ -1,6 +1,8 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "Recuperação de chave com sucesso",
-"Could not " => "Não foi possível",
+"Recovery key successfully enabled" => "Recuperação de chave habilitada com sucesso",
+"Could not enable recovery key. Please check your recovery key password!" => "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
+"Recovery key successfully disabled" => "Recuperação de chave desabilitada com sucesso",
+"Could not disable recovery key. Please check your recovery key password!" => "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
 "Password successfully changed." => "Senha alterada com sucesso.",
 "Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
 "Saving..." => "Salvando...",
diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php
index 94c8d5bafa4278eccbe34ae13dbd6fcf94f3077b..e1bb17ecaa7d87c7177e5fa8e8f9edd3bf64e333 100644
--- a/apps/files_encryption/l10n/pt_PT.php
+++ b/apps/files_encryption/l10n/pt_PT.php
@@ -1,5 +1,4 @@
 <?php $TRANSLATIONS = array(
-"Could not " => "Não foi possivel",
 "Password successfully changed." => "Password alterada com sucesso.",
 "Could not change the password. Maybe the old password was not correct." => "Não foi possivel alterar a password. Possivelmente a password antiga não está correcta.",
 "Saving..." => "A guardar...",
diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php
index fac785730a89a0f9114e2c31f43ba0812855f3ec..aaf7f0997c32d7832147bbd8a231c3393792f6a0 100644
--- a/apps/files_encryption/l10n/ru.php
+++ b/apps/files_encryption/l10n/ru.php
@@ -1,4 +1,18 @@
 <?php $TRANSLATIONS = array(
+"Password successfully changed." => "Пароль изменен удачно.",
+"Could not change the password. Maybe the old password was not correct." => "Невозможно изменить пароль. Возможно старый пароль не был верен.",
 "Saving..." => "Сохранение...",
-"Encryption" => "Шифрование"
+"Encryption" => "Шифрование",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Включить шифрование пароля ключа восстановления (понадобится разрешение для восстановления ключа)",
+"Recovery account password" => "Восстановление пароля учетной записи",
+"Enabled" => "Включено",
+"Disabled" => "Отключено",
+"Change encryption passwords recovery key:" => "Изменить шифрование пароля ключа восстановления:",
+"Old Recovery account password" => "Старое Восстановление пароля учетной записи",
+"New Recovery account password" => "Новое Восстановление пароля учетной записи",
+"Change Password" => "Изменить пароль",
+"Enable password recovery by sharing all files with your administrator:" => "Включить восстановление пароля путем доступа Вашего администратора ко всем файлам",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Включение этой опции позволит вам получить доступ к зашифрованным файлам, в случае утери пароля",
+"File recovery settings updated" => "Настройки файла восстановления обновлены",
+"Could not update file recovery" => "Невозможно обновить файл восстановления"
 );
diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php
index fd77bb7e91d142bc3bbb74e38f6822433b2c7ba1..279481fbd4f364a889e6339cdf0c13d47072687b 100644
--- a/apps/files_encryption/l10n/sk_SK.php
+++ b/apps/files_encryption/l10n/sk_SK.php
@@ -1,4 +1,11 @@
 <?php $TRANSLATIONS = array(
+"Password successfully changed." => "Heslo úspešne zmenené.",
 "Saving..." => "Ukladám...",
-"Encryption" => "Šifrovanie"
+"Encryption" => "Šifrovanie",
+"Enabled" => "Povolené",
+"Disabled" => "Zakázané",
+"Change encryption passwords recovery key:" => "Zmeniť šifrovacie heslo obnovovacieho kľúča:",
+"Change Password" => "Zmeniť heslo",
+"File recovery settings updated" => "Nastavenie obnovy súborov aktualizované",
+"Could not update file recovery" => "Nemožno aktualizovať obnovenie súborov"
 );
diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php
index a0b69bd9fc4ef3b74cd2dceb7422ebb62d250500..faea3f54a18701df5b8476efa5c36d3908b28bbc 100644
--- a/apps/files_encryption/l10n/zh_TW.php
+++ b/apps/files_encryption/l10n/zh_TW.php
@@ -1,6 +1,4 @@
 <?php $TRANSLATIONS = array(
-"Recovery key successfully " => "成功還原金鑰",
-"Could not " => "無法",
 "Password successfully changed." => "成功變更密碼。",
 "Could not change the password. Maybe the old password was not correct." => "無法變更密碼,或許是輸入的舊密碼不正確。",
 "Saving..." => "儲存中...",
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index 33f9fc2060d16da56dada22099154b1fe2fdc061..ddeb3590f6032c1e5822f46291f8e5e8cc247171 100755
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -26,21 +26,20 @@
 namespace OCA\Encryption;
 
 //require_once '../3rdparty/Crypt_Blowfish/Blowfish.php';
-require_once realpath( dirname( __FILE__ ) . '/../3rdparty/Crypt_Blowfish/Blowfish.php' );
+require_once realpath(dirname(__FILE__) . '/../3rdparty/Crypt_Blowfish/Blowfish.php');
 
 /**
  * Class for common cryptography functionality
  */
 
-class Crypt
-{
+class Crypt {
 
 	/**
 	 * @brief return encryption mode client or server side encryption
 	 * @param string $user name (use system wide setting if name=null)
 	 * @return string 'client' or 'server'
 	 */
-	public static function mode( $user = null ) {
+	public static function mode($user = null) {
 
 		return 'server';
 
@@ -52,17 +51,20 @@ class Crypt
 	 */
 	public static function createKeypair() {
 
-		$res = openssl_pkey_new( array( 'private_key_bits' => 4096 ) );
+		$res = openssl_pkey_new(array('private_key_bits' => 4096));
 
 		// Get private key
-		openssl_pkey_export( $res, $privateKey );
+		openssl_pkey_export($res, $privateKey);
 
 		// Get public key
-		$publicKey = openssl_pkey_get_details( $res );
+		$publicKey = openssl_pkey_get_details($res);
 
 		$publicKey = $publicKey['key'];
 
-		return ( array( 'publicKey' => $publicKey, 'privateKey' => $privateKey ) );
+		return (array(
+			'publicKey' => $publicKey,
+			'privateKey' => $privateKey
+		));
 
 	}
 
@@ -75,7 +77,7 @@ class Crypt
 	 * blocks with encryption alone, hence padding is added to achieve the
 	 * required length.
 	 */
-	public static function addPadding( $data ) {
+	public static function addPadding($data) {
 
 		$padded = $data . 'xx';
 
@@ -88,11 +90,11 @@ class Crypt
 	 * @param string $padded padded data to remove padding from
 	 * @return string unpadded data on success, false on error
 	 */
-	public static function removePadding( $padded ) {
+	public static function removePadding($padded) {
 
-		if ( substr( $padded, -2 ) == 'xx' ) {
+		if (substr($padded, -2) === 'xx') {
 
-			$data = substr( $padded, 0, -2 );
+			$data = substr($padded, 0, -2);
 
 			return $data;
 
@@ -111,26 +113,26 @@ class Crypt
 	 * @return boolean
 	 * @note see also OCA\Encryption\Util->isEncryptedPath()
 	 */
-	public static function isCatfileContent( $content ) {
+	public static function isCatfileContent($content) {
 
-		if ( !$content ) {
+		if (!$content) {
 
 			return false;
 
 		}
 
-		$noPadding = self::removePadding( $content );
+		$noPadding = self::removePadding($content);
 
 		// Fetch encryption metadata from end of file
-		$meta = substr( $noPadding, -22 );
+		$meta = substr($noPadding, -22);
 
 		// Fetch IV from end of file
-		$iv = substr( $meta, -16 );
+		$iv = substr($meta, -16);
 
 		// Fetch identifier from start of metadata
-		$identifier = substr( $meta, 0, 6 );
+		$identifier = substr($meta, 0, 6);
 
-		if ( $identifier == '00iv00' ) {
+		if ($identifier === '00iv00') {
 
 			return true;
 
@@ -147,15 +149,15 @@ class Crypt
 	 * @param string $path
 	 * @return bool
 	 */
-	public static function isEncryptedMeta( $path ) {
+	public static function isEncryptedMeta($path) {
 
 		// TODO: Use DI to get \OC\Files\Filesystem out of here
 
 		// Fetch all file metadata from DB
-		$metadata = \OC\Files\Filesystem::getFileInfo( $path );
+		$metadata = \OC\Files\Filesystem::getFileInfo($path);
 
 		// Return encryption status
-		return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted'];
+		return isset($metadata['encrypted']) && ( bool )$metadata['encrypted'];
 
 	}
 
@@ -166,18 +168,17 @@ class Crypt
 	 *        e.g. filename or /Docs/filename, NOT admin/files/filename
 	 * @return boolean
 	 */
-	public static function isLegacyEncryptedContent( $data, $relPath ) {
+	public static function isLegacyEncryptedContent($data, $relPath) {
 
 		// Fetch all file metadata from DB
-		$metadata = \OC\Files\Filesystem::getFileInfo( $relPath, '' );
+		$metadata = \OC\Files\Filesystem::getFileInfo($relPath, '');
 
 		// If a file is flagged with encryption in DB, but isn't a 
 		// valid content + IV combination, it's probably using the 
 		// legacy encryption system
-		if (
-			isset( $metadata['encrypted'] )
-			and $metadata['encrypted'] === true
-			and !self::isCatfileContent( $data )
+		if (isset($metadata['encrypted'])
+			&& $metadata['encrypted'] === true
+			&& !self::isCatfileContent($data)
 		) {
 
 			return true;
@@ -197,15 +198,15 @@ class Crypt
 	 * @param string $passphrase
 	 * @return string encrypted file content
 	 */
-	public static function encrypt( $plainContent, $iv, $passphrase = '' ) {
+	public static function encrypt($plainContent, $iv, $passphrase = '') {
 
-		if ( $encryptedContent = openssl_encrypt( $plainContent, 'AES-128-CFB', $passphrase, false, $iv ) ) {
+		if ($encryptedContent = openssl_encrypt($plainContent, 'AES-128-CFB', $passphrase, false, $iv)) {
 
 			return $encryptedContent;
 
 		} else {
 
-			\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed', \OC_Log::ERROR );
+			\OCP\Util::writeLog('Encryption library', 'Encryption (symmetric) of content failed', \OCP\Util::ERROR);
 
 			return false;
 
@@ -221,15 +222,15 @@ class Crypt
 	 * @throws \Exception
 	 * @return string decrypted file content
 	 */
-	public static function decrypt( $encryptedContent, $iv, $passphrase ) {
+	public static function decrypt($encryptedContent, $iv, $passphrase) {
 
-		if ( $plainContent = openssl_decrypt( $encryptedContent, 'AES-128-CFB', $passphrase, false, $iv ) ) {
+		if ($plainContent = openssl_decrypt($encryptedContent, 'AES-128-CFB', $passphrase, false, $iv)) {
 
 			return $plainContent;
 
 		} else {
 
-			throw new \Exception( 'Encryption library: Decryption (symmetric) of content failed' );
+			throw new \Exception('Encryption library: Decryption (symmetric) of content failed');
 
 		}
 
@@ -241,7 +242,7 @@ class Crypt
 	 * @param string $iv IV to be concatenated
 	 * @returns string concatenated content
 	 */
-	public static function concatIv( $content, $iv ) {
+	public static function concatIv($content, $iv) {
 
 		$combined = $content . '00iv00' . $iv;
 
@@ -254,20 +255,20 @@ class Crypt
 	 * @param string $catFile concatenated data to be split
 	 * @returns array keys: encrypted, iv
 	 */
-	public static function splitIv( $catFile ) {
+	public static function splitIv($catFile) {
 
 		// Fetch encryption metadata from end of file
-		$meta = substr( $catFile, -22 );
+		$meta = substr($catFile, -22);
 
 		// Fetch IV from end of file
-		$iv = substr( $meta, -16 );
+		$iv = substr($meta, -16);
 
 		// Remove IV and IV identifier text to expose encrypted content
-		$encrypted = substr( $catFile, 0, -22 );
+		$encrypted = substr($catFile, 0, -22);
 
 		$split = array(
-			'encrypted' => $encrypted
-		, 'iv' => $iv
+			'encrypted' => $encrypted,
+			'iv' => $iv
 		);
 
 		return $split;
@@ -283,9 +284,9 @@ class Crypt
 	 * @note IV need not be specified, as it will be stored in the returned keyfile
 	 * and remain accessible therein.
 	 */
-	public static function symmetricEncryptFileContent( $plainContent, $passphrase = '' ) {
+	public static function symmetricEncryptFileContent($plainContent, $passphrase = '') {
 
-		if ( !$plainContent ) {
+		if (!$plainContent) {
 
 			return false;
 
@@ -293,18 +294,18 @@ class Crypt
 
 		$iv = self::generateIv();
 
-		if ( $encryptedContent = self::encrypt( $plainContent, $iv, $passphrase ) ) {
+		if ($encryptedContent = self::encrypt($plainContent, $iv, $passphrase)) {
 
 			// Combine content to encrypt with IV identifier and actual IV
-			$catfile = self::concatIv( $encryptedContent, $iv );
+			$catfile = self::concatIv($encryptedContent, $iv);
 
-			$padded = self::addPadding( $catfile );
+			$padded = self::addPadding($catfile);
 
 			return $padded;
 
 		} else {
 
-			\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed', \OC_Log::ERROR );
+			\OCP\Util::writeLog('Encryption library', 'Encryption (symmetric) of keyfile content failed', \OCP\Util::ERROR);
 
 			return false;
 
@@ -326,21 +327,21 @@ class Crypt
 	 *
 	 * This function decrypts a file
 	 */
-	public static function symmetricDecryptFileContent( $keyfileContent, $passphrase = '' ) {
+	public static function symmetricDecryptFileContent($keyfileContent, $passphrase = '') {
 
-		if ( !$keyfileContent ) {
+		if (!$keyfileContent) {
 
-			throw new \Exception( 'Encryption library: no data provided for decryption' );
+			throw new \Exception('Encryption library: no data provided for decryption');
 
 		}
 
 		// Remove padding
-		$noPadding = self::removePadding( $keyfileContent );
+		$noPadding = self::removePadding($keyfileContent);
 
 		// Split into enc data and catfile
-		$catfile = self::splitIv( $noPadding );
+		$catfile = self::splitIv($noPadding);
 
-		if ( $plainContent = self::decrypt( $catfile['encrypted'], $catfile['iv'], $passphrase ) ) {
+		if ($plainContent = self::decrypt($catfile['encrypted'], $catfile['iv'], $passphrase)) {
 
 			return $plainContent;
 
@@ -358,11 +359,11 @@ class Crypt
 	 *
 	 * This function decrypts a file
 	 */
-	public static function symmetricEncryptFileContentKeyfile( $plainContent ) {
+	public static function symmetricEncryptFileContentKeyfile($plainContent) {
 
 		$key = self::generateKey();
 
-		if ( $encryptedContent = self::symmetricEncryptFileContent( $plainContent, $key ) ) {
+		if ($encryptedContent = self::symmetricEncryptFileContent($plainContent, $key)) {
 
 			return array(
 				'key' => $key,
@@ -384,13 +385,13 @@ class Crypt
 	 * @returns array keys: keys (array, key = userId), data
 	 * @note symmetricDecryptFileContent() can decrypt files created using this method
 	 */
-	public static function multiKeyEncrypt( $plainContent, array $publicKeys ) {
+	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 ) ) {
+		if (empty($plainContent)) {
 
-			throw new \Exception( 'Cannot mutliKeyEncrypt empty plain content' );
+			throw new \Exception('Cannot mutliKeyEncrypt empty plain content');
 
 		}
 
@@ -399,13 +400,13 @@ class Crypt
 		$shareKeys = array();
 		$mappedShareKeys = array();
 
-		if ( openssl_seal( $plainContent, $sealed, $shareKeys, $publicKeys ) ) {
+		if (openssl_seal($plainContent, $sealed, $shareKeys, $publicKeys)) {
 
 			$i = 0;
 
 			// Ensure each shareKey is labelled with its 
 			// corresponding userId
-			foreach ( $publicKeys as $userId => $publicKey ) {
+			foreach ($publicKeys as $userId => $publicKey) {
 
 				$mappedShareKeys[$userId] = $shareKeys[$i];
 				$i++;
@@ -437,21 +438,21 @@ class Crypt
 	 *
 	 * This function decrypts a file
 	 */
-	public static function multiKeyDecrypt( $encryptedContent, $shareKey, $privateKey ) {
+	public static function multiKeyDecrypt($encryptedContent, $shareKey, $privateKey) {
 
-		if ( !$encryptedContent ) {
+		if (!$encryptedContent) {
 
 			return false;
 
 		}
 
-		if ( openssl_open( $encryptedContent, $plainContent, $shareKey, $privateKey ) ) {
+		if (openssl_open($encryptedContent, $plainContent, $shareKey, $privateKey)) {
 
 			return $plainContent;
 
 		} else {
 
-			\OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR );
+			\OCP\Util::writeLog('Encryption library', 'Decryption (asymmetric) of sealed content failed', \OCP\Util::ERROR);
 
 			return false;
 
@@ -461,11 +462,13 @@ class Crypt
 
 	/**
 	 * @brief Asymetrically encrypt a string using a public key
+	 * @param $plainContent
+	 * @param $publicKey
 	 * @return string encrypted file
 	 */
-	public static function keyEncrypt( $plainContent, $publicKey ) {
+	public static function keyEncrypt($plainContent, $publicKey) {
 
-		openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey );
+		openssl_public_encrypt($plainContent, $encryptedContent, $publicKey);
 
 		return $encryptedContent;
 
@@ -473,13 +476,15 @@ class Crypt
 
 	/**
 	 * @brief Asymetrically decrypt a file using a private key
+	 * @param $encryptedContent
+	 * @param $privatekey
 	 * @return string decrypted file
 	 */
-	public static function keyDecrypt( $encryptedContent, $privatekey ) {
+	public static function keyDecrypt($encryptedContent, $privatekey) {
 
-		$result = @openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey );
+		$result = @openssl_private_decrypt($encryptedContent, $plainContent, $privatekey);
 
-		if ( $result ) {
+		if ($result) {
 			return $plainContent;
 		}
 
@@ -493,24 +498,24 @@ class Crypt
 	 */
 	public static function generateIv() {
 
-		if ( $random = openssl_random_pseudo_bytes( 12, $strong ) ) {
+		if ($random = openssl_random_pseudo_bytes(12, $strong)) {
 
-			if ( !$strong ) {
+			if (!$strong) {
 
 				// If OpenSSL indicates randomness is insecure, log error
-				\OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OC_Log::WARN );
+				\OCP\Util::writeLog('Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OCP\Util::WARN);
 
 			}
 
 			// We encode the iv purely for string manipulation 
 			// purposes - it gets decoded before use
-			$iv = base64_encode( $random );
+			$iv = base64_encode($random);
 
 			return $iv;
 
 		} else {
 
-			throw new \Exception( 'Generating IV failed' );
+			throw new \Exception('Generating IV failed');
 
 		}
 
@@ -523,12 +528,12 @@ class Crypt
 	public static function generateKey() {
 
 		// Generate key
-		if ( $key = base64_encode( openssl_random_pseudo_bytes( 183, $strong ) ) ) {
+		if ($key = base64_encode(openssl_random_pseudo_bytes(183, $strong))) {
 
-			if ( !$strong ) {
+			if (!$strong) {
 
 				// If OpenSSL indicates randomness is insecure, log error
-				throw new \Exception( 'Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()' );
+				throw new \Exception('Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()');
 
 			}
 
@@ -545,15 +550,15 @@ class Crypt
 	/**
 	 * @brief Get the blowfish encryption handeler for a key
 	 * @param $key string (optional)
-	 * @return Crypt_Blowfish blowfish object
+	 * @return \Crypt_Blowfish blowfish object
 	 *
 	 * if the key is left out, the default handeler will be used
 	 */
-	public static function getBlowfish( $key = '' ) {
+	public static function getBlowfish($key = '') {
 
-		if ( $key ) {
+		if ($key) {
 
-			return new \Crypt_Blowfish( $key );
+			return new \Crypt_Blowfish($key);
 
 		} else {
 
@@ -567,13 +572,13 @@ class Crypt
 	 * @param $passphrase
 	 * @return mixed
 	 */
-	public static function legacyCreateKey( $passphrase ) {
+	public static function legacyCreateKey($passphrase) {
 
 		// Generate a random integer
-		$key = mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 );
+		$key = mt_rand(10000, 99999) . mt_rand(10000, 99999) . mt_rand(10000, 99999) . mt_rand(10000, 99999);
 
 		// Encrypt the key with the passphrase
-		$legacyEncKey = self::legacyEncrypt( $key, $passphrase );
+		$legacyEncKey = self::legacyEncrypt($key, $passphrase);
 
 		return $legacyEncKey;
 
@@ -583,17 +588,15 @@ class Crypt
 	 * @brief encrypts content using legacy blowfish system
 	 * @param string $content the cleartext message you want to encrypt
 	 * @param string $passphrase
-	 * @return
-	 * @internal param \OCA\Encryption\the $key encryption key (optional)
 	 * @returns string encrypted content
 	 *
 	 * This function encrypts an content
 	 */
-	public static function legacyEncrypt( $content, $passphrase = '' ) {
+	public static function legacyEncrypt($content, $passphrase = '') {
 
-		$bf = self::getBlowfish( $passphrase );
+		$bf = self::getBlowfish($passphrase);
 
-		return $bf->encrypt( $content );
+		return $bf->encrypt($content);
 
 	}
 
@@ -601,20 +604,17 @@ class Crypt
 	 * @brief decrypts content using legacy blowfish system
 	 * @param string $content the cleartext message you want to decrypt
 	 * @param string $passphrase
-	 * @return string
-	 * @internal param \OCA\Encryption\the $key encryption key (optional)
 	 * @return string cleartext content
 	 *
 	 * This function decrypts an content
 	 */
-	private static function legacyDecrypt( $content, $passphrase = '' ) {
+	private static function legacyDecrypt($content, $passphrase = '') {
 
-		$bf = self::getBlowfish( $passphrase );
+		$bf = self::getBlowfish($passphrase);
 
-		$decrypted = $bf->decrypt( $content );
+		$decrypted = $bf->decrypt($content);
 
 		return $decrypted;
-
 	}
 
 	/**
@@ -623,16 +623,17 @@ class Crypt
 	 * @param int $maxLength
 	 * @return string
 	 */
-	public static function legacyBlockDecrypt( $data, $key = '', $maxLength = 0 ) {
+	public static function legacyBlockDecrypt($data, $key = '', $maxLength = 0) {
+
 		$result = '';
-		while ( strlen( $data ) ) {
-			$result .= self::legacyDecrypt( substr( $data, 0, 8192 ), $key );
-			$data = substr( $data, 8192 );
+		while (strlen($data)) {
+			$result .= self::legacyDecrypt(substr($data, 0, 8192), $key);
+			$data = substr($data, 8192);
 		}
-		if ( $maxLength > 0 ) {
-			return substr( $result, 0, $maxLength );
+		if ($maxLength > 0) {
+			return substr($result, 0, $maxLength);
 		} else {
-			return rtrim( $result, "\0" );
+			return rtrim($result, "\0");
 		}
 	}
 
@@ -640,21 +641,23 @@ class Crypt
 	 * @param $legacyEncryptedContent
 	 * @param $legacyPassphrase
 	 * @param $publicKeys
-	 * @param $newPassphrase
-	 * @param $path
 	 * @return array
 	 */
-	public static function legacyKeyRecryptKeyfile( $legacyEncryptedContent, $legacyPassphrase, $publicKeys, $newPassphrase, $path ) {
+	public static function legacyKeyRecryptKeyfile($legacyEncryptedContent, $legacyPassphrase, $publicKeys) {
 
-		$decrypted = self::legacyBlockDecrypt( $legacyEncryptedContent, $legacyPassphrase );
+		$decrypted = self::legacyBlockDecrypt($legacyEncryptedContent, $legacyPassphrase);
 
 		// Encrypt plain data, generate keyfile & encrypted file
-		$cryptedData = self::symmetricEncryptFileContentKeyfile( $decrypted );
+		$cryptedData = self::symmetricEncryptFileContentKeyfile($decrypted);
 
 		// Encrypt plain keyfile to multiple sharefiles
-		$multiEncrypted = Crypt::multiKeyEncrypt( $cryptedData['key'], $publicKeys );
+		$multiEncrypted = Crypt::multiKeyEncrypt($cryptedData['key'], $publicKeys);
 
-		return array( 'data' => $cryptedData['encrypted'], 'filekey' => $multiEncrypted['data'], 'sharekeys' => $multiEncrypted['keys'] );
+		return array(
+			'data' => $cryptedData['encrypted'],
+			'filekey' => $multiEncrypted['data'],
+			'sharekeys' => $multiEncrypted['keys']
+		);
 
 	}
 
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 3867a368a9a8c4a0259441099281f09cb30751b5..e078ab35541154fee450f6840dde17ba607e4e93 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -23,15 +23,11 @@
 
 namespace OCA\Encryption;
 
-	/**
-	 * @brief Class to manage registration of hooks an various helper methods
-	 */
 /**
- * Class Helper
+ * @brief Class to manage registration of hooks an various helper methods
  * @package OCA\Encryption
  */
-class Helper
-{
+class Helper {
 
 	/**
 	 * @brief register share related hooks
@@ -39,9 +35,9 @@ 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', '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');
 	}
 
 	/**
@@ -50,10 +46,10 @@ class Helper
 	 */
 	public static function registerUserHooks() {
 
-		\OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' );
-		\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' );
+		\OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login');
+		\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');
 	}
 
 	/**
@@ -62,7 +58,7 @@ class Helper
 	 */
 	public static function registerFilesystemHooks() {
 
-		\OCP\Util::connectHook( 'OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename' );
+		\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename');
 	}
 
 	/**
@@ -72,13 +68,14 @@ class Helper
 	 * @param string $password
 	 * @return bool
 	 */
-	public static function setupUser( $util, $password ) {
+	public static function setupUser($util, $password) {
 		// Check files_encryption infrastructure is ready for action
-		if ( !$util->ready() ) {
+		if (!$util->ready()) {
 
-			\OC_Log::write( 'Encryption library', 'User account "' . $util->getUserId() . '" is not ready for encryption; configuration started', \OC_Log::DEBUG );
+			\OCP\Util::writeLog('Encryption library', 'User account "' . $util->getUserId()
+												 . '" is not ready for encryption; configuration started', \OCP\Util::DEBUG);
 
-			if ( !$util->setupServerSide( $password ) ) {
+			if (!$util->setupServerSide($password)) {
 				return false;
 			}
 		}
@@ -95,21 +92,21 @@ class Helper
 	 * @internal param string $password
 	 * @return bool
 	 */
-	public static function adminEnableRecovery( $recoveryKeyId, $recoveryPassword ) {
-		$view = new \OC\Files\View( '/' );
+	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 ($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->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" ) )
+			(!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key")
+			 || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key"))
 		) {
 
 			$keypair = \OCA\Encryption\Crypt::createKeypair();
@@ -118,37 +115,37 @@ class Helper
 
 			// Save public key
 
-			if ( !$view->is_dir( '/public-keys' ) ) {
-				$view->mkdir( '/public-keys' );
+			if (!$view->is_dir('/public-keys')) {
+				$view->mkdir('/public-keys');
 			}
 
-			$view->file_put_contents( '/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey'] );
+			$view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']);
 
 			// Encrypt private key empthy passphrase
-			$encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent( $keypair['privateKey'], $recoveryPassword );
+			$encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword);
 
 			// Save private key
-			$view->file_put_contents( '/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey );
+			$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' );
+			$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 );
+			$view->file_put_contents('/control-file/controlfile.enc', $encryptedControlData);
 
 			\OC_FileProxy::$enabled = true;
 
 			// Set recoveryAdmin as enabled
-			\OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminEnabled', 1 );
+			\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( $recoveryPassword );
-			if ( $return ) {
-				\OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminEnabled', 1 );
+			$util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser());
+			$return = $util->checkRecoveryPassword($recoveryPassword);
+			if ($return) {
+				\OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1);
 			}
 		}
 
@@ -162,13 +159,13 @@ class Helper
 	 * @param $recoveryPassword
 	 * @return bool
 	 */
-	public static function adminDisableRecovery( $recoveryPassword ) {
-		$util = new Util( new \OC_FilesystemView( '/' ), \OCP\User::getUser() );
-		$return = $util->checkRecoveryPassword( $recoveryPassword );
+	public static function adminDisableRecovery($recoveryPassword) {
+		$util = new Util(new \OC_FilesystemView('/'), \OCP\User::getUser());
+		$return = $util->checkRecoveryPassword($recoveryPassword);
 
-		if ( $return ) {
+		if ($return) {
 			// Set recoveryAdmin as disabled
-			\OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminEnabled', 0 );
+			\OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0);
 		}
 
 		return $return;
@@ -189,4 +186,18 @@ class Helper
 			return false;
 		}
 	}
+
+	/**
+	 * @brief Format a path to be relative to the /user/files/ directory
+	 * @param string $path the absolute path
+	 * @return string e.g. turns '/admin/files/test.txt' into 'test.txt'
+	 */
+	public static function stripUserFilesPath($path) {
+		$trimmed = ltrim($path, '/');
+		$split = explode('/', $trimmed);
+		$sliced = array_slice($split, 2);
+		$relPath = implode('/', $sliced);
+
+		return $relPath;
+	}
 }
\ No newline at end of file
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index aaa2e4ba1b5cfa883930e7169b5e8f652ea29c76..e911c1785df5f74c89eecc8abd679b4e8b5f0bcb 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -27,8 +27,7 @@ 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
-{
+class Keymanager {
 
 	/**
 	 * @brief retrieve the ENCRYPTED private key from a user
@@ -38,14 +37,14 @@ class Keymanager
 	 * @return string private key or false (hopefully)
 	 * @note the key returned by this method must be decrypted before use
 	 */
-	public static function getPrivateKey( \OC_FilesystemView $view, $user ) {
+	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 );
+		$key = $view->file_get_contents($path);
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
@@ -58,12 +57,12 @@ class Keymanager
 	 * @param $userId
 	 * @return string public key or false
 	 */
-	public static function getPublicKey( \OC_FilesystemView $view, $userId ) {
+	public static function getPublicKey(\OC_FilesystemView $view, $userId) {
 
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		$result = $view->file_get_contents( '/public-keys/' . $userId . '.public.key' );
+		$result = $view->file_get_contents('/public-keys/' . $userId . '.public.key');
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
@@ -77,11 +76,11 @@ class Keymanager
 	 * @param $userId
 	 * @return array keys: privateKey, publicKey
 	 */
-	public static function getUserKeys( \OC_FilesystemView $view, $userId ) {
+	public static function getUserKeys(\OC_FilesystemView $view, $userId) {
 
 		return array(
-			'publicKey' => self::getPublicKey( $view, $userId )
-		, 'privateKey' => self::getPrivateKey( $view, $userId )
+			'publicKey' => self::getPublicKey($view, $userId),
+			'privateKey' => self::getPrivateKey($view, $userId)
 		);
 
 	}
@@ -92,13 +91,13 @@ class Keymanager
 	 * @param array $userIds
 	 * @return array of public keys for the specified users
 	 */
-	public static function getPublicKeys( \OC_FilesystemView $view, array $userIds ) {
+	public static function getPublicKeys(\OC_FilesystemView $view, array $userIds) {
 
 		$keys = array();
 
-		foreach ( $userIds as $userId ) {
+		foreach ($userIds as $userId) {
 
-			$keys[$userId] = self::getPublicKey( $view, $userId );
+			$keys[$userId] = self::getPublicKey($view, $userId);
 
 		}
 
@@ -118,40 +117,41 @@ class Keymanager
 	 * @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 ) {
+	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
-		$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';
 
-		$targetPath = self::keySetPreparation( $view, $filename, $basePath, $owner );
+		$targetPath = self::keySetPreparation($view, $filename, $basePath, $owner);
 
-		if ( !$view->is_dir( $basePath . '/' . $targetPath ) ) {
+		if (!$view->is_dir($basePath . '/' . $targetPath)) {
 
 			// create all parent folders
-			$info = pathinfo( $basePath . '/' . $targetPath );
-			$keyfileFolderName = $view->getLocalFolder( $info['dirname'] );
+			$info = pathinfo($basePath . '/' . $targetPath);
+			$keyfileFolderName = $view->getLocalFolder($info['dirname']);
 
-			if ( !file_exists( $keyfileFolderName ) ) {
+			if (!file_exists($keyfileFolderName)) {
 
-				mkdir( $keyfileFolderName, 0750, true );
+				mkdir($keyfileFolderName, 0750, true);
 
 			}
 		}
 
 		// try reusing key file if part file
-		if ( self::isPartialFilePath( $targetPath ) ) {
+		if (self::isPartialFilePath($targetPath)) {
 
-			$result = $view->file_put_contents( $basePath . '/' . self::fixPartialFilePath( $targetPath ) . '.key', $catfile );
+			$result = $view->file_put_contents(
+				$basePath . '/' . self::fixPartialFilePath($targetPath) . '.key', $catfile);
 
 		} else {
 
-			$result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
+			$result = $view->file_put_contents($basePath . '/' . $targetPath . '.key', $catfile);
 
 		}
 
@@ -167,12 +167,12 @@ class Keymanager
 	 * @return string File path without .part extension
 	 * @note this is needed for reusing keys
 	 */
-	public static function fixPartialFilePath( $path ) {
+	public static function fixPartialFilePath($path) {
 
-		if ( preg_match( '/\.part$/', $path ) ) {
+		if (preg_match('/\.part$/', $path) || preg_match('/\.etmp$/', $path)) {
 
-			$newLength = strlen( $path ) - 5;
-			$fPath = substr( $path, 0, $newLength );
+			$newLength = strlen($path) - 5;
+			$fPath = substr($path, 0, $newLength);
 
 			return $fPath;
 
@@ -189,9 +189,9 @@ class Keymanager
 	 * @param string $path Path that may identify a .part file
 	 * @return bool
 	 */
-	public static function isPartialFilePath( $path ) {
+	public static function isPartialFilePath($path) {
 
-		if ( preg_match( '/\.part$/', $path ) ) {
+		if (preg_match('/\.part$/', $path) || preg_match('/\.etmp$/', $path)) {
 
 			return true;
 
@@ -213,14 +213,14 @@ class Keymanager
 	 * @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 ) {
+	public static function getFileKey(\OC_FilesystemView $view, $userId, $filePath) {
 
 		// try reusing key file if part file
-		if ( self::isPartialFilePath( $filePath ) ) {
+		if (self::isPartialFilePath($filePath)) {
 
-			$result = self::getFileKey( $view, $userId, self::fixPartialFilePath( $filePath ) );
+			$result = self::getFileKey($view, $userId, self::fixPartialFilePath($filePath));
 
-			if ( $result ) {
+			if ($result) {
 
 				return $result;
 
@@ -228,19 +228,19 @@ class Keymanager
 
 		}
 
-		$util = new Util( $view, \OCP\User::getUser() );
+		$util = new Util($view, \OCP\User::getUser());
 
-		list( $owner, $filename ) = $util->getUidAndFilename( $filePath );
-		$filePath_f = ltrim( $filename, '/' );
+		list($owner, $filename) = $util->getUidAndFilename($filePath);
+		$filePath_f = ltrim($filename, '/');
 
 		$keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key';
 
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		if ( $view->file_exists( $keyfilePath ) ) {
+		if ($view->file_exists($keyfilePath)) {
 
-			$result = $view->file_get_contents( $keyfilePath );
+			$result = $view->file_get_contents($keyfilePath);
 
 		} else {
 
@@ -264,26 +264,29 @@ class Keymanager
 	 * @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 ) {
+	public static function deleteFileKey(\OC_FilesystemView $view, $userId, $path) {
 
-		$trimmed = ltrim( $path, '/' );
+		$trimmed = ltrim($path, '/');
 		$keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed;
 
 		$result = false;
 
-		if ( $view->is_dir( $keyPath ) ) {
+		if ($view->is_dir($keyPath)) {
 
-			$result = $view->unlink( $keyPath );
+			$result = $view->unlink($keyPath);
 
-		} else if ( $view->file_exists( $keyPath . '.key' ) ) {
+		} else {
+			if ($view->file_exists($keyPath . '.key')) {
 
-			$result = $view->unlink( $keyPath . '.key' );
+				$result = $view->unlink($keyPath . '.key');
 
+			}
 		}
 
-		if ( !$result ) {
+		if (!$result) {
 
-			\OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR );
+			\OCP\Util::writeLog('Encryption library',
+				'Could not delete keyfile; does not exist: "' . $keyPath, \OCP\Util::ERROR);
 
 		}
 
@@ -298,19 +301,19 @@ class Keymanager
 	 * @note Encryption of the private key must be performed by client code
 	 * as no encryption takes place here
 	 */
-	public static function setPrivateKey( $key ) {
+	public static function setPrivateKey($key) {
 
 		$user = \OCP\User::getUser();
 
-		$view = new \OC_FilesystemView( '/' . $user . '/files_encryption' );
+		$view = new \OC_FilesystemView('/' . $user . '/files_encryption');
 
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		if ( !$view->file_exists( '' ) )
-			$view->mkdir( '' );
+		if (!$view->file_exists(''))
+			$view->mkdir('');
 
-		$result = $view->file_put_contents( $user . '.private.key', $key );
+		$result = $view->file_put_contents($user . '.private.key', $key);
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
@@ -331,21 +334,21 @@ class Keymanager
 	 * @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 ) {
+	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
-		$util = new Util( $view, \OCP\User::getUser() );
+		$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 );
+		$shareKeyPath = self::keySetPreparation($view, $filename, $basePath, $owner);
 
 		// try reusing key file if part file
-		if ( self::isPartialFilePath( $shareKeyPath ) ) {
+		if (self::isPartialFilePath($shareKeyPath)) {
 
-			$writePath = $basePath . '/' . self::fixPartialFilePath( $shareKeyPath ) . '.' . $userId . '.shareKey';
+			$writePath = $basePath . '/' . self::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey';
 
 		} else {
 
@@ -356,12 +359,12 @@ class Keymanager
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		$result = $view->file_put_contents( $writePath, $shareKey );
+		$result = $view->file_put_contents($writePath, $shareKey);
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
 		if (
-			is_int( $result )
+			is_int($result)
 			&& $result > 0
 		) {
 
@@ -382,16 +385,16 @@ class Keymanager
 	 * @param array $shareKeys
 	 * @return bool
 	 */
-	public static function setShareKeys( \OC_FilesystemView $view, $path, array $shareKeys ) {
+	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 ) {
+		foreach ($shareKeys as $userId => $shareKey) {
 
-			if ( !self::setShareKey( $view, $path, $userId, $shareKey ) ) {
+			if (!self::setShareKey($view, $path, $userId, $shareKey)) {
 
 				// If any of the keys are not set, flag false
 				$result = false;
@@ -415,14 +418,14 @@ class Keymanager
 	 * @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 ) {
+	public static function getShareKey(\OC_FilesystemView $view, $userId, $filePath) {
 
 		// try reusing key file if part file
-		if ( self::isPartialFilePath( $filePath ) ) {
+		if (self::isPartialFilePath($filePath)) {
 
-			$result = self::getShareKey( $view, $userId, self::fixPartialFilePath( $filePath ) );
+			$result = self::getShareKey($view, $userId, self::fixPartialFilePath($filePath));
 
-			if ( $result ) {
+			if ($result) {
 
 				return $result;
 
@@ -434,14 +437,15 @@ 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() );
+		$util = new Util($view, \OCP\User::getUser());
 
-		list( $owner, $filename ) = $util->getUidAndFilename( $filePath );
-		$shareKeyPath = \OC\Files\Filesystem::normalizePath( '/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey' );
+		list($owner, $filename) = $util->getUidAndFilename($filePath);
+		$shareKeyPath = \OC\Files\Filesystem::normalizePath(
+			'/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey');
 
-		if ( $view->file_exists( $shareKeyPath ) ) {
+		if ($view->file_exists($shareKeyPath)) {
 
-			$result = $view->file_get_contents( $shareKeyPath );
+			$result = $view->file_get_contents($shareKeyPath);
 
 		} else {
 
@@ -461,17 +465,18 @@ class Keymanager
 	 * @param string $userId owner of the file
 	 * @param string $filePath path to the file, relative to the owners file dir
 	 */
-	public static function delAllShareKeys( \OC_FilesystemView $view, $userId, $filePath ) {
+	public static function delAllShareKeys(\OC_FilesystemView $view, $userId, $filePath) {
 
-		if ( $view->is_dir( $userId . '/files/' . $filePath ) ) {
-			$view->unlink( $userId . '/files_encryption/share-keys/' . $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 ) {
-				$result = unlink( $ma );
-				if ( !$result ) {
-					\OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "' . $filePath . '"', \OC_Log::ERROR );
+			$localKeyPath = $view->getLocalFile($userId . '/files_encryption/share-keys/' . $filePath);
+			$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
+			foreach ($matches as $ma) {
+				$result = unlink($ma);
+				if (!$result) {
+					\OCP\Util::writeLog('Encryption library',
+						'Keyfile or shareKey could not be deleted for file "' . $filePath . '"', \OCP\Util::ERROR);
 				}
 			}
 		}
@@ -480,29 +485,31 @@ class Keymanager
 	/**
 	 * @brief Delete a single user's shareKey for a single file
 	 */
-	public static function delShareKey( \OC_FilesystemView $view, $userIds, $filePath ) {
+	public static function delShareKey(\OC_FilesystemView $view, $userIds, $filePath) {
 
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\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() );
+		$util = new Util($view, \OCP\User::getUser());
 
-		list( $owner, $filename ) = $util->getUidAndFilename( $filePath );
+		list($owner, $filename) = $util->getUidAndFilename($filePath);
 
-		$shareKeyPath = \OC\Files\Filesystem::normalizePath( '/' . $owner . '/files_encryption/share-keys/' . $filename );
+		$shareKeyPath = \OC\Files\Filesystem::normalizePath('/' . $owner . '/files_encryption/share-keys/' . $filename);
 
-		if ( $view->is_dir( $shareKeyPath ) ) {
+		if ($view->is_dir($shareKeyPath)) {
 
-			$localPath = \OC\Files\Filesystem::normalizePath( $view->getLocalFolder( $shareKeyPath ) );
-			self::recursiveDelShareKeys( $localPath, $userIds );
+			$localPath = \OC\Files\Filesystem::normalizePath($view->getLocalFolder($shareKeyPath));
+			self::recursiveDelShareKeys($localPath, $userIds);
 
 		} else {
 
-			foreach ( $userIds as $userId ) {
+			foreach ($userIds as $userId) {
 
-				if ( !$view->unlink( $shareKeyPath . '.' . $userId . '.shareKey' ) ) {
-					\OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath . '.' . $userId . '.shareKey"', \OC_Log::ERROR );
+				if (!$view->unlink($shareKeyPath . '.' . $userId . '.shareKey')) {
+					\OCP\Util::writeLog('Encryption library',
+						'Could not delete shareKey; does not exist: "' . $shareKeyPath . '.' . $userId
+						. '.shareKey"', \OCP\Util::ERROR);
 				}
 
 			}
@@ -517,42 +524,43 @@ class Keymanager
 	 * @param string $dir directory
 	 * @param array $userIds user ids for which the share keys should be deleted
 	 */
-	private static function recursiveDelShareKeys( $dir, $userIds ) {
-		foreach ( $userIds as $userId ) {
-			$matches = glob( preg_quote( $dir ) . '/*' . preg_quote( '.' . $userId . '.shareKey' ) );
+	private static function recursiveDelShareKeys($dir, $userIds) {
+		foreach ($userIds as $userId) {
+			$matches = glob(preg_quote($dir) . '/*' . preg_quote('.' . $userId . '.shareKey'));
 		}
 		/** @var $matches array */
-		foreach ( $matches as $ma ) {
-			if ( !unlink( $ma ) ) {
-				\OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $ma . '"', \OC_Log::ERROR );
+		foreach ($matches as $ma) {
+			if (!unlink($ma)) {
+				\OCP\Util::writeLog('Encryption library',
+					'Could not delete shareKey; does not exist: "' . $ma . '"', \OCP\Util::ERROR);
 			}
 		}
-		$subdirs = $directories = glob( preg_quote( $dir ) . '/*', GLOB_ONLYDIR );
-		foreach ( $subdirs as $subdir ) {
-			self::recursiveDelShareKeys( $subdir, $userIds );
+		$subdirs = $directories = glob(preg_quote($dir) . '/*', GLOB_ONLYDIR);
+		foreach ($subdirs as $subdir) {
+			self::recursiveDelShareKeys($subdir, $userIds);
 		}
 	}
 
 	/**
 	 * @brief Make preparations to vars and filesystem for saving a keyfile
 	 */
-	public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) {
+	public static function keySetPreparation(\OC_FilesystemView $view, $path, $basePath, $userId) {
 
-		$targetPath = ltrim( $path, '/' );
+		$targetPath = ltrim($path, '/');
 
-		$path_parts = pathinfo( $targetPath );
+		$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'] )
+			isset($path_parts['dirname'])
+			&& !$view->file_exists($basePath . '/' . $path_parts['dirname'])
 		) {
-			$sub_dirs = explode( DIRECTORY_SEPARATOR, $basePath . '/' . $path_parts['dirname'] );
+			$sub_dirs = explode(DIRECTORY_SEPARATOR, $basePath . '/' . $path_parts['dirname']);
 			$dir = '';
-			foreach ( $sub_dirs as $sub_dir ) {
+			foreach ($sub_dirs as $sub_dir) {
 				$dir .= '/' . $sub_dir;
-				if ( !$view->is_dir( $dir ) ) {
-					$view->mkdir( $dir );
+				if (!$view->is_dir($dir)) {
+					$view->mkdir($dir);
 				}
 			}
 		}
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index e381ecab5c311051f400350986662ed2e60eb5e5..0df34a38bd74e0e3102bebce151496e2e83d3964 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -34,8 +34,7 @@ namespace OCA\Encryption;
  * Class Proxy
  * @package OCA\Encryption
  */
-class Proxy extends \OC_FileProxy
-{
+class Proxy extends \OC_FileProxy {
 
 	private static $blackList = null; //mimetypes blacklisted from encryption
 
@@ -48,13 +47,13 @@ class Proxy extends \OC_FileProxy
 	 *
 	 * Tests if server side encryption is enabled, and file is allowed by blacklists
 	 */
-	private static function shouldEncrypt( $path ) {
+	private static function shouldEncrypt($path) {
 
-		if ( is_null( self::$enableEncryption ) ) {
+		if (is_null(self::$enableEncryption)) {
 
 			if (
-				\OCP\Config::getAppValue( 'files_encryption', 'enable_encryption', 'true' ) == 'true'
-				&& Crypt::mode() == 'server'
+				\OCP\Config::getAppValue('files_encryption', 'enable_encryption', 'true') === 'true'
+				&& Crypt::mode() === 'server'
 			) {
 
 				self::$enableEncryption = true;
@@ -67,27 +66,27 @@ class Proxy extends \OC_FileProxy
 
 		}
 
-		if ( !self::$enableEncryption ) {
+		if (!self::$enableEncryption) {
 
 			return false;
 
 		}
 
-		if ( is_null( self::$blackList ) ) {
+		if (is_null(self::$blackList)) {
 
-			self::$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) );
+			self::$blackList = explode(',', \OCP\Config::getAppValue('files_encryption', 'type_blacklist', ''));
 
 		}
 
-		if ( Crypt::isCatfileContent( $path ) ) {
+		if (Crypt::isCatfileContent($path)) {
 
 			return true;
 
 		}
 
-		$extension = substr( $path, strrpos( $path, '.' ) + 1 );
+		$extension = substr($path, strrpos($path, '.') + 1);
 
-		if ( array_search( $extension, self::$blackList ) === false ) {
+		if (array_search($extension, self::$blackList) === false) {
 
 			return true;
 
@@ -101,78 +100,44 @@ class Proxy extends \OC_FileProxy
 	 * @param $data
 	 * @return bool
 	 */
-	public function preFile_put_contents( $path, &$data ) {
+	public function preFile_put_contents($path, &$data) {
 
-		if ( self::shouldEncrypt( $path ) ) {
+		if (self::shouldEncrypt($path)) {
 
-			// Stream put contents should have been converted to fopen
-			if ( !is_resource( $data ) ) {
+			if (!is_resource($data)) {
 
-				$userId = \OCP\USER::getUser();
-				$view = new \OC_FilesystemView( '/' );
-				$util = new Util( $view, $userId );
-				$session = new \OCA\Encryption\Session( $view );
-				$privateKey = $session->getPrivateKey();
-				$filePath = $util->stripUserFilesPath( $path );
-				// Set the filesize for userland, before encrypting
-				$size = strlen( $data );
+				// get root view
+				$view = new \OC_FilesystemView('/');
 
-				// Disable encryption proxy to prevent recursive calls
-				$proxyStatus = \OC_FileProxy::$enabled;
-				\OC_FileProxy::$enabled = false;
+				// get relative path
+				$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
-				// Check if there is an existing key we can reuse
-				if ( $encKeyfile = Keymanager::getFileKey( $view, $userId, $filePath ) ) {
-
-					// Fetch shareKey
-					$shareKey = Keymanager::getShareKey( $view, $userId, $filePath );
-
-					// Decrypt the keyfile
-					$plainKey = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey );
-
-				} else {
-
-					// Make a new key
-					$plainKey = Crypt::generateKey();
-
-				}
-
-				// Encrypt data
-				$encData = Crypt::symmetricEncryptFileContent( $data, $plainKey );
-
-				$sharingEnabled = \OCP\Share::isEnabled();
-
-				// if file exists try to get sharing users
-				if ( $view->file_exists( $path ) ) {
-					$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId );
-				} else {
-					$uniqueUserIds[] = $userId;
+				if (!isset($relativePath)) {
+					return true;
 				}
 
-				// Fetch public keys for all users who will share the file
-				$publicKeys = Keymanager::getPublicKeys( $view, $uniqueUserIds );
+				$handle = fopen('crypt://' . $relativePath . '.etmp', 'w');
+				if (is_resource($handle)) {
 
-				// Encrypt plain keyfile to multiple sharefiles
-				$multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys );
+					// write data to stream
+					fwrite($handle, $data);
 
-				// Save sharekeys to user folders
-				Keymanager::setShareKeys( $view, $filePath, $multiEncrypted['keys'] );
+					// close stream
+					fclose($handle);
 
-				// Set encrypted keyfile as common varname
-				$encKey = $multiEncrypted['data'];
+					// disable encryption proxy to prevent recursive calls
+					$proxyStatus = \OC_FileProxy::$enabled;
+					\OC_FileProxy::$enabled = false;
 
-				// Save keyfile for newly encrypted file in parallel directory tree
-				Keymanager::setFileKey( $view, $filePath, $userId, $encKey );
+					// get encrypted content
+					$data = $view->file_get_contents($path . '.etmp');
 
-				// 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( $data ), 'unencrypted_size' => $size ), '' );
-
-				// Re-enable proxy - our work is done
-				\OC_FileProxy::$enabled = $proxyStatus;
+					// remove our temp file
+					$view->unlink($path . '.etmp');
 
+					// re-enable proxy - our work is done
+					\OC_FileProxy::$enabled = $proxyStatus;
+				}
 			}
 		}
 
@@ -184,51 +149,46 @@ class Proxy extends \OC_FileProxy
 	 * @param string $path Path of file from which has been read
 	 * @param string $data Data that has been read from file
 	 */
-	public function postFile_get_contents( $path, $data ) {
-
-		$userId = \OCP\USER::getUser();
-		$view = new \OC_FilesystemView( '/' );
-		$util = new Util( $view, $userId );
+	public function postFile_get_contents($path, $data) {
 
-		$relPath = $util->stripUserFilesPath( $path );
+		$plainData = null;
+		$view = new \OC_FilesystemView('/');
 
-		// Disable encryption proxy to prevent recursive calls
-		$proxyStatus = \OC_FileProxy::$enabled;
-		\OC_FileProxy::$enabled = false;
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
 		// init session
-		$session = new \OCA\Encryption\Session( $view );
+		$session = new \OCA\Encryption\Session($view);
 
 		// If data is a catfile
 		if (
-			Crypt::mode() == 'server'
-			&& Crypt::isCatfileContent( $data )
+			Crypt::mode() === 'server'
+			&& Crypt::isCatfileContent($data)
 		) {
 
-			$privateKey = $session->getPrivateKey( $userId );
-
-			// Get the encrypted keyfile
-			$encKeyfile = Keymanager::getFileKey( $view, $userId, $relPath );
-
-			// Attempt to fetch the user's shareKey
-			$shareKey = Keymanager::getShareKey( $view, $userId, $relPath );
+			$handle = fopen('crypt://' . $relativePath, 'r');
 
-			// Decrypt keyfile with shareKey
-			$plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey );
-
-			$plainData = Crypt::symmetricDecryptFileContent( $data, $plainKeyfile );
+			if (is_resource($handle)) {
+				while (($plainDataChunk = fgets($handle, 8192)) !== false) {
+					$plainData .= $plainDataChunk;
+				}
+			}
 
 		} elseif (
 			Crypt::mode() == 'server'
-			&&\OC::$session->exists('legacyenckey')
-			&& Crypt::isEncryptedMeta( $path )
+			&& \OC::$session->exists('legacyenckey')
+			&& Crypt::isEncryptedMeta($path)
 		) {
-			$plainData = Crypt::legacyBlockDecrypt( $data, $session->getLegacyKey() );
-		}
+			// Disable encryption proxy to prevent recursive calls
+			$proxyStatus = \OC_FileProxy::$enabled;
+			\OC_FileProxy::$enabled = false;
 
-		\OC_FileProxy::$enabled = $proxyStatus;
+			$plainData = Crypt::legacyBlockDecrypt($data, $session->getLegacyKey());
+
+			\OC_FileProxy::$enabled = $proxyStatus;
+		}
 
-		if ( !isset( $plainData ) ) {
+		if (!isset($plainData)) {
 
 			$plainData = $data;
 
@@ -241,10 +201,10 @@ class Proxy extends \OC_FileProxy
 	/**
 	 * @brief When a file is deleted, remove its keyfile also
 	 */
-	public function preUnlink( $path ) {
+	public function preUnlink($path) {
 
 		// let the trashbin handle this  
-		if ( \OCP\App::isEnabled( 'files_trashbin' ) ) {
+		if (\OCP\App::isEnabled('files_trashbin')) {
 			return true;
 		}
 
@@ -252,23 +212,24 @@ class Proxy extends \OC_FileProxy
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		$view = new \OC_FilesystemView( '/' );
+		$view = new \OC_FilesystemView('/');
 
 		$userId = \OCP\USER::getUser();
 
-		$util = new Util( $view, $userId );
+		$util = new Util($view, $userId);
 
-		// Format path to be relative to user files dir
-		$relPath = $util->stripUserFilesPath( $path );
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
-		list( $owner, $ownerPath ) = $util->getUidAndFilename( $relPath );
+		list($owner, $ownerPath) = $util->getUidAndFilename($relativePath);
 
 		// Delete keyfile & shareKey so it isn't orphaned
-		if ( !Keymanager::deleteFileKey( $view, $owner, $ownerPath ) ) {
-			\OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "' . $ownerPath . '"', \OC_Log::ERROR );
+		if (!Keymanager::deleteFileKey($view, $owner, $ownerPath)) {
+			\OCP\Util::writeLog('Encryption library',
+				'Keyfile or shareKey could not be deleted for file "' . $ownerPath . '"', \OCP\Util::ERROR);
 		}
 
-		Keymanager::delAllShareKeys( $view, $owner, $ownerPath );
+		Keymanager::delAllShareKeys($view, $owner, $ownerPath);
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
@@ -282,8 +243,8 @@ class Proxy extends \OC_FileProxy
 	 * @param $path
 	 * @return bool
 	 */
-	public function postTouch( $path ) {
-		$this->handleFile( $path );
+	public function postTouch($path) {
+		$this->handleFile($path);
 
 		return true;
 	}
@@ -293,20 +254,22 @@ class Proxy extends \OC_FileProxy
 	 * @param $result
 	 * @return resource
 	 */
-	public function postFopen( $path, &$result ) {
+	public function postFopen($path, &$result) {
 
-		if ( !$result ) {
+		if (!$result) {
 
 			return $result;
 
 		}
 
-		// Reformat path for use with OC_FSV
-		$path_split = explode( '/', $path );
-		$path_f = implode( '/', array_slice( $path_split, 3 ) );
+		// split the path parts
+		$pathParts = explode('/', $path);
+
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
 		// FIXME: handling for /userId/cache used by webdav for chunking. The cache chunks are NOT encrypted
-		if ( count($path_split) >= 2 && $path_split[2] == 'cache' ) {
+		if (isset($pathParts[2]) && $pathParts[2] === 'cache') {
 			return $result;
 		}
 
@@ -314,31 +277,31 @@ class Proxy extends \OC_FileProxy
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		$meta = stream_get_meta_data( $result );
+		$meta = stream_get_meta_data($result);
 
-		$view = new \OC_FilesystemView( '' );
+		$view = new \OC_FilesystemView('');
 
-		$util = new Util( $view, \OCP\USER::getUser() );
+		$util = new Util($view, \OCP\USER::getUser());
 
 		// If file is already encrypted, decrypt using crypto protocol
 		if (
-			Crypt::mode() == 'server'
-			&& $util->isEncryptedPath( $path )
+			Crypt::mode() === 'server'
+			&& $util->isEncryptedPath($path)
 		) {
 
 			// Close the original encrypted file
-			fclose( $result );
+			fclose($result);
 
 			// Open the file using the crypto stream wrapper 
 			// protocol and let it do the decryption work instead
-			$result = fopen( 'crypt://' . $path_f, $meta['mode'] );
+			$result = fopen('crypt://' . $relativePath, $meta['mode']);
 
 		} elseif (
-			self::shouldEncrypt( $path )
-			and $meta ['mode'] != 'r'
-			and $meta['mode'] != 'rb'
+			self::shouldEncrypt($path)
+			and $meta ['mode'] !== 'r'
+				and $meta['mode'] !== 'rb'
 		) {
-			$result = fopen( 'crypt://' . $path_f, $meta['mode'] );
+			$result = fopen('crypt://' . $relativePath, $meta['mode']);
 		}
 
 		// Re-enable the proxy
@@ -353,17 +316,17 @@ class Proxy extends \OC_FileProxy
 	 * @param $data
 	 * @return array
 	 */
-	public function postGetFileInfo( $path, $data ) {
+	public function postGetFileInfo($path, $data) {
 
 		// if path is a folder do nothing
-		if ( is_array( $data ) && array_key_exists( 'size', $data ) ) {
+		if (is_array($data) && array_key_exists('size', $data)) {
 
 			// Disable encryption proxy to prevent recursive calls
 			$proxyStatus = \OC_FileProxy::$enabled;
 			\OC_FileProxy::$enabled = false;
 
 			// get file size
-			$data['size'] = self::postFileSize( $path, $data['size'] );
+			$data['size'] = self::postFileSize($path, $data['size']);
 
 			// Re-enable the proxy
 			\OC_FileProxy::$enabled = $proxyStatus;
@@ -377,51 +340,50 @@ class Proxy extends \OC_FileProxy
 	 * @param $size
 	 * @return bool
 	 */
-	public function postFileSize( $path, $size ) {
+	public function postFileSize($path, $size) {
 
-		$view = new \OC_FilesystemView( '/' );
+		$view = new \OC_FilesystemView('/');
 
 		// if path is a folder do nothing
-		if ( $view->is_dir( $path ) ) {
+		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 ) );
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
 		// if path is empty we cannot resolve anything
-		if ( empty( $path_f ) ) {
+		if (empty($relativePath)) {
 			return $size;
 		}
 
 		$fileInfo = false;
 		// get file info from database/cache if not .part file
-		if ( !Keymanager::isPartialFilePath( $path ) ) {
-			$fileInfo = $view->getFileInfo( $path );
+		if (!Keymanager::isPartialFilePath($path)) {
+			$fileInfo = $view->getFileInfo($path);
 		}
 
 		// if file is encrypted return real file size
-		if ( is_array( $fileInfo ) && $fileInfo['encrypted'] === true ) {
+		if (is_array($fileInfo) && $fileInfo['encrypted'] === true) {
 			$size = $fileInfo['unencrypted_size'];
 		} else {
 			// self healing if file was removed from file cache
-			if ( !is_array( $fileInfo ) ) {
+			if (!is_array($fileInfo)) {
 				$fileInfo = array();
 			}
 
 			$userId = \OCP\User::getUser();
-			$util = new Util( $view, $userId );
-			$fixSize = $util->getFileSize( $path );
-			if ( $fixSize > 0 ) {
+			$util = new Util($view, $userId);
+			$fixSize = $util->getFileSize($path);
+			if ($fixSize > 0) {
 				$size = $fixSize;
 
 				$fileInfo['encrypted'] = true;
 				$fileInfo['unencrypted_size'] = $size;
 
 				// put file info if not .part file
-				if ( !Keymanager::isPartialFilePath( $path_f ) ) {
-					$view->putFileInfo( $path, $fileInfo );
+				if (!Keymanager::isPartialFilePath($relativePath)) {
+					$view->putFileInfo($path, $fileInfo);
 				}
 			}
 
@@ -432,32 +394,34 @@ class Proxy extends \OC_FileProxy
 	/**
 	 * @param $path
 	 */
-	public function handleFile( $path ) {
+	public function handleFile($path) {
 
 		// Disable encryption proxy to prevent recursive calls
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		$view = new \OC_FilesystemView( '/' );
-		$session = new \OCA\Encryption\Session( $view );
+		$view = new \OC_FilesystemView('/');
+		$session = new \OCA\Encryption\Session($view);
 		$userId = \OCP\User::getUser();
-		$util = new Util( $view, $userId );
+		$util = new Util($view, $userId);
+
+		// split the path parts
+		$pathParts = explode('/', $path);
 
-		// Reformat path for use with OC_FSV
-		$path_split = explode( '/', $path );
-		$path_f = implode( '/', array_slice( $path_split, 3 ) );
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
 
 		// only if file is on 'files' folder fix file size and sharing
-		if ( count($path_split) >= 2 && $path_split[2] == 'files' && $util->fixFileSize( $path ) ) {
+		if (isset($pathParts[2]) && $pathParts[2] === 'files' && $util->fixFileSize($path)) {
 
 			// get sharing app state
 			$sharingEnabled = \OCP\Share::isEnabled();
 
 			// get users
-			$usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path_f );
+			$usersSharing = $util->getSharingUsersArray($sharingEnabled, $relativePath);
 
 			// update sharing-keys
-			$util->setSharedFileKeyfiles( $session, $usersSharing, $path_f );
+			$util->setSharedFileKeyfiles($session, $usersSharing, $relativePath);
 		}
 
 		\OC_FileProxy::$enabled = $proxyStatus;
diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php
index d60c386fb1cb7d84b6418c9c9536cf7c8f293a4f..bff1737554b4bea7a231135ec6affc4d341a7fef 100644
--- a/apps/files_encryption/lib/session.php
+++ b/apps/files_encryption/lib/session.php
@@ -26,8 +26,7 @@ namespace OCA\Encryption;
  * Class for handling encryption related session data
  */
 
-class Session
-{
+class Session {
 
 	private $view;
 
@@ -37,26 +36,26 @@ class Session
 	 *
 	 * @note The ownCloud key pair is used to allow public link sharing even if encryption is enabled
 	 */
-	public function __construct( $view ) {
+	public function __construct($view) {
 
 		$this->view = $view;
 
-		if ( !$this->view->is_dir( 'owncloud_private_key' ) ) {
+		if (!$this->view->is_dir('owncloud_private_key')) {
 
-			$this->view->mkdir( 'owncloud_private_key' );
+			$this->view->mkdir('owncloud_private_key');
 
 		}
 
-		$publicShareKeyId = \OC_Appconfig::getValue( 'files_encryption', 'publicShareKeyId' );
+		$publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId');
 
-		if ( $publicShareKeyId === null ) {
-			$publicShareKeyId = 'pubShare_' . substr( md5( time() ), 0, 8 );
-			\OC_Appconfig::setValue( 'files_encryption', 'publicShareKeyId', $publicShareKeyId );
+		if ($publicShareKeyId === null) {
+			$publicShareKeyId = 'pubShare_' . substr(md5(time()), 0, 8);
+			\OC_Appconfig::setValue('files_encryption', 'publicShareKeyId', $publicShareKeyId);
 		}
 
 		if (
-			!$this->view->file_exists( "/public-keys/" . $publicShareKeyId . ".public.key" )
-			|| !$this->view->file_exists( "/owncloud_private_key/" . $publicShareKeyId . ".private.key" )
+			!$this->view->file_exists("/public-keys/" . $publicShareKeyId . ".public.key")
+			|| !$this->view->file_exists("/owncloud_private_key/" . $publicShareKeyId . ".private.key")
 		) {
 
 			$keypair = Crypt::createKeypair();
@@ -67,17 +66,18 @@ class Session
 
 			// Save public key
 
-			if ( !$view->is_dir( '/public-keys' ) ) {
-				$view->mkdir( '/public-keys' );
+			if (!$view->is_dir('/public-keys')) {
+				$view->mkdir('/public-keys');
 			}
 
-			$this->view->file_put_contents( '/public-keys/' . $publicShareKeyId . '.public.key', $keypair['publicKey'] );
+			$this->view->file_put_contents('/public-keys/' . $publicShareKeyId . '.public.key', $keypair['publicKey']);
 
 			// Encrypt private key empty passphrase
-			$encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' );
+			$encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], '');
 
 			// Save private key
-			$this->view->file_put_contents( '/owncloud_private_key/' . $publicShareKeyId . '.private.key', $encryptedPrivateKey );
+			$this->view->file_put_contents(
+				'/owncloud_private_key/' . $publicShareKeyId . '.private.key', $encryptedPrivateKey);
 
 			\OC_FileProxy::$enabled = $proxyStatus;
 
@@ -103,7 +103,7 @@ class Session
 	 *
 	 * @note this should only be set on login
 	 */
-	public function setPrivateKey( $privateKey ) {
+	public function setPrivateKey($privateKey) {
 
 		\OC::$session->set('privateKey', $privateKey);
 
@@ -117,7 +117,6 @@ class Session
 	 *
 	 */
 	public function getPrivateKey() {
-
 		// return the public share private key if this is a public access
 		if (\OCA\Encryption\Helper::isPublicAccess()) {
 			return $this->getPublicSharePrivateKey();
@@ -163,7 +162,7 @@ class Session
 	 * @param $legacyKey
 	 * @return bool
 	 */
-	public function setLegacyKey( $legacyKey ) {
+	public function setLegacyKey($legacyKey) {
 
 		\OC::$session->set('legacyKey', $legacyKey);
 
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index da8c2494139c5134644efe318583a7d5b2bd5983..072c52866445e91f7157a739ca2e939ccdc846b7 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -48,8 +48,7 @@ namespace OCA\Encryption;
  * previous version deleted, this is handled by OC\Files\View, and thus the
  * encryption proxies are used and keyfiles deleted.
  */
-class Stream
-{
+class Stream {
 	private $plainKey;
 	private $encKeyfiles;
 
@@ -77,18 +76,18 @@ class Stream
 	 * @param $opened_path
 	 * @return bool
 	 */
-	public function stream_open( $path, $mode, $options, &$opened_path ) {
+	public function stream_open($path, $mode, $options, &$opened_path) {
 
-		if ( !isset( $this->rootView ) ) {
-			$this->rootView = new \OC_FilesystemView( '/' );
+		if (!isset($this->rootView)) {
+			$this->rootView = new \OC_FilesystemView('/');
 		}
 
-		$util = new Util( $this->rootView, \OCP\USER::getUser() );
+		$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/<user>/files
-		$this->relPath = \OC\Files\Filesystem::normalizePath( str_replace( 'crypt://', '', $path ) );
+		$this->relPath = \OC\Files\Filesystem::normalizePath(str_replace('crypt://', '', $path));
 
 		// rawPath is relative to the data directory
 		$this->rawPath = $util->getUserFilesDir() . $this->relPath;
@@ -98,10 +97,10 @@ class Stream
 		\OC_FileProxy::$enabled = false;
 
 		if (
-			$mode == 'w'
-			or $mode == 'w+'
-			or $mode == 'wb'
-			or $mode == 'wb+'
+			$mode === 'w'
+			or $mode === 'w+'
+			or $mode === 'wb'
+			or $mode === 'wb+'
 		) {
 
 			// We're writing a new file so start write counter with 0 bytes
@@ -110,25 +109,25 @@ class Stream
 
 		} else {
 
-			$this->size = $this->rootView->filesize( $this->rawPath, $mode );
+			$this->size = $this->rootView->filesize($this->rawPath, $mode);
 		}
 
-		$this->handle = $this->rootView->fopen( $this->rawPath, $mode );
+		$this->handle = $this->rootView->fopen($this->rawPath, $mode);
 
 		\OC_FileProxy::$enabled = $proxyStatus;
 
-		if ( !is_resource( $this->handle ) ) {
+		if (!is_resource($this->handle)) {
 
-			\OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->rawPath . '"', \OCP\Util::ERROR );
+			\OCP\Util::writeLog('files_encryption', 'failed to open file "' . $this->rawPath . '"', \OCP\Util::ERROR);
 
 		} else {
 
-			$this->meta = stream_get_meta_data( $this->handle );
+			$this->meta = stream_get_meta_data($this->handle);
 
 		}
 
 
-		return is_resource( $this->handle );
+		return is_resource($this->handle);
 
 	}
 
@@ -136,11 +135,11 @@ class Stream
 	 * @param $offset
 	 * @param int $whence
 	 */
-	public function stream_seek( $offset, $whence = SEEK_SET ) {
+	public function stream_seek($offset, $whence = SEEK_SET) {
 
 		$this->flush();
 
-		fseek( $this->handle, $offset, $whence );
+		fseek($this->handle, $offset, $whence);
 
 	}
 
@@ -149,36 +148,37 @@ class Stream
 	 * @return bool|string
 	 * @throws \Exception
 	 */
-	public function stream_read( $count ) {
+	public function stream_read($count) {
 
 		$this->writeCache = '';
 
-		if ( $count != 8192 ) {
+		if ($count !== 8192) {
 
 			// $count will always be 8192 https://bugs.php.net/bug.php?id=21641
 			// This makes this function a lot simpler, but will break this class if the above 'bug' gets 'fixed'
-			\OCP\Util::writeLog( 'files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', \OCP\Util::FATAL );
+			\OCP\Util::writeLog('files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', \OCP\Util::FATAL);
 
 			die();
 
 		}
 
 		// Get the data from the file handle
-		$data = fread( $this->handle, 8192 );
+		$data = fread($this->handle, 8192);
 
 		$result = '';
 
-		if ( strlen( $data ) ) {
+		if (strlen($data)) {
 
-			if ( !$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' );
+				throw new \Exception(
+					'Encryption key not found for "' . $this->rawPath . '" during attempted read via stream');
 
 			}
 
 			// Decrypt data
-			$result = Crypt::symmetricDecryptFileContent( $data, $this->plainKey );
+			$result = Crypt::symmetricDecryptFileContent($data, $this->plainKey);
 
 		}
 
@@ -192,10 +192,10 @@ class Stream
 	 * @param string $key key to use for encryption
 	 * @return string encrypted data on success, false on failure
 	 */
-	public function preWriteEncrypt( $plainData, $key ) {
+	public function preWriteEncrypt($plainData, $key) {
 
 		// Encrypt data to 'catfile', which includes IV
-		if ( $encrypted = Crypt::symmetricEncryptFileContent( $plainData, $key ) ) {
+		if ($encrypted = Crypt::symmetricEncryptFileContent($plainData, $key)) {
 
 			return $encrypted;
 
@@ -215,7 +215,7 @@ class Stream
 	public function getKey() {
 
 		// Check if key is already set
-		if ( isset( $this->plainKey ) && isset( $this->encKeyfile ) ) {
+		if (isset($this->plainKey) && isset($this->encKeyfile)) {
 
 			return true;
 
@@ -223,18 +223,18 @@ class Stream
 
 		// Fetch and decrypt keyfile
 		// Fetch existing keyfile
-		$this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath );
+		$this->encKeyfile = Keymanager::getFileKey($this->rootView, $this->userId, $this->relPath);
 
 		// If a keyfile already exists
-		if ( $this->encKeyfile ) {
+		if ($this->encKeyfile) {
 
 			$session = new \OCA\Encryption\Session( $this->rootView );
 
-			$privateKey = $session->getPrivateKey( $this->userId );
+			$privateKey = $session->getPrivateKey($this->userId);
 
-			$shareKey = Keymanager::getShareKey( $this->rootView, $this->userId, $this->relPath );
+			$shareKey = Keymanager::getShareKey($this->rootView, $this->userId, $this->relPath);
 
-			$this->plainKey = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey );
+			$this->plainKey = Crypt::multiKeyDecrypt($this->encKeyfile, $shareKey, $privateKey);
 
 			return true;
 
@@ -255,7 +255,7 @@ class Stream
 	 * @note Padding is added to each encrypted block to ensure that the resulting block is exactly 8192 bytes. This is removed during stream_read
 	 * @note PHP automatically updates the file pointer after writing data to reflect it's length. There is generally no need to update the poitner manually using fseek
 	 */
-	public function stream_write( $data ) {
+	public function stream_write($data) {
 
 		// Disable the file proxies so that encryption is not 
 		// automatically attempted when the file is written to disk - 
@@ -265,16 +265,16 @@ class Stream
 		\OC_FileProxy::$enabled = false;
 
 		// Get the length of the unencrypted data that we are handling
-		$length = strlen( $data );
+		$length = strlen($data);
 
 		// Find out where we are up to in the writing of data to the
 		// file
-		$pointer = ftell( $this->handle );
+		$pointer = ftell($this->handle);
 
 		// 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() ) {
+		if (!$this->getKey()) {
 
 			$this->plainKey = Crypt::generateKey();
 
@@ -282,7 +282,7 @@ class Stream
 
 		// If extra data is left over from the last round, make sure it 
 		// is integrated into the next 6126 / 8192 block
-		if ( $this->writeCache ) {
+		if ($this->writeCache) {
 
 			// Concat writeCache to start of $data
 			$data = $this->writeCache . $data;
@@ -294,15 +294,15 @@ class Stream
 		}
 
 		// While there still remains some data to be processed & written
-		while ( strlen( $data ) > 0 ) {
+		while (strlen($data) > 0) {
 
 			// Remaining length for this iteration, not of the
 			// entire file (may be greater than 8192 bytes)
-			$remainingLength = strlen( $data );
+			$remainingLength = strlen($data);
 
 			// If data remaining to be written is less than the
 			// size of 1 6126 byte block
-			if ( $remainingLength < 6126 ) {
+			if ($remainingLength < 6126) {
 
 				// Set writeCache to contents of $data
 				// The writeCache will be carried over to the 
@@ -320,25 +320,25 @@ class Stream
 			} else {
 
 				// Read the chunk from the start of $data
-				$chunk = substr( $data, 0, 6126 );
+				$chunk = substr($data, 0, 6126);
 
-				$encrypted = $this->preWriteEncrypt( $chunk, $this->plainKey );
+				$encrypted = $this->preWriteEncrypt($chunk, $this->plainKey);
 
 				// 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
-				fwrite( $this->handle, $encrypted );
+				fwrite($this->handle, $encrypted);
 
 				// Remove the chunk we just processed from
 				// $data, leaving only unprocessed data in $data
 				// var, for handling on the next round
-				$data = substr( $data, 6126 );
+				$data = substr($data, 6126);
 
 			}
 
 		}
 
-		$this->size = max( $this->size, $pointer + $length );
+		$this->size = max($this->size, $pointer + $length);
 		$this->unencryptedSize += $length;
 
 		\OC_FileProxy::$enabled = $proxyStatus;
@@ -353,17 +353,17 @@ class Stream
 	 * @param $arg1
 	 * @param $arg2
 	 */
-	public function stream_set_option( $option, $arg1, $arg2 ) {
+	public function stream_set_option($option, $arg1, $arg2) {
 		$return = false;
-		switch ( $option ) {
+		switch ($option) {
 			case STREAM_OPTION_BLOCKING:
-				$return = stream_set_blocking( $this->handle, $arg1 );
+				$return = stream_set_blocking($this->handle, $arg1);
 				break;
 			case STREAM_OPTION_READ_TIMEOUT:
-				$return = stream_set_timeout( $this->handle, $arg1, $arg2 );
+				$return = stream_set_timeout($this->handle, $arg1, $arg2);
 				break;
 			case STREAM_OPTION_WRITE_BUFFER:
-				$return = stream_set_write_buffer( $this->handle, $arg1 );
+				$return = stream_set_write_buffer($this->handle, $arg1);
 		}
 
 		return $return;
@@ -373,14 +373,14 @@ class Stream
 	 * @return array
 	 */
 	public function stream_stat() {
-		return fstat( $this->handle );
+		return fstat($this->handle);
 	}
 
 	/**
 	 * @param $mode
 	 */
-	public function stream_lock( $mode ) {
-		return flock( $this->handle, $mode );
+	public function stream_lock($mode) {
+		return flock($this->handle, $mode);
 	}
 
 	/**
@@ -388,7 +388,7 @@ class Stream
 	 */
 	public function stream_flush() {
 
-		return fflush( $this->handle );
+		return fflush($this->handle);
 		// Not a typo: http://php.net/manual/en/function.fflush.php
 
 	}
@@ -397,19 +397,19 @@ class Stream
 	 * @return bool
 	 */
 	public function stream_eof() {
-		return feof( $this->handle );
+		return feof($this->handle);
 	}
 
 	private function flush() {
 
-		if ( $this->writeCache ) {
+		if ($this->writeCache) {
 
 			// Set keyfile property for file in question
 			$this->getKey();
 
-			$encrypted = $this->preWriteEncrypt( $this->writeCache, $this->plainKey );
+			$encrypted = $this->preWriteEncrypt($this->writeCache, $this->plainKey);
 
-			fwrite( $this->handle, $encrypted );
+			fwrite($this->handle, $encrypted);
 
 			$this->writeCache = '';
 
@@ -425,42 +425,42 @@ class Stream
 		$this->flush();
 
 		if (
-			$this->meta['mode'] != 'r'
-			and $this->meta['mode'] != 'rb'
-			and $this->size > 0
+			$this->meta['mode'] !== 'r'
+			and $this->meta['mode'] !== 'rb'
+				and $this->size > 0
 		) {
 			// 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 );
+			$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 );
+			$util = new Util($this->rootView, $this->userId);
 
 			// Get all users sharing the file includes current user
-			$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath, $this->userId );
+			$uniqueUserIds = $util->getSharingUsersArray($sharingEnabled, $this->relPath, $this->userId);
 
 			// Fetch public keys for all sharing users
-			$publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds );
+			$publicKeys = Keymanager::getPublicKeys($this->rootView, $uniqueUserIds);
 
 			// Encrypt enc key for all sharing users
-			$this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys );
+			$this->encKeyfiles = Crypt::multiKeyEncrypt($this->plainKey, $publicKeys);
 
-			$view = new \OC_FilesystemView( '/' );
+			$view = new \OC_FilesystemView('/');
 
 			// Save the new encrypted file key
-			Keymanager::setFileKey( $this->rootView, $this->relPath, $this->userId, $this->encKeyfiles['data'] );
+			Keymanager::setFileKey($this->rootView, $this->relPath, $this->userId, $this->encKeyfiles['data']);
 
 			// Save the sharekeys
-			Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] );
+			Keymanager::setShareKeys($view, $this->relPath, $this->encKeyfiles['keys']);
 
 			// get file info
-			$fileInfo = $view->getFileInfo( $this->rawPath );
-			if ( !is_array( $fileInfo ) ) {
+			$fileInfo = $view->getFileInfo($this->rawPath);
+			if (!is_array($fileInfo)) {
 				$fileInfo = array();
 			}
 
@@ -473,10 +473,10 @@ class Stream
 			$fileInfo['unencrypted_size'] = $this->unencryptedSize;
 
 			// set fileinfo
-			$view->putFileInfo( $this->rawPath, $fileInfo );
+			$view->putFileInfo($this->rawPath, $fileInfo);
 		}
 
-		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 6ffe31c9bb4fc61085f82e8de20a0b8ee9ab0e76..04bd4dc8aca5711678bbbef1d0c7b22ff6885de2 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -188,7 +188,9 @@ class Util {
 
 	/**
 	 * @brief Sets up user folders and keys for serverside encryption
-	 * @param string $passphrase passphrase to encrypt server-stored private key with
+	 *
+	 * @param string $passphrase to encrypt server-stored private key with
+	 * @return bool
 	 */
 	public function setupServerSide($passphrase = null) {
 
@@ -382,7 +384,7 @@ class Util {
 		// we handle them
 		\OC_FileProxy::$enabled = false;
 
-		if ($found == false) {
+		if ($found === false) {
 			$found = array(
 				'plain' => array(),
 				'encrypted' => array(),
@@ -398,12 +400,12 @@ class Util {
 			while (false !== ($file = readdir($handle))) {
 
 				if (
-					$file != "."
-					&& $file != ".."
+					$file !== "."
+					&& $file !== ".."
 				) {
 
 					$filePath = $directory . '/' . $this->view->getRelativePath('/' . $file);
-					$relPath = $this->stripUserFilesPath($filePath);
+					$relPath = \OCA\Encryption\Helper::stripUserFilesPath($filePath);
 
 					// If the path is a directory, search 
 					// its contents
@@ -528,7 +530,7 @@ class Util {
 
 	/**
 	 * @brief Check if a given path identifies an encrypted file
-	 * @param $path
+	 * @param string $path
 	 * @return boolean
 	 */
 	public function isEncryptedPath($path) {
@@ -541,7 +543,7 @@ class Util {
 		// we only need 24 byte from the last chunk
 		$data = '';
 		$handle = $this->view->fopen($path, 'r');
-		if (!fseek($handle, -24, SEEK_END)) {
+		if (is_resource($handle) && !fseek($handle, -24, SEEK_END)) {
 			$data = fgets($handle);
 		}
 
@@ -565,11 +567,13 @@ class Util {
 		$proxyStatus = \OC_FileProxy::$enabled;
 		\OC_FileProxy::$enabled = false;
 
-		// Reformat path for use with OC_FSV
-		$pathSplit = explode('/', $path);
-		$pathRelative = implode('/', array_slice($pathSplit, 3));
+		// split the path parts
+		$pathParts = explode('/', $path);
 
-		if ($pathSplit[2] == 'files' && $this->view->file_exists($path) && $this->isEncryptedPath($path)) {
+		// get relative path
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
+
+		if (isset($pathParts[2]) && $pathParts[2] === 'files' && $this->view->file_exists($path) && $this->isEncryptedPath($path)) {
 
 			// get the size from filesystem
 			$fullPath = $this->view->getLocalFile($path);
@@ -579,7 +583,7 @@ class Util {
 			$lastChunkNr = floor($size / 8192);
 
 			// open stream
-			$stream = fopen('crypt://' . $pathRelative, "r");
+			$stream = fopen('crypt://' . $relativePath, "r");
 
 			if (is_resource($stream)) {
 				// calculate last chunk position
@@ -639,21 +643,7 @@ class Util {
 		return $result;
 	}
 
-	/**
-	 * @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) {
-
-		$trimmed = ltrim($path, '/');
-		$split = explode('/', $trimmed);
-		$sliced = array_slice($split, 2);
-		$relPath = implode('/', $sliced);
-
-		return $relPath;
-
-	}
-
+	
 	/**
 	 * @param $path
 	 * @return bool
@@ -663,7 +653,7 @@ class Util {
 		$trimmed = ltrim($path, '/');
 		$split = explode('/', $trimmed);
 
-		if ($split[2] == "Shared") {
+		if (isset($split[2]) && $split[2] === 'Shared') {
 
 			return true;
 
@@ -745,10 +735,10 @@ class Util {
 					$publicKeys = Keymanager::getPublicKeys($this->view, $uniqueUserIds);
 
 					// Recrypt data, generate catfile
-					$recrypted = Crypt::legacyKeyRecryptKeyfile($legacyData, $legacyPassphrase, $publicKeys, $newPassphrase, $legacyFile['path']);
+					$recrypted = Crypt::legacyKeyRecryptKeyfile( $legacyData, $legacyPassphrase, $publicKeys );
 
 					$rawPath = $legacyFile['path'];
-					$relPath = $this->stripUserFilesPath($rawPath);
+					$relPath = \OCA\Encryption\Helper::stripUserFilesPath($rawPath);
 
 					// Save keyfile
 					Keymanager::setFileKey($this->view, $relPath, $this->userId, $recrypted['filekey']);
@@ -869,8 +859,8 @@ class Util {
 			// Check that the user is encryption capable, or is the
 			// public system user 'ownCloud' (for public shares)
 			if (
-				$user == $this->publicShareKeyId
-				or $user == $this->recoveryKeyId
+				$user === $this->publicShareKeyId
+				or $user === $this->recoveryKeyId
 				or $util->ready()
 			) {
 
@@ -903,6 +893,7 @@ class Util {
 	 * @param string $filePath
 	 * @param string $fileOwner
 	 * @param string $privateKey
+	 * @return bool|string
 	 * @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,
@@ -918,7 +909,7 @@ class Util {
 		// We need to decrypt the keyfile
 		// Has the file been shared yet?
 		if (
-			$this->userId == $fileOwner
+			$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
 		) {
 
@@ -1028,7 +1019,7 @@ class Util {
 		if ($sharingEnabled) {
 
 			// Find out who, if anyone, is sharing the file
-			$result = \OCP\Share::getUsersSharingFile($ownerPath, $owner, true, true, true);
+			$result = \OCP\Share::getUsersSharingFile($ownerPath, $owner, true);
 			$userIds = $result['users'];
 			if ($result['public']) {
 				$userIds[] = $this->publicShareKeyId;
@@ -1049,7 +1040,7 @@ class Util {
 		}
 
 		// add current user if given
-		if ($currentUserId != false) {
+		if ($currentUserId !== false) {
 
 			$userIds[] = $currentUserId;
 
@@ -1136,6 +1127,7 @@ class Util {
 	/**
 	 * @brief get uid of the owners of the file and the path to the file
 	 * @param string $path Path of the file to check
+	 * @throws \Exception
 	 * @note $shareFilePath must be relative to data/UID/files. Files
 	 *       relative to /Shared are also acceptable
 	 * @return array
@@ -1166,7 +1158,7 @@ class Util {
 			\OC\Files\Filesystem::initMountPoints($fileOwnerUid);
 
 			// If the file owner is the currently logged in user
-			if ($fileOwnerUid == $this->userId) {
+			if ($fileOwnerUid === $this->userId) {
 
 				// Assume the path supplied is correct
 				$filename = $path;
@@ -1199,14 +1191,14 @@ class Util {
 
 		$result = array();
 
-		$content = $this->view->getDirectoryContent($this->userFilesDir . $dir);
+		$content = $this->view->getDirectoryContent(\OC\Files\Filesystem::normalizePath($this->userFilesDir . '/' . $dir));
 
 		// handling for re shared folders
-		$path_split = explode('/', $dir);
+		$pathSplit = explode('/', $dir);
 
 		foreach ($content as $c) {
 
-			$sharedPart = $path_split[sizeof($path_split) - 1];
+			$sharedPart = $pathSplit[sizeof($pathSplit) - 1];
 			$targetPathSplit = array_reverse(explode('/', $c['path']));
 
 			$path = '';
@@ -1228,7 +1220,7 @@ class Util {
 
 			$path = $dir . $path;
 
-			if ($c['type'] === "dir") {
+			if ($c['type'] === 'dir') {
 
 				$result = array_merge($result, $this->getAllFiles($path));
 
@@ -1417,11 +1409,12 @@ class Util {
 		foreach ($dirContent as $item) {
 			// get relative path from files_encryption/keyfiles/
 			$filePath = substr($item['path'], strlen('files_encryption/keyfiles'));
-			if ($item['type'] == 'dir') {
+			if ($item['type'] === 'dir') {
 				$this->addRecoveryKeys($filePath . '/');
 			} else {
 				$session = new \OCA\Encryption\Session(new \OC_FilesystemView('/'));
 				$sharingEnabled = \OCP\Share::isEnabled();
+				// remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt'
 				$file = substr($filePath, 0, -4);
 				$usersSharing = $this->getSharingUsersArray($sharingEnabled, $file);
 				$this->setSharedFileKeyfiles($session, $usersSharing, $file);
@@ -1437,9 +1430,10 @@ class Util {
 		foreach ($dirContent as $item) {
 			// get relative path from files_encryption/keyfiles
 			$filePath = substr($item['path'], strlen('files_encryption/keyfiles'));
-			if ($item['type'] == 'dir') {
+			if ($item['type'] === 'dir') {
 				$this->removeRecoveryKeys($filePath . '/');
 			} else {
+				// remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt'
 				$file = substr($filePath, 0, -4);
 				$this->view->unlink($this->shareKeysPath . '/' . $file . '.' . $this->recoveryKeyId . '.shareKey');
 			}
@@ -1457,7 +1451,7 @@ class Util {
 
 		// Find out who, if anyone, is sharing the file
 		if ($sharingEnabled) {
-			$result = \OCP\Share::getUsersSharingFile($file, $this->userId, true, true, true);
+			$result = \OCP\Share::getUsersSharingFile($file, $this->userId, true);
 			$userIds = $result['users'];
 			$userIds[] = $this->recoveryKeyId;
 			if ($result['public']) {
@@ -1502,10 +1496,12 @@ class Util {
 	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') {
+			// get relative path from files_encryption/keyfiles
+			$filePath = substr($item['path'], strlen('files_encryption/keyfiles'));
+			if ($item['type'] === 'dir') {
 				$this->recoverAllFiles($filePath . '/', $privateKey);
 			} else {
+				// remove '.key' extension from path e.g. 'file.txt.key' to 'file.txt'
 				$file = substr($filePath, 0, -4);
 				$this->recoverFile($file, $privateKey);
 			}
@@ -1531,4 +1527,21 @@ class Util {
 		$this->recoverAllFiles('/', $privateKey);
 	}
 
+	/**
+	 * Get the path including the storage mount point
+	 * @param int $id
+	 * @return string the path including the mount point like AmazonS3/folder/file.txt
+	 */
+	public function getPathWithMountPoint($id) {
+		list($storage, $internalPath) = \OC\Files\Cache\Cache::getById($id);
+		$mount = \OC\Files\Filesystem::getMountByStorageId($storage);
+		$mountPoint = $mount[0]->getMountPoint();
+		$path = \OC\Files\Filesystem::normalizePath($mountPoint.'/'.$internalPath);
+
+		// reformat the path to be relative e.g. /user/files/folder becomes /folder/
+		$relativePath = \OCA\Encryption\Helper::stripUserFilesPath($path);
+
+		return $relativePath;
+	}
+
 }
diff --git a/apps/files_encryption/settings-admin.php b/apps/files_encryption/settings-admin.php
index 6cc5b997fdbf111a6eb33e20040a42529ce180aa..5367605898262f3d66b0e83a5aa9c06859fa8182 100644
--- a/apps/files_encryption/settings-admin.php
+++ b/apps/files_encryption/settings-admin.php
@@ -8,16 +8,16 @@
 
 \OC_Util::checkAdminUser();
 
-$tmpl = new OCP\Template( 'files_encryption', 'settings-admin' );
+$tmpl = new OCP\Template('files_encryption', 'settings-admin');
 
 // Check if an adminRecovery account is enabled for recovering files after lost pwd
-$view = new OC_FilesystemView( '' );
+$view = new OC_FilesystemView('');
 
-$recoveryAdminEnabled = OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' );
+$recoveryAdminEnabled = OC_Appconfig::getValue('files_encryption', 'recoveryAdminEnabled');
 
-$tmpl->assign( 'recoveryEnabled', $recoveryAdminEnabled );
+$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled);
 
-\OCP\Util::addscript( 'files_encryption', 'settings-admin' );
-\OCP\Util::addscript( 'core', 'multiselect' );
+\OCP\Util::addscript('files_encryption', 'settings-admin');
+\OCP\Util::addscript('core', 'multiselect');
 
 return $tmpl->fetchPage();
diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php
index 57f7f584523c17f129866efddff545c5e9dc184e..3e96565949b95f3cd09ef29ae1703fa3b8bab76b 100644
--- a/apps/files_encryption/settings-personal.php
+++ b/apps/files_encryption/settings-personal.php
@@ -7,22 +7,22 @@
  */
 
 // Add CSS stylesheet
-\OC_Util::addStyle( 'files_encryption', 'settings-personal' );
- 
-$tmpl = new OCP\Template( 'files_encryption', 'settings-personal');
+\OC_Util::addStyle('files_encryption', 'settings-personal');
+
+$tmpl = new OCP\Template('files_encryption', 'settings-personal');
 
 $user = \OCP\USER::getUser();
-$view = new \OC_FilesystemView( '/' );
-$util = new \OCA\Encryption\Util( $view, $user );
+$view = new \OC_FilesystemView('/');
+$util = new \OCA\Encryption\Util($view, $user);
 
-$recoveryAdminEnabled = OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' );
+$recoveryAdminEnabled = OC_Appconfig::getValue('files_encryption', 'recoveryAdminEnabled');
 $recoveryEnabledForUser = $util->recoveryEnabledForUser();
 
-\OCP\Util::addscript( 'files_encryption', 'settings-personal' );
-\OCP\Util::addScript( 'settings', 'personal' );
+\OCP\Util::addscript('files_encryption', 'settings-personal');
+\OCP\Util::addScript('settings', 'personal');
 
-$tmpl->assign( 'recoveryEnabled', $recoveryAdminEnabled );
-$tmpl->assign( 'recoveryEnabledForUser', $recoveryEnabledForUser );
+$tmpl->assign('recoveryEnabled', $recoveryAdminEnabled);
+$tmpl->assign('recoveryEnabledForUser', $recoveryEnabledForUser);
 
 return $tmpl->fetchPage();
 
diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index 5b0486aad8cc2a91f90761a9a4fdf11da56706f3..32156eea272446d8ccae2ff0aff4cc429ec58f70 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -575,7 +575,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
 	 */
 	function testLegacyKeyRecryptKeyfileEncrypt($crypted) {
 
-		$recrypted = Encryption\Crypt::LegacyKeyRecryptKeyfile($crypted, $this->pass, array($this->genPublicKey), $this->pass, '');
+		$recrypted = Encryption\Crypt::LegacyKeyRecryptKeyfile($crypted, $this->pass, array($this->genPublicKey));
 
 		$this->assertNotEquals($this->dataLong, $recrypted['data']);
 
diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php
index 6d92881ceb0a5e50df1489b34e80cb73a71bafc6..816bc709f26df3a2f760152506626c16cc6b1cca 100755
--- a/apps/files_encryption/tests/share.php
+++ b/apps/files_encryption/tests/share.php
@@ -534,7 +534,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
 		// some hacking to simulate public link
 		$GLOBALS['app'] = 'files_sharing';
 		$GLOBALS['fileOwner'] = \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1;
-		\OC_User::setUserId('');
+		\OC_User::setUserId(false);
 
 		// get file contents
 		$retrievedCryptedFile = file_get_contents('crypt://' . $this->filename);
diff --git a/apps/files_encryption/tests/webdav.php b/apps/files_encryption/tests/webdav.php
index 94d3ec3fa554e6a1c8c1da7d7d8eabb21e681596..1d406789f0c1ac0b1bc1aa9a4d5c8d9efbae4d5e 100755
--- a/apps/files_encryption/tests/webdav.php
+++ b/apps/files_encryption/tests/webdav.php
@@ -120,7 +120,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
 
 		$_SERVER['REQUEST_METHOD'] = 'PUT';
 		$_SERVER['REQUEST_URI'] = '/remote.php/webdav' . $filename;
-		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic YWRtaW46YWRtaW4=';
+		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic dGVzdC13ZWJkYXYtdXNlcjE6dGVzdC13ZWJkYXYtdXNlcjE=';
 		$_SERVER['CONTENT_TYPE'] = 'application/octet-stream';
 		$_SERVER['PATH_INFO'] = '/webdav' . $filename;
 		$_SERVER['CONTENT_LENGTH'] = strlen($this->dataShort);
@@ -172,7 +172,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
 		// set server vars
 		$_SERVER['REQUEST_METHOD'] = 'GET';
 		$_SERVER['REQUEST_URI'] = '/remote.php/webdav' . $filename;
-		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic YWRtaW46YWRtaW4=';
+		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic dGVzdC13ZWJkYXYtdXNlcjE6dGVzdC13ZWJkYXYtdXNlcjE=';
 		$_SERVER['PATH_INFO'] = '/webdav' . $filename;
 
 		// handle webdav request
@@ -193,7 +193,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
 		// set server vars
 		$_SERVER['REQUEST_METHOD'] = 'DELETE';
 		$_SERVER['REQUEST_URI'] = '/remote.php/webdav' . $filename;
-		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic YWRtaW46YWRtaW4=';
+		$_SERVER['HTTP_AUTHORIZATION'] = 'Basic dGVzdC13ZWJkYXYtdXNlcjE6dGVzdC13ZWJkYXYtdXNlcjE=';
 		$_SERVER['PATH_INFO'] = '/webdav' . $filename;
 
 		// handle webdav request
@@ -216,7 +216,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase {
 	 *
 	 * @param bool $body
 	 *
-	 * @note this init procedure is copied from /apps/files/remote.php
+	 * @note this init procedure is copied from /apps/files/appinfo/remote.php
 	 */
 	function handleWebdavRequest($body = false) {
 		// Backends
diff --git a/apps/files_external/l10n/lt_LT.php b/apps/files_external/l10n/lt_LT.php
index 9bf997d87cb8d0a21a79ba115c6d2993d483549c..29c962d9a8057b2898921ce6113494c5b9b5ac76 100644
--- a/apps/files_external/l10n/lt_LT.php
+++ b/apps/files_external/l10n/lt_LT.php
@@ -6,6 +6,7 @@
 "Error configuring Google Drive storage" => "Klaida nustatinėjant Google Drive talpyklą",
 "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Įspėjimas:</b> \"smbclient\" nėra įdiegtas. CIFS/SMB dalinimasis nėra galimas. Prašome susisiekti su sistemos administratoriumi kad būtų įdiegtas \"smbclient\"",
 "<b>Warning:</b> 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." => "<b>Įspėjimas:</b> FTP palaikymas PHP sistemoje nėra įjungtas arba nėra įdiegtas.  FTP dalinimosi įjungimas nėra galimas. Prašome susisiekti su sistemos administratoriumi kad būtų įdiegtas FTP palaikymas. ",
+"<b>Warning:</b> 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." => "<b>Įspėjimas:</b> \"Curl\" palaikymas PHP terpėje nėra įjungtas arba įdiegtas. ownCloud/WebDAV ar GoogleDrive įjungimas nebus įmanomas. Prašome susisiekti su sistemos administratoriumi kad būtų įdiegtas arba įjungtas \"Curl\" palaikymas.",
 "External Storage" => "Išorinės saugyklos",
 "Folder name" => "Katalogo pavadinimas",
 "External storage" => "Išorinė saugykla",
diff --git a/apps/files_external/l10n/nn_NO.php b/apps/files_external/l10n/nn_NO.php
index 4b4b6167d88628cfae7ace8305001b3a06cc31b7..998c3f824578b5d2553d84eecd777aff27a8c4ff 100644
--- a/apps/files_external/l10n/nn_NO.php
+++ b/apps/files_external/l10n/nn_NO.php
@@ -1,4 +1,5 @@
 <?php $TRANSLATIONS = array(
+"Configuration" => "Innstillingar",
 "Groups" => "Grupper",
 "Users" => "Brukarar",
 "Delete" => "Slett"
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index 655c3c9a81653b1fafad3bee8c8e6ffb9d1e4129..81a6c95638591115d7740496e313571fb35bbcf6 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -57,12 +57,22 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
 
 	public function stat($path) {
 		if ( ! $path and $this->root=='/') {//mtime doesn't work for shares
-			$mtime=$this->shareMTime();
 			$stat=stat($this->constructUrl($path));
+			if (empty($stat)) {
+				return false;
+			}
+			$mtime=$this->shareMTime();
 			$stat['mtime']=$mtime;
 			return $stat;
 		} else {
-			return stat($this->constructUrl($path));
+			$stat = stat($this->constructUrl($path));
+
+			// smb4php can return an empty array if the connection could not be established
+			if (empty($stat)) {
+				return false;
+			}
+
+			return $stat;
 		}
 	}
 
diff --git a/apps/files_sharing/lib/permissions.php b/apps/files_sharing/lib/permissions.php
index 6747faa4d4313269cbf1649774e625cbfd1f26f5..b6638564cd82c343070f6be07da1b3235d7f8747 100644
--- a/apps/files_sharing/lib/permissions.php
+++ b/apps/files_sharing/lib/permissions.php
@@ -70,6 +70,28 @@ class Shared_Permissions extends Permissions {
 		return $filePermissions;
 	}
 
+	/**
+	 * get the permissions for all files in a folder
+	 *
+	 * @param int $parentId
+	 * @param string $user
+	 * @return int[]
+	 */
+	public function getDirectoryPermissions($parentId, $user) {
+		// Root of the Shared folder
+		if ($parentId === -1) {
+			return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_PERMISSIONS);
+		}
+		$permissions = $this->get($parentId, $user);
+		$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `parent` = ?');
+		$result = $query->execute(array($parentId));
+		$filePermissions = array();
+		while ($row = $result->fetchRow()) {
+			$filePermissions[$row['fileid']] = $permissions;
+		}
+		return $filePermissions;
+	}
+
 	/**
 	 * remove the permissions for a file
 	 *
@@ -83,4 +105,5 @@ class Shared_Permissions extends Permissions {
 	public function removeMultiple($fileIds, $user) {
 		// Not a valid action for Shared Permissions
 	}
-}
+
+}
\ No newline at end of file
diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index 62948651806fdde14b0d28b67d64dcaa57567cc5..07e7a4ca0c5ccaa1c26d6acb55141abbf351b47a 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -26,6 +26,7 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
 	const FORMAT_FILE_APP_ROOT = 2;
 	const FORMAT_OPENDIR = 3;
 	const FORMAT_GET_ALL = 4;
+	const FORMAT_PERMISSIONS = 5;
 
 	private $path;
 
@@ -125,6 +126,12 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
 				$ids[] = $item['file_source'];
 			}
 			return $ids;
+		} else if ($format === self::FORMAT_PERMISSIONS) {
+			$filePermissions = array();
+			foreach ($items as $item) {
+				$filePermissions[$item['file_source']] = $item['permissions'];
+			}
+			return $filePermissions;
 		}
 		return array();
 	}
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 5fdbef27743b8f719ef4971104e69be6fb72670e..4beb9e0fe5cc18929f4255871836c3de4d009ab8 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -113,8 +113,16 @@ class Storage {
 				mkdir($versionsFolderName.'/'.$info['dirname'], 0750, true);
 			}
 
+			// disable proxy to prevent multiple fopen calls
+			$proxyStatus = \OC_FileProxy::$enabled;
+			\OC_FileProxy::$enabled = false;
+
 			// store a new version of a file
 			$users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename));
+
+			// reset proxy state
+			\OC_FileProxy::$enabled = $proxyStatus;
+
 			$versionsSize = self::getVersionsSize($uid);
 			if (  $versionsSize === false || $versionsSize < 0 ) {
 				$versionsSize = self::calculateSize($uid);
@@ -195,7 +203,16 @@ class Storage {
 			//first create a new version
 			$version = 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename);
 			if ( !$users_view->file_exists($version)) {
+
+				// disable proxy to prevent multiple fopen calls
+				$proxyStatus = \OC_FileProxy::$enabled;
+				\OC_FileProxy::$enabled = false;
+
 				$users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename));
+
+				// reset proxy state
+				\OC_FileProxy::$enabled = $proxyStatus;
+
 				$versionCreated = true;
 			}
 
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index 81eaa0404b759dbef6be6590521b08b47493ef52..593e846bc03f8dea4514bd05cf32c99672e90717 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -49,7 +49,7 @@ $entry = array(
 	'name' => 'LDAP'
 );
 
-OCP\Backgroundjob::addRegularTask('OCA\user_ldap\lib\Jobs', 'updateGroups');
+OCP\Backgroundjob::registerJob('OCA\user_ldap\lib\Jobs');
 if(OCP\App::isEnabled('user_webdavauth')) {
 	OCP\Util::writeLog('user_ldap',
 		'user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour',
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index f47d49cf222a9142b433b55c9a58966b27f75dab..52d5dbc48d97d85431aacedc3aaa417db30816b0 100644
--- a/apps/user_ldap/js/settings.js
+++ b/apps/user_ldap/js/settings.js
@@ -14,7 +14,7 @@ var LdapConfiguration = {
 
 						//deal with Checkboxes
 						if($(elementID).is('input[type=checkbox]')) {
-							if(configvalue === 1) {
+							if(parseInt(configvalue) === 1) {
 								$(elementID).attr('checked', 'checked');
 							} else {
 								$(elementID).removeAttr('checked');
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index e22c5b5bdd900f1dae429a7d3a9c7f8d3f055273..8aa64477e41bcf2cc13d05d7394a09b243f38d07 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -74,6 +74,8 @@
 "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls tragen Sie bitte ein LDAP/AD-Attribut ein.",
 "Internal Username" => "Interner Benutzername",
 "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." => "Standardmäßig wird der interne Benutzername mittels des UUID-Attributes erzeugt. Dies stellt sicher, dass der Benutzername einzigartig ist und keinerlei Zeichen konvertiert werden müssen. Der interne Benutzername unterliegt Beschränkungen, die nur die nachfolgenden Zeichen erlauben: [ a-zA-Z0-9_.@- ]. Andere Zeichenwerden mittels ihrer korrespondierenden Zeichen ersetzt oder einfach ausgelassen. Bei Übereinstimmungen wird ein Zähler hinzugefügt bzw. der Zähler um einen Wert erhöht. Der interne Benutzername wird benutzt, um einen Benutzer intern zu identifizieren. Es ist ebenso der standardmäßig vorausgewählte Namen des Heimatverzeichnisses in ownCloud. Es dient weiterhin als Port für Remote-URLs - zum Beispiel für alle *DAV-Dienste Mit dieser Einstellung kann das Standardverhalten überschrieben werden. Um ein ähnliches Verhalten wie vor ownCloud 5 zu erzielen, fügen Sie das anzuzeigende Attribut des Benutzernamens in das nachfolgende Feld ein. Lassen Sie dies hingegen für das Standardverhalten leer. Die Änderungen werden sich einzig und allein nur auf neu gemappte (hinzugefügte) LDAP-Benutzer auswirken.",
+"Override UUID detection" => "UUID-Erkennung überschreiben",
+"UUID Attribute:" => "UUID-Attribut:",
 "Test Configuration" => "Testkonfiguration",
 "Help" => "Hilfe"
 );
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index a06d0bd53558cbbc3075fb45673399ac18224ffc..361ae5e0403152cb86e1aad06104744065fc636e 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -75,6 +75,12 @@
 "User Home Folder Naming Rule" => "A home könyvtár elérési útvonala",
 "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!",
 "Internal Username" => "Belső felhasználónév",
+"Internal Username Attribute:" => "A belső felhasználónév attribútuma:",
+"Override UUID detection" => "Az UUID-felismerés felülbírálása",
+"UUID Attribute:" => "UUID attribútum:",
+"Username-LDAP User Mapping" => "Felhasználó - LDAP felhasználó hozzárendelés",
+"Clear Username-LDAP User Mapping" => "A felhasználó - LDAP felhasználó hozzárendelés törlése",
+"Clear Groupname-LDAP Group Mapping" => "A csoport - LDAP csoport hozzárendelés törlése",
 "Test Configuration" => "A beállítások tesztelése",
 "Help" => "Súgó"
 );
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index c935d387ccc51475f408cc117a7ed79521626926..c75aae3ea4f57fe2e0e43cc2d5e1e7af3f8b7ad4 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -75,10 +75,13 @@
 "User Home Folder Naming Rule" => "Gebruikers Home map naamgevingsregel",
 "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.",
 "Internal Username" => "Interne gebruikersnaam",
+"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." => "Standaard wordt de interne gebruikersnaam aangemaakt op basis van de UUID attribuut. Het zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft als beperking dat alleen deze tekens zijn toegestaan​​: [a-zA-Z0-9_.@- ]. Andere tekens worden vervangen door hun ASCII vertaling of gewoonweg weggelaten. Bij identieke namen wordt een nummer toegevoegd of verhoogd. De interne gebruikersnaam wordt gebruikt om een ​​gebruiker binnen het systeem te herkennen. Het is ook de standaardnaam voor de standaardmap van de gebruiker in ownCloud. Het is ook een vertaling voor externe URL's, bijvoorbeeld voor alle * DAV diensten. Met deze instelling kan het standaardgedrag worden overschreven. Om een soortgelijk gedrag te bereiken als van voor ownCloud 5, voer het gebruikersweergavenaam attribuut in in het volgende veld. Laat het leeg voor standaard gedrag. Veranderingen worden alleen toegepast op nieuw in kaart gebracht (toegevoegde) LDAP-gebruikers.",
 "Internal Username Attribute:" => "Interne gebruikersnaam attribuut:",
 "Override UUID detection" => "Negeren UUID detectie",
+"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." => "Standaard herkent ownCloud het UUID attribuut automatisch. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij dit hierboven anders is aangegeven. U kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. U moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw in kaart gebrachte (toegevoegde) LDAP-gebruikers en-groepen.",
 "UUID Attribute:" => "UUID Attribuut:",
 "Username-LDAP User Mapping" => "Gebruikersnaam-LDAP gebruikers vertaling",
+"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." => "ownCloud maakt gebruik van gebruikersnamen om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, zal elke LDAP-gebruiker ook een interne gebruikersnaam krijgen. Dit vereist een mapping van de ownCloud gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Ook de 'DN' wordt gecached om het aantal LDAP transacties te verminderen, maar deze wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden door ownCloud. De interne ownCloud naam wordt overal in ownCloud gebruikt. Wissen van de koppeling zal overal overblijfsel laten staan. Het wissen van Mappings is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze Mappings nooit in een productieomgeving plaatsvinden. Maak ze alleen leeg in een test-of ontwikkelomgeving.",
 "Clear Username-LDAP User Mapping" => "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
 "Clear Groupname-LDAP Group Mapping" => "Leegmaken Groepsnaam-LDAP groep vertaling",
 "Test Configuration" => "Test configuratie",
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 29c814b5fb2a559d85c11d04a19f1be62bca0ef7..7edfe0919eba1978e6827feb2f2021ca569de7e5 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -79,6 +79,8 @@
 "Override UUID detection" => "Zastąp wykrywanie UUID",
 "UUID Attribute:" => "Atrybuty UUID:",
 "Username-LDAP User Mapping" => "Mapowanie użytkownika LDAP",
+"Clear Username-LDAP User Mapping" => "Czyść Mapowanie użytkownika LDAP",
+"Clear Groupname-LDAP Group Mapping" => "Czyść Mapowanie nazwy grupy LDAP",
 "Test Configuration" => "Konfiguracja testowa",
 "Help" => "Pomoc"
 );
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index b31fe3775639988f304681a57f333769c6fa5bc1..e36a1589367219db8f8038a1fd50dbf786dceae1 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -1,4 +1,5 @@
 <?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "Nepodarilo sa vymazať mapovania.",
 "Failed to delete the server configuration" => "Zlyhalo zmazanie nastavenia servera.",
 "The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.",
 "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.",
@@ -7,6 +8,7 @@
 "Take over settings from recent server configuration?" => "Prebrať nastavenia z nedávneho nastavenia servera?",
 "Keep settings?" => "Ponechať nastavenia?",
 "Cannot add server configuration" => "Nemožno pridať nastavenie servera",
+"mappings cleared" => "mapovanie vymazané",
 "Success" => "Úspešné",
 "Error" => "Chyba",
 "Connection test succeeded" => "Test pripojenia bol úspešný",
@@ -72,6 +74,11 @@
 "Email Field" => "Pole email",
 "User Home Folder Naming Rule" => "Pravidlo pre nastavenie mena používateľského priečinka dát",
 "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.",
+"Internal Username" => "Interné používateľské meno",
+"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." => "V predvolenom nastavení bude interné používateľské meno vytvorené z UUID atribútu. Zabezpečí sa to, že používateľské meno bude jedinečné a znaky nemusia byť prevedené. Interné meno má obmedzenie, iba tieto znaky sú povolené: [a-zA-Z0-9_ @ -.]. Ostatné znaky sú nahradené ich ASCII alebo jednoducho vynechané. Pri kolíziách bude číslo byť pridané / odobrané. Interné používateľské meno sa používa na identifikáciu používateľa interne. Je to tiež predvolený názov používateľského domovského priečinka v ownCloud. To je tiež port vzdialeného URL, napríklad pre všetky služby * DAV. S týmto nastavením sa dá prepísať predvolené správanie. Pre dosiahnutie podobného správania sa ako pred ownCloud 5 zadajte atribút zobrazenia používateľského mena v tomto poli. Ponechajte prázdne pre predvolené správanie. Zmeny budú mať vplyv iba na novo mapovaných (pridaných) LDAP používateľov.",
+"Internal Username Attribute:" => "Atribút interného používateľského mena:",
+"Override UUID detection" => "Prepísať UUID detekciu",
+"UUID Attribute:" => "UUID atribút:",
 "Test Configuration" => "Test nastavenia",
 "Help" => "Pomoc"
 );
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index a7611eb3e846690c0a69b8f90756ae625dcbb5de..04f73cf01fe96b25895e12bb74b7287e15362c17 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -441,8 +441,8 @@ abstract class Access {
 		//while loop is just a precaution. If a name is not generated within
 		//20 attempts, something else is very wrong. Avoids infinite loop.
 		while($attempts < 20){
-			$altName = $name . '_' . uniqid();
-			if(\OCP\User::userExists($altName)) {
+			$altName = $name . '_' . rand(1000,9999);
+			if(!\OCP\User::userExists($altName)) {
 				return $altName;
 			}
 			$attempts++;
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index ba4de1353412dbb6756a74f9de54d2cefaf4ea03..31150a5bec57d2c9575e4f3e7af68d82213a6f24 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -601,14 +601,13 @@ class Connection {
 				$error = null;
 			}
 
-			$error = null;
 			//if LDAP server is not reachable, try the Backup (Replica!) Server
-			if((!$bindStatus && ($error === -1))
+			if((!$bindStatus && ($error !== 0))
 				|| $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);
@@ -622,6 +621,10 @@ class Connection {
 		if(empty($host)) {
 			return false;
 		}
+		if(strpos($host, '://') !== false) {
+			//ldap_connect ignores port paramater when URLs are passed
+			$host .= ':' . $port;
+		}
 		$this->ldapConnectionRes = ldap_connect($host, $port);
 		if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) {
 			if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) {
@@ -636,10 +639,17 @@ class Connection {
 	 * Binds to LDAP
 	 */
 	public function bind() {
+		static $getConnectionResourceAttempt = false;
 		if(!$this->config['ldapConfigurationActive']) {
 			return false;
 		}
+		if($getConnectionResourceAttempt) {
+			$getConnectionResourceAttempt = false;
+			return false;
+		}
+		$getConnectionResourceAttempt = true;
 		$cr = $this->getConnectionResource();
+		$getConnectionResourceAttempt = false;
 		if(!is_resource($cr)) {
 			return false;
 		}
diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php
index 07d13a806a624fcff9982d38cb508afca3d4da01..10ed40ebd6a0ae9b618a7b17636c2b86b3d46c67 100644
--- a/apps/user_ldap/lib/helper.php
+++ b/apps/user_ldap/lib/helper.php
@@ -118,7 +118,13 @@ class Helper {
 			return false;
 		}
 
-		$query = \OCP\DB::prepare('TRUNCATE '.$table);
+		if(strpos(\OCP\Config::getSystemValue('dbtype'), 'sqlite') !== false) {
+			$query = \OCP\DB::prepare('DELETE FROM '.$table);
+		} else {
+			$query = \OCP\DB::prepare('TRUNCATE '.$table);
+		}
+
+
 		$res = $query->execute();
 
 		if(\OCP\DB::isError($res)) {
diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php
index 094d11db3d5d55681d968f077da5573dfe78ba89..60ecc0da33df57bf473a71403f14f13ec286ce7c 100644
--- a/apps/user_ldap/lib/jobs.php
+++ b/apps/user_ldap/lib/jobs.php
@@ -23,20 +23,22 @@
 
 namespace OCA\user_ldap\lib;
 
-class Jobs {
+class Jobs extends \OC\BackgroundJob\TimedJob {
 	static private $groupsFromDB;
 
 	static private $groupBE;
 	static private $connector;
 
+	public function __construct(){
+		$this->interval = self::getRefreshInterval();
+	}
+
+	public function run($argument){
+		Jobs::updateGroups();
+	}
+
 	static public function updateGroups() {
 		\OCP\Util::writeLog('user_ldap', 'Run background job "updateGroups"', \OCP\Util::DEBUG);
-		$lastUpdate = \OCP\Config::getAppValue('user_ldap', 'bgjUpdateGroupsLastRun', 0);
-		if((time() - $lastUpdate) < self::getRefreshInterval()) {
-			\OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – last run too fresh, aborting.', \OCP\Util::DEBUG);
-			//komm runter Werner die Maurer geben ein aus
-			return;
-		}
 
 		$knownGroups = array_keys(self::getKnownGroups());
 		$actualGroups = self::getGroupBE()->getGroups();
@@ -45,7 +47,6 @@ class Jobs {
 			\OCP\Util::writeLog('user_ldap',
 				'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.',
 				\OCP\Util::INFO);
-			\OCP\Config::setAppValue('user_ldap', 'bgjUpdateGroupsLastRun', time());
 			return;
 		}
 
@@ -53,8 +54,6 @@ class Jobs {
 		self::handleCreatedGroups(array_diff($actualGroups, $knownGroups));
 		self::handleRemovedGroups(array_diff($knownGroups, $actualGroups));
 
-		\OCP\Config::setAppValue('user_ldap', 'bgjUpdateGroupsLastRun', time());
-
 		\OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – Finished.', \OCP\Util::DEBUG);
 	}
 
diff --git a/apps/user_webdavauth/l10n/nn_NO.php b/apps/user_webdavauth/l10n/nn_NO.php
new file mode 100644
index 0000000000000000000000000000000000000000..772e084b631c20e7bfc580bcb7a9c99ac8c76ba1
--- /dev/null
+++ b/apps/user_webdavauth/l10n/nn_NO.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"WebDAV Authentication" => "WebDAV-autentisering",
+"URL: http://" => "Nettadresse: 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 sender brukarakkreditiv til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige."
+);
diff --git a/core/css/jquery.ocdialog.css b/core/css/jquery.ocdialog.css
new file mode 100644
index 0000000000000000000000000000000000000000..c300b031afdfd430cd6d362894663831c7e40f39
--- /dev/null
+++ b/core/css/jquery.ocdialog.css
@@ -0,0 +1,48 @@
+.oc-dialog {
+	background: white;
+	color: #333333;
+	border-radius: 3px; box-shadow: 0 0 7px #888888;
+	padding: 15px;
+	z-index: 1000;
+	font-size: 100%;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	min-width: 200px;
+}
+.oc-dialog-title {
+	background: white;
+	font-weight: bold;
+	font-size: 110%;
+	margin-bottom: 10px;
+}
+.oc-dialog-content {
+	z-index: 1000;
+	background: white;
+}
+.oc-dialog-separator {
+}
+.oc-dialog-buttonrow {
+	background: white;
+	float: right;
+	position: relative;
+	bottom: 0;
+	display: block;
+	margin-top: 10px;
+}
+
+.oc-dialog-close {
+	position:absolute;
+	top:7px; right:7px;
+	height:20px; width:20px;
+	background:url('../img/actions/delete.svg') no-repeat center;
+}
+
+.oc-dialog-dim {
+	background-color: #000;
+	opacity: .20;filter:Alpha(Opacity=20);
+	z-index: 999;
+	position: absolute;
+	top: 0; left: 0;
+	width: 100%; height: 100%;
+}
diff --git a/core/css/styles.css b/core/css/styles.css
index 70a840d68903ce08ece49a46dfbd9348a12c828b..78671a7bc11fccc4eae6c221d561fe3d16de9525 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -391,7 +391,12 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin
 #oc-dialog-filepicker-content .dirtree span:not(:last-child) { cursor: pointer; }
 #oc-dialog-filepicker-content .dirtree span:last-child { font-weight: bold; }
 #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 {
+	overflow-y:auto;
+	max-height: 300px;
+	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;}
diff --git a/core/js/jquery-1.10.0.min.js b/core/js/jquery-1.10.0.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..01c688164ad8d7aec3d4fd75541e02a526d772eb
--- /dev/null
+++ b/core/js/jquery-1.10.0.min.js
@@ -0,0 +1,6 @@
+/*! jQuery v1.10.0 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-1.10.0.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.0",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=lt(),k=lt(),E=lt(),S=!1,A=function(){return 0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=bt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+xt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return At(e.replace(z,"$1"),t,n,i)}function st(e){return K.test(e+"")}function lt(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[b]=!0,e}function ct(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function pt(e,t,n){e=e.split("|");var r,i=e.length,a=n?null:t;while(i--)(r=o.attrHandle[e[i]])&&r!==t||(o.attrHandle[e[i]]=a)}function ft(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function dt(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:t}function gt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function yt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function vt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),r.attributes=ct(function(e){return e.innerHTML="<a href='#'></a>",pt("type|href|height|width",dt,"#"===e.firstChild.getAttribute("href")),pt(B,ft,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),r.input=ct(function(e){return e.innerHTML="<input>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),pt("value",ht,r.attributes&&r.input),r.getElementsByTagName=ct(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ct(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ct(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=st(n.querySelectorAll))&&(ct(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ct(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=st(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ct(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=st(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},r.sortDetached=ct(function(e){return 1&e.compareDocumentPosition(n.createElement("div"))}),A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return gt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?gt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:ut,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=bt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?ut(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return at(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:vt(function(){return[0]}),last:vt(function(e,t){return[t-1]}),eq:vt(function(e,t,n){return[0>n?n+t:n]}),even:vt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:vt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:vt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:vt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=mt(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=yt(n);function bt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function wt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function Tt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Ct(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function Nt(e,t,n,r,i,o){return r&&!r[b]&&(r=Nt(r)),i&&!i[b]&&(i=Nt(i,o)),ut(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||St(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:Ct(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=Ct(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=Ct(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function kt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=wt(function(e){return e===t},s,!0),p=wt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[wt(Tt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return Nt(l>1&&Tt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),i>r&&kt(e=e.slice(r)),i>r&&xt(e))}f.push(n)}return Tt(f)}function Et(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=Ct(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?ut(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=bt(e)),n=t.length;while(n--)o=kt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Et(i,r))}return o};function St(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function At(e,t,n,i){var a,s,u,c,p,f=bt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&xt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}o.pseudos.nth=o.pseudos.eq;function jt(){}jt.prototype=o.filters=o.pseudos,o.setFilters=new jt,r.sortStable=b.split("").sort(A).join("")===b,p(),[0,0].sort(A),r.detectDuplicates=S,x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!u||(n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;
+if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=x(this),l=t,u=e.match(T)||[];while(o=u[a++])l=r?l:!s.hasClass(o),s[l?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})
+}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(n.unit=o,n.start=+a||+r||0,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);a.finish=function(){t.stop(!0)},(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/core/js/jquery-1.7.2.min.js b/core/js/jquery-1.7.2.min.js
deleted file mode 100644
index 16ad06c5acaad09ee4d6e9d7c428506db028aeeb..0000000000000000000000000000000000000000
--- a/core/js/jquery-1.7.2.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
-.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
\ No newline at end of file
diff --git a/core/js/jquery-migrate-1.2.1.min.js b/core/js/jquery-migrate-1.2.1.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b7ec47a2d66397db47e3b4c14263f02b7221751
--- /dev/null
+++ b/core/js/jquery-migrate-1.2.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
+jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
\ No newline at end of file
diff --git a/core/js/jquery.ocdialog.js b/core/js/jquery.ocdialog.js
new file mode 100644
index 0000000000000000000000000000000000000000..7413927e3b27064d4331cf041b84e837471cb22e
--- /dev/null
+++ b/core/js/jquery.ocdialog.js
@@ -0,0 +1,217 @@
+(function($) {
+	$.widget('oc.ocdialog', {
+		options: {
+			width: 'auto',
+			height: 'auto',
+			closeButton: true,
+			closeOnEscape: true,
+			modal: false
+		},
+		_create: function() {
+			var self = this;
+
+			this.originalCss = {
+				display: this.element[0].style.display,
+				width: this.element[0].style.width,
+				height: this.element[0].style.height,
+			};
+
+			this.originalTitle = this.element.attr('title');
+			this.options.title = this.options.title || this.originalTitle;
+
+			this.$dialog = $('<div class="oc-dialog" />')
+				.attr({
+					// Setting tabIndex makes the div focusable
+					tabIndex: -1,
+					role: 'dialog'
+				})
+				.insertBefore(this.element);
+			this.$dialog.append(this.element.detach());
+			this.element.removeAttr('title').addClass('oc-dialog-content').appendTo(this.$dialog);
+
+			this.$dialog.css({
+				display: 'inline-block',
+				position: 'fixed'
+			});
+
+			$(document).on('keydown keyup', function(event) {
+				if(event.target !== self.$dialog.get(0) && self.$dialog.find($(event.target)).length === 0) {
+					return;
+				}
+				// Escape
+				if(event.keyCode === 27 && self.options.closeOnEscape) {
+					self.close();
+					return false;
+				}
+				// Enter
+				if(event.keyCode === 13) {
+					event.stopImmediatePropagation();
+					if(event.type === 'keyup') {
+						event.preventDefault();
+						return false;
+					}
+					// If no button is selected we trigger the primary
+					if(self.$buttonrow && self.$buttonrow.find($(event.target)).length === 0) {
+						var $button = self.$buttonrow.find('button.primary');
+						if($button) {
+							$button.trigger('click');
+						}
+					} else if(self.$buttonrow) {
+						$(event.target).trigger('click');
+					}
+					return false;
+				}
+			});
+			$(window).resize(function() {
+				self.parent = self.$dialog.parent().length > 0 ? self.$dialog.parent() : $('body');
+				var pos = self.parent.position();
+				self.$dialog.css({
+					left: pos.left + (self.parent.width() - self.$dialog.outerWidth())/2,
+					top: pos.top + (self.parent.height() - self.$dialog.outerHeight())/2
+				});
+			});
+
+			this._setOptions(this.options);
+			$(window).trigger('resize');
+			this._createOverlay();
+		},
+		_init: function() {
+			this.$dialog.focus();
+			this._trigger('open');
+		},
+		_setOption: function(key, value) {
+			var self = this;
+			switch(key) {
+				case 'title':
+					var $title = $('<h3 class="oc-dialog-title">' + this.options.title
+						+ '</h3>'); //<hr class="oc-dialog-separator" />');
+					if(this.$title) {
+						this.$title.replaceWith($title);
+					} else {
+						this.$title = $title.prependTo(this.$dialog);
+					}
+					this._setSizes();
+					break;
+				case 'buttons':
+					var $buttonrow = $('<div class="oc-dialog-buttonrow" />');
+					if(this.$buttonrow) {
+						this.$buttonrow.replaceWith($buttonrow);
+					} else {
+						this.$buttonrow = $buttonrow.appendTo(this.$dialog);
+					}
+					$.each(value, function(idx, val) {
+						var $button = $('<button>').text(val.text);
+						if(val.defaultButton) {
+							$button.addClass('primary');
+							self.$defaultButton = $button;
+						}
+						self.$buttonrow.append($button);
+						$button.click(function() {
+							val.click.apply(self.element[0], arguments);
+						});
+					});
+					this.$buttonrow.find('button')
+						.on('focus', function(event) {
+							self.$buttonrow.find('button').removeClass('primary');
+							$(this).addClass('primary');
+						});
+					this._setSizes();
+					break;
+				case 'closeButton':
+					if(value) {
+						var $closeButton = $('<a class="oc-dialog-close svg"></a>');
+						this.$dialog.prepend($closeButton);
+						$closeButton.on('click', function() {
+							self.close();
+						});
+					}
+					break;
+				case 'width':
+					this.$dialog.css('width', value);
+					break;
+				case 'height':
+					this.$dialog.css('height', value);
+					break;
+				case 'close':
+					this.closeCB = value;
+					break;
+			}
+			//this._super(key, value);
+			$.Widget.prototype._setOption.apply(this, arguments );
+		},
+		_setOptions: function(options) {
+			//this._super(options);
+			$.Widget.prototype._setOptions.apply(this, arguments);
+		},
+		_setSizes: function() {
+			var content_height = this.$dialog.height();
+			if(this.$title) {
+				content_height -= this.$title.outerHeight(true);
+			}
+			if(this.$buttonrow) {
+				content_height -= this.$buttonrow.outerHeight(true);
+			}
+			this.parent = this.$dialog.parent().length > 0 ? this.$dialog.parent() : $('body');
+			content_height = Math.min(content_height, this.parent.height()-20)
+			this.element.css({
+				height: content_height + 'px',
+				width: this.$dialog.innerWidth()-20 + 'px'
+			});
+		},
+		_createOverlay: function() {
+			if(!this.options.modal) {
+				return;
+			}
+
+			var self = this;
+			this.overlay = $('<div>')
+				.addClass('oc-dialog-dim')
+				.appendTo($('#content'));
+			this.overlay.on('click keydown keyup', function(event) {
+				if(event.target !== self.$dialog.get(0) && self.$dialog.find($(event.target)).length === 0) {
+					event.preventDefault();
+					event.stopPropagation();
+					return;
+				}
+			});
+		},
+		_destroyOverlay: function() {
+			if (!this.options.modal) {
+				return;
+			}
+
+			if (this.overlay) {
+				this.overlay.off('click keydown keyup');
+				this.overlay.remove();
+				this.overlay = null;
+			}
+		},
+		widget: function() {
+			return this.$dialog
+		},
+		close: function() {
+			this._destroyOverlay();
+			var self = this;
+			// Ugly hack to catch remaining keyup events.
+			setTimeout(function() {
+				self._trigger('close', self);
+				self.$dialog.hide();
+			}, 200);
+		},
+		destroy: function() {
+			if(this.$title) {
+				this.$title.remove()
+			}
+			if(this.$buttonrow) {
+				this.$buttonrow.remove()
+			}
+
+			if(this.originalTitle) {
+				this.element.attr('title', this.originalTitle);
+			}
+			this.element.removeClass('oc-dialog-content')
+					.css(this.originalCss).detach().insertBefore(this.$dialog);
+			this.$dialog.remove();
+		}
+	});
+}(jQuery));
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index e1d3657724e14822eb2431c3667789c7b3db1c56..f4bc174b5ebdc5be5793eabb6b95cfa531600ecf 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -72,7 +72,7 @@ var OCdialogs = {
 			var dialog_name = 'oc-dialog-filepicker-content';
 			var dialog_id = '#' + dialog_name;
 			if(self.$filePicker) {
-				self.$filePicker.dialog('close');
+				self.$filePicker.ocdialog('close');
 			}
 			self.$filePicker = $tmpl.octemplate({
 				dialog_name: dialog_name,
@@ -110,26 +110,29 @@ var OCdialogs = {
 						datapath += '/' + self.$filelist.find('.filepicker_element_selected .filename').text();
 					}
 					callback(datapath);
-					self.$filePicker.dialog('close');
+					self.$filePicker.ocdialog('close');
 				}
 			};
 			var buttonlist = [{
 				text: t('core', 'Choose'),
-				click: functionToCall
+				click: functionToCall,
+				defaultButton: true
 				},
 				{
 				text: t('core', 'Cancel'),
-				click: function(){self.$filePicker.dialog('close'); }
+				click: function(){self.$filePicker.ocdialog('close'); }
 			}];
 
-			self.$filePicker.dialog({
+			self.$filePicker.ocdialog({
 				closeOnEscape: true,
 				width: (4/9)*$(document).width(),
 				height: 420,
 				modal: modal,
 				buttons: buttonlist,
 				close: function(event, ui) {
-					self.$filePicker.dialog('destroy').remove();
+					try {
+						$(this).ocdialog('destroy').remove();
+					} catch(e) {}
 					self.$filePicker = null;
 				}
 			});
@@ -161,30 +164,32 @@ var OCdialogs = {
 						text: t('core', 'Yes'),
 						click: function(){
 							if (callback !== undefined) { callback(true) };
-							$(dialog_id).dialog('close');
-						}
+							$(dialog_id).ocdialog('close');
+						},
+						defaultButton: true
 					},
 					{
 						text: t('core', 'No'),
 						click: function(){
 							if (callback !== undefined) { callback(false) };
-							$(dialog_id).dialog('close');
+							$(dialog_id).ocdialog('close');
 						}
 					}];
 				break;
 				case OCdialogs.OK_BUTTON:
 					var functionToCall = function() {
-						$(dialog_id).dialog('close');
+						$(dialog_id).ocdialog('close');
 						if(callback !== undefined) { callback() };
 					};
 					buttonlist[0] = {
 						text: t('core', 'Ok'),
-						click: functionToCall
+						click: functionToCall,
+						defaultButton: true
 					};
 				break;
 			};
 
-			$(dialog_id).dialog({
+			$(dialog_id).ocdialog({
 				closeOnEscape: true,
 				modal: modal,
 				buttons: buttonlist
diff --git a/core/js/octemplate.js b/core/js/octemplate.js
index e032506c0b1b3c93f5d3a116a868fe2d581d02bf..e69c6cc56e066fed3a03c3054fdfa040da2300c0 100644
--- a/core/js/octemplate.js
+++ b/core/js/octemplate.js
@@ -60,11 +60,11 @@
 			var self = this;
 
 			if(typeof this.options.escapeFunction === 'function') {
-				$.each(this.vars, function(key, val) {
-					if(typeof val === 'string') {
-						self.vars[key] = self.options.escapeFunction(val);
+				for (var key = 0; key < this.vars.length; key++) {
+					if(typeof this.vars[key] === 'string') {
+						this.vars[key] = self.options.escapeFunction(this.vars[key]);
 					}
-				});
+				}
 			}
 
 			var _html = this._build(this.vars);
diff --git a/core/l10n/da.php b/core/l10n/da.php
index 4e9f742e80d0bd8a2947c1b05d7dcd6e41f0c5ed..4c030bbf7cc363f8e9a0b872ca5d7f6934c99849 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -88,6 +88,8 @@
 "The update was successful. Redirecting you to ownCloud now." => "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud.",
 "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}",
+"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Linket til at nulstille dit kodeord er blevet sendt til din e-post. <br> Hvis du ikke modtager den inden for en rimelig tid, så tjek dine spam / junk mapper.<br> Hvis det ikke er der, så spørg din lokale administrator.",
+"Request failed!<br>Did you make sure your email/username was right?" => "Anmodning mislykkedes!<br>Er du sikker på at din e-post / brugernavn var korrekt?",
 "You will receive a link to reset your password via Email." => "Du vil modtage et link til at nulstille dit kodeord via email.",
 "Username" => "Brugernavn",
 "Request reset" => "Anmod om nulstilling",
@@ -123,6 +125,7 @@
 "Database host" => "Databasehost",
 "Finish setup" => "Afslut opsætning",
 "web services under your control" => "Webtjenester under din kontrol",
+"%s is available. Get more information on how to update." => "%s er tilgængelig. Få mere information om, hvordan du opdaterer.",
 "Log out" => "Log ud",
 "Automatic logon rejected!" => "Automatisk login afvist!",
 "If you did not change your password recently, your account may be compromised!" => "Hvis du ikke har ændret din adgangskode for nylig, har nogen muligvis tiltvunget sig adgang til din konto!",
diff --git a/core/l10n/ru.php b/core/l10n/ru.php
index 781eb1bbfa8c9c48da01d6cdfd1cfaf8567f55ef..608b9271df5e7e889b903fa20bf5d3a8306d2812 100644
--- a/core/l10n/ru.php
+++ b/core/l10n/ru.php
@@ -46,6 +46,7 @@
 "years ago" => "несколько лет назад",
 "Choose" => "Выбрать",
 "Cancel" => "Отменить",
+"Error loading file picker template" => "Ошибка при загрузке файла выбора  шаблона",
 "Yes" => "Да",
 "No" => "Нет",
 "Ok" => "Ок",
diff --git a/cron.php b/cron.php
index 69bfed8d05672e2df1a0236a9bc212c2610b5dc1..95cedf8bf4c8852bf2f22c01b6474f9cb6267cb8 100644
--- a/cron.php
+++ b/cron.php
@@ -1,24 +1,24 @@
 <?php
 /**
-* ownCloud
-*
-* @author Jakob Sack
-* @copyright 2012 Jakob Sack owncloud@jakobsack.de
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
+ * ownCloud
+ *
+ * @author Jakob Sack
+ * @copyright 2012 Jakob Sack owncloud@jakobsack.de
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 
 // Unfortunately we need this class for shutdown function
 class TemporaryCronClass {
@@ -30,17 +30,16 @@ class TemporaryCronClass {
 // We use this function to handle (unexpected) shutdowns
 function handleUnexpectedShutdown() {
 	// Delete lockfile
-	if( !TemporaryCronClass::$keeplock && file_exists( TemporaryCronClass::$lockfile )) {
-		unlink( TemporaryCronClass::$lockfile );
+	if (!TemporaryCronClass::$keeplock && file_exists(TemporaryCronClass::$lockfile)) {
+		unlink(TemporaryCronClass::$lockfile);
 	}
-	
+
 	// Say goodbye if the app did not shutdown properly
-	if( !TemporaryCronClass::$sent ) {
-		if( OC::$CLI ) {
-			echo 'Unexpected error!'.PHP_EOL;
-		}
-		else{
-			OC_JSON::error( array( 'data' => array( 'message' => 'Unexpected error!')));
+	if (!TemporaryCronClass::$sent) {
+		if (OC::$CLI) {
+			echo 'Unexpected error!' . PHP_EOL;
+		} else {
+			OC_JSON::error(array('data' => array('message' => 'Unexpected error!')));
 		}
 	}
 }
@@ -50,8 +49,8 @@ require_once 'lib/base.php';
 session_write_close();
 
 // Don't do anything if ownCloud has not been installed
-if( !OC_Config::getValue( 'installed', false )) {
-	exit( 0 );
+if (!OC_Config::getValue('installed', false)) {
+	exit(0);
 }
 
 // Handle unexpected errors
@@ -62,50 +61,54 @@ OC_Helper::cleanTmpNoClean();
 
 // Exit if background jobs are disabled!
 $appmode = OC_BackgroundJob::getExecutionType();
-if( $appmode == 'none' ) {
+if ($appmode == 'none') {
 	TemporaryCronClass::$sent = true;
-	if( OC::$CLI ) {
-		echo 'Background Jobs are disabled!'.PHP_EOL;
+	if (OC::$CLI) {
+		echo 'Background Jobs are disabled!' . PHP_EOL;
+	} else {
+		OC_JSON::error(array('data' => array('message' => 'Background jobs disabled!')));
 	}
-	else{
-		OC_JSON::error( array( 'data' => array( 'message' => 'Background jobs disabled!')));
-	}
-	exit( 1 );
+	exit(1);
 }
 
-if( OC::$CLI ) {
+if (OC::$CLI) {
 	// Create lock file first
-	TemporaryCronClass::$lockfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT.'/data' ).'/cron.lock';
-	
+	TemporaryCronClass::$lockfile = OC_Config::getValue("datadirectory", OC::$SERVERROOT . '/data') . '/cron.lock';
+
 	// We call ownCloud from the CLI (aka cron)
-	if( $appmode != 'cron' ) {
+	if ($appmode != 'cron') {
 		// Use cron in feature!
-		OC_BackgroundJob::setExecutionType('cron' );
+		OC_BackgroundJob::setExecutionType('cron');
 	}
 
 	// check if backgroundjobs is still running
-	if( file_exists( TemporaryCronClass::$lockfile )) {
+	if (file_exists(TemporaryCronClass::$lockfile)) {
 		TemporaryCronClass::$keeplock = true;
 		TemporaryCronClass::$sent = true;
 		echo "Another instance of cron.php is still running!";
-		exit( 1 );
+		exit(1);
 	}
 
 	// Create a lock file
-	touch( TemporaryCronClass::$lockfile );
+	touch(TemporaryCronClass::$lockfile);
 
 	// Work
-	OC_BackgroundJob_Worker::doAllSteps();
-}
-else{
+	$jobList = new \OC\BackgroundJob\JobList();
+	$jobs = $jobList->getAll();
+	foreach ($jobs as $job) {
+		$job->execute($jobList);
+	}
+} else {
 	// We call cron.php from some website
-	if( $appmode == 'cron' ) {
+	if ($appmode == 'cron') {
 		// Cron is cron :-P
-		OC_JSON::error( array( 'data' => array( 'message' => 'Backgroundjobs are using system cron!')));
-	}
-	else{
+		OC_JSON::error(array('data' => array('message' => 'Backgroundjobs are using system cron!')));
+	} else {
 		// Work and success :-)
-		OC_BackgroundJob_Worker::doNextStep();
+		$jobList = new \OC\BackgroundJob\JobList();
+		$job = $jobList->getNext();
+		$job->execute($jobList);
+		$jobList->setLastJob($job);
 		OC_JSON::success();
 	}
 }
diff --git a/db_structure.xml b/db_structure.xml
index a902374e01fa1e8287105ab117ceb861e2e06f14..933b09988f0b77b4cb25c6a5cc048a2e8b05a1e8 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -859,7 +859,7 @@
 
 	<table>
 
-		<name>*dbprefix*queuedtasks</name>
+		<name>*dbprefix*jobs</name>
 
 		<declaration>
 
@@ -874,35 +874,35 @@
 			</field>
 
 			<field>
-				<name>app</name>
+				<name>class</name>
 				<type>text</type>
 				<default></default>
 				<notnull>true</notnull>
-				<length>255</length>
+				<length>256</length>
 			</field>
 
 			<field>
-				<name>klass</name>
+				<name>argument</name>
 				<type>text</type>
 				<default></default>
 				<notnull>true</notnull>
-				<length>255</length>
+				<length>256</length>
 			</field>
 
 			<field>
-				<name>method</name>
-				<type>text</type>
+				<name>last_run</name>
+				<type>integer</type>
 				<default></default>
-				<notnull>true</notnull>
-				<length>255</length>
+				<notnull>false</notnull>
 			</field>
 
-			<field>
-				<name>parameters</name>
-				<type>text</type>
-				<notnull>true</notnull>
-				<length>255</length>
-			</field>
+			<index>
+				<name>job_class_index</name>
+				<field>
+					<name>class</name>
+					<sorting>ascending</sorting>
+				</field>
+			</index>
 
 		</declaration>
 
diff --git a/l10n/af_ZA/core.po b/l10n/af_ZA/core.po
index f124b9021ba9e2aadbef7cab959cfc11d4f7a0a2..c4e1228259d021e2571a768b937c24fe096bdf4d 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/af_ZA/files_encryption.po b/l10n/af_ZA/files_encryption.po
index 8d8d6032e0e24fd305fa006b9070b6e4d51c2f40..3ed16041c2edd66c99ad1c09285d9ce51aa3991d 100644
--- a/l10n/af_ZA/files_encryption.po
+++ b/l10n/af_ZA/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: af_ZA\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/af_ZA/lib.po b/l10n/af_ZA/lib.po
index f21a09c3c0f204b063fe07fa762cc1a97f32d69f..40e272fd5c41ef62afa1351890a0e0dd24904adf 100644
--- a/l10n/af_ZA/lib.po
+++ b/l10n/af_ZA/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ar/core.po b/l10n/ar/core.po
index af4b5148c735518a80a9e9606499a027bbc9490f..0215ac951722f1b2577710c5f37c1284e6594285 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "سنة مضت"
 msgid "Choose"
 msgstr "اختيار"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "الغاء"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "نعم"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "لا"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "موافق"
 
diff --git a/l10n/ar/files.po b/l10n/ar/files.po
index 6e57b141cfd1953fa16c5628893d9f6ac688e4d9..a52047896fb48b59bf0a53466aac8f3e7566d373 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ar/files_encryption.po b/l10n/ar/files_encryption.po
index d4a70adcbbe91c32ecd54c5b906eae451e03355c..bcccd33c2f8d5b21b547bdf635ccda3d6bb84900 100644
--- a/l10n/ar/files_encryption.po
+++ b/l10n/ar/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ar/files_external.po b/l10n/ar/files_external.po
index aa43597aa1d54e32743bc78843fef497626f3ff1..dc64cac0bb5910126edb6092d45e32768b35933b 100644
--- a/l10n/ar/files_external.po
+++ b/l10n/ar/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ar/files_sharing.po b/l10n/ar/files_sharing.po
index b61d8146f8f5252a91716c8de66238ea12652d8e..58015e50318cec1999dc0f8c3cd244fcc77a5e1e 100644
--- a/l10n/ar/files_sharing.po
+++ b/l10n/ar/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ar/files_trashbin.po b/l10n/ar/files_trashbin.po
index eb79955d5117081526a2ab0f208344d0480ab005..50981cac8bd7a817afedf786c0f60633fb2ad72e 100644
--- a/l10n/ar/files_trashbin.po
+++ b/l10n/ar/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ar/lib.po b/l10n/ar/lib.po
index c08364fc82fd20eef0e6751e50b8327b3bd46c9b..c02d196fb2ebcc6c69c3a797dc284e6c59b42921 100644
--- a/l10n/ar/lib.po
+++ b/l10n/ar/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "العودة الى الملفات"
 msgid "Selected files too large to generate zip file."
 msgstr "الملفات المحددة كبيرة جدا ليتم ضغطها في ملف zip"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "تعذّر تحديده"
 
diff --git a/l10n/ar/settings.po b/l10n/ar/settings.po
index 75b4dcae52ec6a3cca8d33905437efb96c63cb1b..90cafbceddef8f13aa4e774902a92d15c85c0415 100644
--- a/l10n/ar/settings.po
+++ b/l10n/ar/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po
index 43693f617c04b564e54fa4ba1a7fe0923d86529d..725f5ca966b0256b7995feea6d35029d09fa45b7 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/be/files_encryption.po b/l10n/be/files_encryption.po
index 229b8b326a4e75c3cc7e083df2d133b94e36b2a3..c0d6dac572734db49621847364b48ce13035d64b 100644
--- a/l10n/be/files_encryption.po
+++ b/l10n/be/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/bg_BG/core.po b/l10n/bg_BG/core.po
index 199a5fd1c325fc26b338370c0661e44795dad068..1a855bc71b0408ffed61fd89949c4f8f72e35cb2 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "последните години"
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Отказ"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Да"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Не"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Добре"
 
diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po
index 646dcde4bafeb66e5946c8eb4ee341adb96e5609..4febe1372485d7d6b61f2ec979782da4030aced3 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bg_BG/files_encryption.po b/l10n/bg_BG/files_encryption.po
index f7c82228bc113ca296ad7eb287eda62e0d16eb75..9bc2e0ee7a6ff8071d76a62b326d241e80e88138 100644
--- a/l10n/bg_BG/files_encryption.po
+++ b/l10n/bg_BG/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: bg_BG\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/bg_BG/files_external.po b/l10n/bg_BG/files_external.po
index cb8881d205210437103587f98fffe8b7a76f128a..005f4be9ca7b2608dfa194f070838909ba5241fb 100644
--- a/l10n/bg_BG/files_external.po
+++ b/l10n/bg_BG/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bg_BG/files_sharing.po b/l10n/bg_BG/files_sharing.po
index 290976ae2ec3bf423215b7cbc947b67777a868ec..ea49f21419f1661c0b58f382b2345248708778dc 100644
--- a/l10n/bg_BG/files_sharing.po
+++ b/l10n/bg_BG/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bg_BG/files_trashbin.po b/l10n/bg_BG/files_trashbin.po
index 3f9028abb979294f399b2e418963963889eb1530..e391b181a0693d300054824a763c768fbc49df53 100644
--- a/l10n/bg_BG/files_trashbin.po
+++ b/l10n/bg_BG/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bg_BG/lib.po b/l10n/bg_BG/lib.po
index 830788d85929671bb5c40c10aac2e84688740376..7695b0c9dd2e3228178defed66119c535b975b71 100644
--- a/l10n/bg_BG/lib.po
+++ b/l10n/bg_BG/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Назад към файловете"
 msgid "Selected files too large to generate zip file."
 msgstr "Избраните файлове са прекалено големи за генерирането на ZIP архив."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "не може да се определи"
 
diff --git a/l10n/bg_BG/settings.po b/l10n/bg_BG/settings.po
index bb3980aafcfb1fb666814a7140c51570112e4846..f02923ceabc09f8f017fa52ecc8f31fc21da2d8c 100644
--- a/l10n/bg_BG/settings.po
+++ b/l10n/bg_BG/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po
index 5dbf6567ed89122cfe30c0bc84469268dab96dbc..af255ba0488a9d9276653639425526733e23a1ce 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/core.po b/l10n/bn_BD/core.po
index 09dd60f2ecec5c5e2bbbdf66e1a7fa2a70151b40..82182636ed728003088676d80f4dec7a462f90cd 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "বছর পূর্বে"
 msgid "Choose"
 msgstr "বেছে নিন"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "বাতির"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "হ্যাঁ"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "না"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "তথাস্তু"
 
diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po
index 5acdf6118ce2aef2134b8903f17326f552db9698..2b55e51fc89ca1af222d5dfdb5b99071550f1b11 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/files_encryption.po b/l10n/bn_BD/files_encryption.po
index 81b4baa4d67c4a2182b472e00c11336e063f0867..3b9c0439d515a0c84af43d52a7b08fab2aa03d65 100644
--- a/l10n/bn_BD/files_encryption.po
+++ b/l10n/bn_BD/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: bn_BD\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/bn_BD/files_external.po b/l10n/bn_BD/files_external.po
index 9d2a864a503a7151eb6eb6ff9cb5fefa2e279738..cfb952a4853baf763d33ebcd639ff0bdb4fa22dd 100644
--- a/l10n/bn_BD/files_external.po
+++ b/l10n/bn_BD/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/files_sharing.po b/l10n/bn_BD/files_sharing.po
index 02d205cc40b802c1ab5d1c88dc5517123e5de749..982c0e344354782414d77e95a76b727c562b84d8 100644
--- a/l10n/bn_BD/files_sharing.po
+++ b/l10n/bn_BD/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/files_trashbin.po b/l10n/bn_BD/files_trashbin.po
index df0e7c1b62c592f4663c4101d1b1efdd507eafc3..322ba4bd5ffeb65c6ee00f6ac97fe421f09347e4 100644
--- a/l10n/bn_BD/files_trashbin.po
+++ b/l10n/bn_BD/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/lib.po b/l10n/bn_BD/lib.po
index bf5f734304feaed7e0c821a0b9c5c61e7aed0592..598def15f0e0b75249dfab20462fe41a35894ad1 100644
--- a/l10n/bn_BD/lib.po
+++ b/l10n/bn_BD/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "ফাইলে ফিরে চল"
 msgid "Selected files too large to generate zip file."
 msgstr "নির্বাচিত ফাইলগুলো এতই বৃহৎ যে জিপ ফাইল তৈরী করা সম্ভব নয়।"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/bn_BD/settings.po b/l10n/bn_BD/settings.po
index 76027c4ea05e7913cb6315aa993ca4ba54ea9567..b07fc191521d993aa69b063a3f86bbe597d8206c 100644
--- a/l10n/bn_BD/settings.po
+++ b/l10n/bn_BD/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po
index bb3d28a27593fea2eb88d7a2a5a394ca8e2df869..1613ef51b97919b33b039781dd2b196e7e8c64a9 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/core.po b/l10n/ca/core.po
index 027db2ca1f012a9cef6e975496dc14ac99818555..b7bc551417d57faa135b5ba4f80ae16bcf9668ad 100644
--- a/l10n/ca/core.po
+++ b/l10n/ca/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "anys enrere"
 msgid "Choose"
 msgstr "Escull"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancel·la"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Error en carregar la plantilla del seleccionador de fitxers"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sí"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "No"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "D'acord"
 
diff --git a/l10n/ca/files.po b/l10n/ca/files.po
index 1996ddfd2dc4d6fda8b362e549edc2d5a4a21cb7..436ee3aec70488bccd42565df5c6a5f61237086f 100644
--- a/l10n/ca/files.po
+++ b/l10n/ca/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/files_encryption.po b/l10n/ca/files_encryption.po
index 724196b29533a721b7b29d99a2eab448fadc1da7..10fc22da5c65d5599056d6e8c0f91a22f4097b8b 100644
--- a/l10n/ca/files_encryption.po
+++ b/l10n/ca/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
@@ -18,12 +18,22 @@ msgstr ""
 "Language: ca\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ca/files_external.po b/l10n/ca/files_external.po
index 95c6e45ac6a901c962256c67e8ece43f00ef8f5b..db9e5dfb76020c37682f7939674aed3cd0c9b652 100644
--- a/l10n/ca/files_external.po
+++ b/l10n/ca/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/files_sharing.po b/l10n/ca/files_sharing.po
index 37b7d3e90e91f274a9e9371a36646f730ba2a7b2..4ba839ce6a2250a6a94bcfb454c66204be5253ec 100644
--- a/l10n/ca/files_sharing.po
+++ b/l10n/ca/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/files_trashbin.po b/l10n/ca/files_trashbin.po
index ddc9200aca387269e4c245a7d46c78966dc7e938..ce490a2e470dfff3ea853ba4d189e3e2750e72bd 100644
--- a/l10n/ca/files_trashbin.po
+++ b/l10n/ca/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/lib.po b/l10n/ca/lib.po
index 90de5d6c128562e6abe8b691a2b2de0ca2bdac91..5df27e16b8f026df12087432a3cbd4b5c7cde1c2 100644
--- a/l10n/ca/lib.po
+++ b/l10n/ca/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Torna a Fitxers"
 msgid "Selected files too large to generate zip file."
 msgstr "Els fitxers seleccionats son massa grans per generar un fitxer zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "no s'ha pogut determinar"
 
diff --git a/l10n/ca/settings.po b/l10n/ca/settings.po
index 57490ecc8a55a84378e694e266cb5473a0702e65..032f43b74c722a7e7c0823c1db3a8fea667cb0f8 100644
--- a/l10n/ca/settings.po
+++ b/l10n/ca/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ca/user_ldap.po b/l10n/ca/user_ldap.po
index 65929f8d38af2df95aa3f582a2985954fa82f8fb..cb56954f9f0d6dc3cbc77b7f489d72de663333ea 100644
--- a/l10n/ca/user_ldap.po
+++ b/l10n/ca/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: rogerc\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po
index af5ed0b87f2804d66392be8266f7fd28cbf8d261..f752fb55991c3ddaeb57511ae6683dcdbd85f762 100644
--- a/l10n/cs_CZ/core.po
+++ b/l10n/cs_CZ/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Tomáš Chvátal <tomas.chvatal@gmail.com>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "před lety"
 msgid "Choose"
 msgstr "Vybrat"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ano"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ne"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po
index 1cb30a108fed285a9af88a4ffdedf05b90dc9086..1212b63feb12a19ee24f36fdba060af89dcf3a6a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/files_encryption.po b/l10n/cs_CZ/files_encryption.po
index de78ff90aa0e2b29d04713849628bb298269703e..6c2fa91ab96e4054cee70e3f48fb9194dbe6b335 100644
--- a/l10n/cs_CZ/files_encryption.po
+++ b/l10n/cs_CZ/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: cs_CZ\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/cs_CZ/files_external.po b/l10n/cs_CZ/files_external.po
index 2e3ab73f195c24be2d51123b5c3ebf9d6ae51704..993ed7edf8e0be98b4ddaab5668921566351db8f 100644
--- a/l10n/cs_CZ/files_external.po
+++ b/l10n/cs_CZ/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/files_sharing.po b/l10n/cs_CZ/files_sharing.po
index d6db1ec9601c5d3ae93fcd6b2cab1b5a359bfa79..1f16d54c480bec97cc1ded57bbb1bdbaa1626e7a 100644
--- a/l10n/cs_CZ/files_sharing.po
+++ b/l10n/cs_CZ/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/files_trashbin.po b/l10n/cs_CZ/files_trashbin.po
index 56141ed78fa5af41db61851b8c1b53c27c172cf4..c4dd41f482cc386dcaf1f2240b3e901271729762 100644
--- a/l10n/cs_CZ/files_trashbin.po
+++ b/l10n/cs_CZ/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/lib.po b/l10n/cs_CZ/lib.po
index c97dba4f7408aba2f6f95fcc4d1ae7478ffab0b8..3a078431767d16f627828ef671b68e0d5b8f9f18 100644
--- a/l10n/cs_CZ/lib.po
+++ b/l10n/cs_CZ/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Zpět k souborům"
 msgid "Selected files too large to generate zip file."
 msgstr "Vybrané soubory jsou příliš velké pro vytvoření zip souboru."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nelze zjistit"
 
diff --git a/l10n/cs_CZ/settings.po b/l10n/cs_CZ/settings.po
index 46c22b2f144fc1eb13b9df04e8902edd22830291..d0e6d27677637a41b37d3f005eeae4a08d586cf9 100644
--- a/l10n/cs_CZ/settings.po
+++ b/l10n/cs_CZ/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po
index fb4bba756bbcc33ea1b5445478ab5f8bd9470c1f..9591f0e61112e46ada0f6acf107cb1ca80f8b4d0 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/core.po b/l10n/cy_GB/core.po
index 894c19e4b514840c448de9f75aa51a135c704a91..5c485a661506af5902d1f84f3d5476255e6f2d14 100644
--- a/l10n/cy_GB/core.po
+++ b/l10n/cy_GB/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: ubuntucymraeg <owen.llywelyn@gmail.com>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "blwyddyn yn ôl"
 msgid "Choose"
 msgstr "Dewisiwch"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Diddymu"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ie"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Na"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Iawn"
 
diff --git a/l10n/cy_GB/files.po b/l10n/cy_GB/files.po
index b5193dbb945846e77cd5e6d620a4bf3ac5bc2ca7..a04bf66d91c863f14644d43bc65148be4f59c0a2 100644
--- a/l10n/cy_GB/files.po
+++ b/l10n/cy_GB/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/files_encryption.po b/l10n/cy_GB/files_encryption.po
index 2c719f8fe87bf20d8d0dc7d237021d1c355910ad..7cd6f45cb5fa090c9dbd80692c2598d435ff91fa 100644
--- a/l10n/cy_GB/files_encryption.po
+++ b/l10n/cy_GB/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
@@ -18,12 +18,22 @@ msgstr ""
 "Language: cy_GB\n"
 "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/cy_GB/files_external.po b/l10n/cy_GB/files_external.po
index 92c610621a3d204421166ff35bdf5af36e7f420a..78d44d150464823517112c5f9774a38f512de07c 100644
--- a/l10n/cy_GB/files_external.po
+++ b/l10n/cy_GB/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/files_sharing.po b/l10n/cy_GB/files_sharing.po
index 1581594748f4ddbf912c63781769e980a3378fee..16f9054a7bf42f52950962c31ad6d4f080aaf1c0 100644
--- a/l10n/cy_GB/files_sharing.po
+++ b/l10n/cy_GB/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: ubuntucymraeg <owen.llywelyn@gmail.com>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/files_trashbin.po b/l10n/cy_GB/files_trashbin.po
index 345d7be2750771f0143a8173493d236811ac6f97..b1fbd8c2afe3c8690606789b2083a9ccfca700be 100644
--- a/l10n/cy_GB/files_trashbin.po
+++ b/l10n/cy_GB/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: ubuntucymraeg <owen.llywelyn@gmail.com>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/lib.po b/l10n/cy_GB/lib.po
index 9b19a5afe8887ef1aae00ab424da0b9ac2ab1d3c..281950fd66d3781f077e767f106716b7c07a2da5 100644
--- a/l10n/cy_GB/lib.po
+++ b/l10n/cy_GB/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: ubuntucymraeg <owen.llywelyn@gmail.com>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Nôl i Ffeiliau"
 msgid "Selected files too large to generate zip file."
 msgstr "Mae'r ffeiliau ddewiswyd yn rhy fawr i gynhyrchu ffeil zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "methwyd pennu"
 
diff --git a/l10n/cy_GB/settings.po b/l10n/cy_GB/settings.po
index e39a6b334ddb171f73d4bef1238e1d30deae09d7..785015e3e9e4443be164072a331d8cf32f7d84b0 100644
--- a/l10n/cy_GB/settings.po
+++ b/l10n/cy_GB/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/cy_GB/user_ldap.po b/l10n/cy_GB/user_ldap.po
index 1d1ffc8e6dcf84d6400ad33a35c99c43a03a3d21..99ba7c568e3e23f610337a11620a3cff32bf9ab0 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/core.po b/l10n/da/core.po
index 2a0c58ed249b799fa61add41c97a63e278307f3f..e5a78600fcdb6a898c639dddc4b4c38f5cfad5fc 100644
--- a/l10n/da/core.po
+++ b/l10n/da/core.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Peter Jespersen <flywheeldk@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 06:10+0000\n"
+"Last-Translator: Peter Jespersen <flywheeldk@gmail.com>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -216,23 +217,23 @@ msgstr "år siden"
 msgid "Choose"
 msgstr "Vælg"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Annuller"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nej"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
@@ -405,11 +406,11 @@ msgid ""
 "The link to reset your password has been sent to your email.<br>If you do "
 "not receive it within a reasonable amount of time, check your spam/junk "
 "folders.<br>If it is not there ask your local administrator ."
-msgstr ""
+msgstr "Linket til at nulstille dit kodeord er blevet sendt til din e-post. <br> Hvis du ikke modtager den inden for en rimelig tid, så tjek dine spam / junk mapper.<br> Hvis det ikke er der, så spørg din lokale administrator."
 
 #: lostpassword/templates/lostpassword.php:12
 msgid "Request failed!<br>Did you make sure your email/username was right?"
-msgstr ""
+msgstr "Anmodning mislykkedes!<br>Er du sikker på at din e-post / brugernavn var korrekt?"
 
 #: lostpassword/templates/lostpassword.php:15
 msgid "You will receive a link to reset your password via Email."
@@ -567,7 +568,7 @@ msgstr "Webtjenester under din kontrol"
 #: templates/layout.user.php:37
 #, php-format
 msgid "%s is available. Get more information on how to update."
-msgstr ""
+msgstr "%s er tilgængelig. Få mere information om, hvordan du opdaterer."
 
 #: templates/layout.user.php:62
 msgid "Log out"
diff --git a/l10n/da/files.po b/l10n/da/files.po
index c6b1a03b3e39ca2a9a40f4ccd6b54121a2ab3848..80a65611032b682437b0c68c64ab54ffca617ee4 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/files_encryption.po b/l10n/da/files_encryption.po
index 1ff6f7dcd01f82b5267f3e6ed0a10630ddfcd019..49b772ef5d44c43b58f78a129e297e0ce59aba81 100644
--- a/l10n/da/files_encryption.po
+++ b/l10n/da/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/da/files_external.po b/l10n/da/files_external.po
index d6309612c528c8e9b799a8ce86333202d3850da9..4ca39b66c4fae08cd5961c8e418d39c43240a16b 100644
--- a/l10n/da/files_external.po
+++ b/l10n/da/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/files_sharing.po b/l10n/da/files_sharing.po
index 84d6e513fc71b807c98d38a1adb420038e599425..124f03c1e50b3f249ea7610c274ff4d460e4fa30 100644
--- a/l10n/da/files_sharing.po
+++ b/l10n/da/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/files_trashbin.po b/l10n/da/files_trashbin.po
index 96a676b7935ddfc2ec4e88c4042b6183a69d5481..2fbadf71c60be9f42de14d6900e8372b0d8f7421 100644
--- a/l10n/da/files_trashbin.po
+++ b/l10n/da/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/lib.po b/l10n/da/lib.po
index 8aee06f3aeb112a779682569b6bbfa719631d055..c21fdcab0043daa635e1e034323486e96d2abb61 100644
--- a/l10n/da/lib.po
+++ b/l10n/da/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:33+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Tilbage til Filer"
 msgid "Selected files too large to generate zip file."
 msgstr "De markerede filer er for store til at generere en ZIP-fil."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "kunne ikke fastslås"
 
diff --git a/l10n/da/settings.po b/l10n/da/settings.po
index 97248fafda1abfebdf5dcdcafaafca49170d6443..7dcf4dca63eb0c83bd33e52b0bf971cd579f3f72 100644
--- a/l10n/da/settings.po
+++ b/l10n/da/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po
index 3c63c85d687b7f7ac2a3871e7fb9e9f3fc671e56..f2c20cdc87e5253008f231c6e0dc3588c0a76179 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/core.po b/l10n/de/core.po
index 473977d96cfced3afdf8ad009775dfee278056bb..2912dbd44eb054a027ab0894f29e12e2006cd9ad 100644
--- a/l10n/de/core.po
+++ b/l10n/de/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Marcel Kühlhorn <susefan93@gmx.de>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -219,23 +219,23 @@ msgstr "Vor Jahren"
 msgid "Choose"
 msgstr "Auswählen"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nein"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/de/files.po b/l10n/de/files.po
index 9ec9c9cddda332e79dc2e9d81e57d7b441829d10..8aa114e960f447842cc8f4a4cc3a8ba7d6615883 100644
--- a/l10n/de/files.po
+++ b/l10n/de/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po
index 02688dad03614df96d4fb3d65ce24338e71fa3e0..59cfb0e8e2cc0f0636ae728e32b6b42b74efcb18 100644
--- a/l10n/de/files_encryption.po
+++ b/l10n/de/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/de/files_external.po b/l10n/de/files_external.po
index d54a82e0a34be006c87532eadb3b4f150d8bb8b5..7afea52f30a13bc6f7c1c25088276baa4608efe7 100644
--- a/l10n/de/files_external.po
+++ b/l10n/de/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/files_sharing.po b/l10n/de/files_sharing.po
index dd7da07d5cbda95c3508e1292d601f01a89806fa..e3c784db44c9a2120cc33df06ca2c464e2d1e8ba 100644
--- a/l10n/de/files_sharing.po
+++ b/l10n/de/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/files_trashbin.po b/l10n/de/files_trashbin.po
index 13962c4db90d11b54fddda433b2fd14c723512c9..a2431575c2973b2580bf0cbf327959e3266c9681 100644
--- a/l10n/de/files_trashbin.po
+++ b/l10n/de/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/lib.po b/l10n/de/lib.po
index 8a422be72852488f026674916ef8a95ddbf81165..01d81cfe91fcc4e6591207b2b5c0dd2171c737bd 100644
--- a/l10n/de/lib.po
+++ b/l10n/de/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Zurück zu \"Dateien\""
 msgid "Selected files too large to generate zip file."
 msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "konnte nicht festgestellt werden"
 
diff --git a/l10n/de/settings.po b/l10n/de/settings.po
index 496bedf95292149109ee9ec721e7ef474cd2953a..20d97d2d8462d2fced897dc1e371a0d11e3e8343 100644
--- a/l10n/de/settings.po
+++ b/l10n/de/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po
index 5967c0fc6908fd1a5f01cb659d566960df4d4ee9..9b62916ffc4b4c96d773fdd9b7c5a2d663c25f2d 100644
--- a/l10n/de/user_ldap.po
+++ b/l10n/de/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: German <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po
index 419a944b233b5c7aef199b9c98905c9e3c55a30c..d1070a5d7b09726c21fd848afcb10aefa479b0bd 100644
--- a/l10n/de_DE/core.po
+++ b/l10n/de_DE/core.po
@@ -11,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: traductor <transifex-2.7.mensaje@spamgourmet.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -220,23 +220,23 @@ msgstr "Vor Jahren"
 msgid "Choose"
 msgstr "Auswählen"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Es ist ein Fehler in der Vorlage des Datei-Auswählers aufgetreten."
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nein"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po
index 15ebece2d0e07f27e71a32d5b4a1eaeb69247d39..2dd5d0dd85239f9e8aeadf7de064a8095f6e59f8 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: a.tangemann <a.tangemann@web.de>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/files_encryption.po b/l10n/de_DE/files_encryption.po
index 5e078c6abfd9950f5acfde90b1502b3d6867c9a1..c01a4a7f13ada33bb756e92db8f18df0068fcd31 100644
--- a/l10n/de_DE/files_encryption.po
+++ b/l10n/de_DE/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 17:40+0000\n"
+"POT-Creation-Date: 2013-06-01 01:58+0200\n"
+"PO-Revision-Date: 2013-05-31 22:00+0000\n"
 "Last-Translator: traductor <transifex-2.7.mensaje@spamgourmet.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: de_DE\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr ""
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert."
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr ""
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert."
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
@@ -49,7 +59,7 @@ msgstr ""
 
 #: templates/settings-admin.php:13
 msgid "Recovery account password"
-msgstr ""
+msgstr "Account-Passwort wiederherstellen"
 
 #: templates/settings-admin.php:20 templates/settings-personal.php:18
 msgid "Enabled"
@@ -65,11 +75,11 @@ msgstr ""
 
 #: templates/settings-admin.php:39
 msgid "Old Recovery account password"
-msgstr ""
+msgstr "Altes Passwort für die Account-Wiederherstellung"
 
 #: templates/settings-admin.php:46
 msgid "New Recovery account password"
-msgstr ""
+msgstr "Neues Passwort für die Account-Wiederherstellung"
 
 #: templates/settings-admin.php:51
 msgid "Change Password"
@@ -83,12 +93,12 @@ msgstr ""
 msgid ""
 "Enabling this option will allow you to reobtain access to your encrypted "
 "files if your password is lost"
-msgstr ""
+msgstr "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben."
 
 #: templates/settings-personal.php:27
 msgid "File recovery settings updated"
-msgstr ""
+msgstr "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert."
 
 #: templates/settings-personal.php:28
 msgid "Could not update file recovery"
-msgstr ""
+msgstr "Die Dateiwiederherstellung konnte nicht aktualisiert werden."
diff --git a/l10n/de_DE/files_external.po b/l10n/de_DE/files_external.po
index fd2ae6bdfe4b4a073243153990033c9379fdadeb..61ef1e033dcf6ccfc246e455c295bed283b0bbf5 100644
--- a/l10n/de_DE/files_external.po
+++ b/l10n/de_DE/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/files_sharing.po b/l10n/de_DE/files_sharing.po
index 48dc041d983d5cee85f68f01dacdbb1fdfee5da4..ddeb20030d3a1b1fb160afcfe584f9b92d1e247d 100644
--- a/l10n/de_DE/files_sharing.po
+++ b/l10n/de_DE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/files_trashbin.po b/l10n/de_DE/files_trashbin.po
index ea74629a55116048568b99f31b37cd438e129693..ed2b66d7e9e634f68d8c19be2a417d0dea1de33e 100644
--- a/l10n/de_DE/files_trashbin.po
+++ b/l10n/de_DE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/lib.po b/l10n/de_DE/lib.po
index f331e041236464bc195ae4e561f95c5b4c069850..4e9c15c188e47a074ce49cf7d2bb0cd97272e779 100644
--- a/l10n/de_DE/lib.po
+++ b/l10n/de_DE/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: traductor <transifex-2.7.mensaje@spamgourmet.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Zurück zu \"Dateien\""
 msgid "Selected files too large to generate zip file."
 msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "konnte nicht ermittelt werden"
 
diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po
index f0c44ce87d59763d10e33205a6a9f2b08c099b35..bdca0febe3a23cd568af93b7badb4c1aab3eaef3 100644
--- a/l10n/de_DE/settings.po
+++ b/l10n/de_DE/settings.po
@@ -11,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: traductor <transifex-2.7.mensaje@spamgourmet.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po
index 357138b3c78e5222ee9dd7710cbb8e3aee1c805f..39f12159ddde17493d79f96d54195b22b5471a99 100644
--- a/l10n/de_DE/user_ldap.po
+++ b/l10n/de_DE/user_ldap.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: traductor <transifex-2.7.mensaje@spamgourmet.com>\n"
 "Language-Team: German (Germany) <translations@owncloud.org>\n"
 "MIME-Version: 1.0\n"
@@ -369,7 +369,7 @@ msgstr ""
 
 #: templates/settings.php:104
 msgid "Override UUID detection"
-msgstr ""
+msgstr "UUID-Erkennung überschreiben"
 
 #: templates/settings.php:105
 msgid ""
@@ -384,7 +384,7 @@ msgstr ""
 
 #: templates/settings.php:106
 msgid "UUID Attribute:"
-msgstr ""
+msgstr "UUID-Attribut:"
 
 #: templates/settings.php:107
 msgid "Username-LDAP User Mapping"
diff --git a/l10n/el/core.po b/l10n/el/core.po
index ee0fc6ee81892243238ade4d8aeec3de5b5bc7ab..6b4cbdb4814350f128c72ab81329b5e5f5b181a0 100644
--- a/l10n/el/core.po
+++ b/l10n/el/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "χρόνια πριν"
 msgid "Choose"
 msgstr "Επιλέξτε"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Άκυρο"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ναι"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Όχι"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Οκ"
 
diff --git a/l10n/el/files.po b/l10n/el/files.po
index 8912d15faa54e4a21e6b0ef661b52e3923822823..7ab2df8363019703d7c4e1a8d51ffa3c50f5b9f1 100644
--- a/l10n/el/files.po
+++ b/l10n/el/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/el/files_encryption.po b/l10n/el/files_encryption.po
index c870e7df4ae9f39f3699a8ddfcaa276cac792c5b..d5c014762f255de183c42ea7be5c4b07df75eff8 100644
--- a/l10n/el/files_encryption.po
+++ b/l10n/el/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: el\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/el/files_external.po b/l10n/el/files_external.po
index 3694cf036cdf4d61adf793afda04565bb1b82b90..fc7d4ed7cce144318b42b8e44a59a8186402454c 100644
--- a/l10n/el/files_external.po
+++ b/l10n/el/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: KAT.RAT12 <spanish.katerina@gmail.com>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/el/files_sharing.po b/l10n/el/files_sharing.po
index f5ef7a466c5927de4dd69a9870a9a8e9a4f2d845..03675fb211413a572b359f0172d4e87f62695d99 100644
--- a/l10n/el/files_sharing.po
+++ b/l10n/el/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/el/files_trashbin.po b/l10n/el/files_trashbin.po
index c7f663154727ed3b7f50188361e0a64871b3a88b..cfdf141df089493bb00fcdcd7d2411af65bfbda7 100644
--- a/l10n/el/files_trashbin.po
+++ b/l10n/el/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/el/lib.po b/l10n/el/lib.po
index 5bfbe285cdf4a3aa54d890492281e4d86da51aa4..b47527a018a7b9a6708c1dc106d8b313481b6ffb 100644
--- a/l10n/el/lib.po
+++ b/l10n/el/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:33+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Πίσω στα Αρχεία"
 msgid "Selected files too large to generate zip file."
 msgstr "Τα επιλεγμένα αρχεία είναι μεγάλα ώστε να δημιουργηθεί αρχείο zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "δεν μπορούσε να προσδιορισθεί"
 
diff --git a/l10n/el/settings.po b/l10n/el/settings.po
index c51f83a491d0fc2c1e0bb145de4d1b9f54f6f879..82c5279ebae341266cf9457d5bf839866118ddb6 100644
--- a/l10n/el/settings.po
+++ b/l10n/el/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po
index cccfd882efc3fac8e26ed434602577a086d5be4d..fe6c6a8f1c710462ad04068a229ee77babee72a6 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/en@pirate/files.po b/l10n/en@pirate/files.po
index 9032c0036b9cb2c62a0d69f5b10ccbc51a5a41fc..1a2619c71ec223d3f3c1eead9e84033469ad2441 100644
--- a/l10n/en@pirate/files.po
+++ b/l10n/en@pirate/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/en@pirate/files_encryption.po b/l10n/en@pirate/files_encryption.po
index e436edc61e19bc5d92147fb7bce3a42258b898a4..f27a3729d619264ef721582422ea391daa116379 100644
--- a/l10n/en@pirate/files_encryption.po
+++ b/l10n/en@pirate/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: en@pirate\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/en@pirate/files_sharing.po b/l10n/en@pirate/files_sharing.po
index 8595aad966f426f7c95c5aa67c0963a0d121e33a..f3c697a2c9893845af1ecde83f82c7df7f5f208e 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: lhpalacio <luizhenrique_gomespalacio@hotmail.com>\n"
 "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/core.po b/l10n/eo/core.po
index 6ff6a2d5b1967cbe5b952f83c4aedf2586a1a81b..397f0b429db5685c7e2e3066fb195d1ac5b59dff 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "jaroj antaŭe"
 msgid "Choose"
 msgstr "Elekti"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Nuligi"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Jes"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ne"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Akcepti"
 
diff --git a/l10n/eo/files.po b/l10n/eo/files.po
index f18754ba5e8e5224a5aadfd8f6e3d9bdc60cc697..2928a0b2ceaf56af1ad15787b0930aa47c2e5703 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/files_encryption.po b/l10n/eo/files_encryption.po
index 5cbb16e526fa2f73c641b671602a7c64fa8f5444..907d1a9902edac5dad55f1898c48093106c738e5 100644
--- a/l10n/eo/files_encryption.po
+++ b/l10n/eo/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: eo\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/eo/files_external.po b/l10n/eo/files_external.po
index bbd550309456bbdcd30a591902281b3fbeff580f..5191563428e3f795f459aeaffb26b53df0b570e9 100644
--- a/l10n/eo/files_external.po
+++ b/l10n/eo/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/files_sharing.po b/l10n/eo/files_sharing.po
index e7d437ca5966104e0ce77f4894614ff1495e1a93..2b7afc9e2cf19c2f1a8adf790d7ef512dcf903ae 100644
--- a/l10n/eo/files_sharing.po
+++ b/l10n/eo/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/files_trashbin.po b/l10n/eo/files_trashbin.po
index 1bfc5febee771f48b6f017acad1b95a394a5721a..67bafc70add172e71d187146801c0cb74dcb4d17 100644
--- a/l10n/eo/files_trashbin.po
+++ b/l10n/eo/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/lib.po b/l10n/eo/lib.po
index 47e9c75a08e6ccbca8114d7de168366f5a748b99..97d492851cf21027824c943d7be38bde35b8081f 100644
--- a/l10n/eo/lib.po
+++ b/l10n/eo/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Reen al la dosieroj"
 msgid "Selected files too large to generate zip file."
 msgstr "La elektitaj dosieroj tro grandas por genero de ZIP-dosiero."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/eo/settings.po b/l10n/eo/settings.po
index 030191db83dce56d5351e5d2cce089a2d857cf54..8ef84796bb463d1ba805661aa69a5a31a80228c2 100644
--- a/l10n/eo/settings.po
+++ b/l10n/eo/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po
index e101d9b025a5c0a92d6f50fd6d549a99d4abae72..423b1e96e445765db65391d6de9ed7c8e3dd917a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es/core.po b/l10n/es/core.po
index c184987870122dae9379db67ff2d827ca404f50d..4cbaefc3500976ae134b788998e3fc98b47a64a3 100644
--- a/l10n/es/core.po
+++ b/l10n/es/core.po
@@ -11,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: xhiena <xhiena@gmail.com>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
@@ -220,23 +220,23 @@ msgstr "hace años"
 msgid "Choose"
 msgstr "Seleccionar"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Error cargando la plantilla del seleccionador de archivos"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sí"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "No"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Aceptar"
 
diff --git a/l10n/es/files.po b/l10n/es/files.po
index e471a135aace8fcf3c9916ed519751753dc812e8..686eeea90fb26adfd41190a9025ddb81e5404a64 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Art O. Pal <artopal@fastmail.fm>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es/files_encryption.po b/l10n/es/files_encryption.po
index dbacc267fa5d04ff25b87ea4a4f0d4dd72e7f2cb..21f59f5c76089d4638b236ff56d9215849a1da20 100644
--- a/l10n/es/files_encryption.po
+++ b/l10n/es/files_encryption.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# gmoriello <gmoriello@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-02 02:00+0200\n"
+"PO-Revision-Date: 2013-06-01 23:40+0000\n"
+"Last-Translator: gmoriello <gmoriello@gmail.com>\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"
@@ -17,21 +18,31 @@ msgstr ""
 "Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr ""
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Se ha habilitado la recuperación de archivos"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr ""
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña."
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Clave de recuperación deshabilitada"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
-msgstr ""
+msgstr "Su contraseña ha sido cambiada"
 
 #: ajax/changeRecoveryPassword.php:51
 msgid "Could not change the password. Maybe the old password was not correct."
-msgstr ""
+msgstr "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta."
 
 #: js/settings-admin.js:11
 msgid "Saving..."
@@ -44,50 +55,50 @@ msgstr "Cifrado"
 #: templates/settings-admin.php:9
 msgid ""
 "Enable encryption passwords recovery key (allow sharing to recovery key):"
-msgstr ""
+msgstr "Habilitar clave de recuperación de contraseñas ():"
 
 #: templates/settings-admin.php:13
 msgid "Recovery account password"
-msgstr ""
+msgstr "Recuperar contraseña"
 
 #: templates/settings-admin.php:20 templates/settings-personal.php:18
 msgid "Enabled"
-msgstr ""
+msgstr "Habilitar"
 
 #: templates/settings-admin.php:28 templates/settings-personal.php:26
 msgid "Disabled"
-msgstr ""
+msgstr "Deshabilitado"
 
 #: templates/settings-admin.php:32
 msgid "Change encryption passwords recovery key:"
-msgstr ""
+msgstr "Cambiar clave de cifrado de contraseñas:"
 
 #: templates/settings-admin.php:39
 msgid "Old Recovery account password"
-msgstr ""
+msgstr "Contraseña de recuperación actual"
 
 #: templates/settings-admin.php:46
 msgid "New Recovery account password"
-msgstr ""
+msgstr "Contraseña de recuperación nueva"
 
 #: templates/settings-admin.php:51
 msgid "Change Password"
-msgstr ""
+msgstr "Cambiar contraseña"
 
 #: templates/settings-personal.php:9
 msgid "Enable password recovery by sharing all files with your administrator:"
-msgstr ""
+msgstr "Habilitar recuperación de contraseña compartiendo todos los archivos con su administrador"
 
 #: templates/settings-personal.php:11
 msgid ""
 "Enabling this option will allow you to reobtain access to your encrypted "
 "files if your password is lost"
-msgstr ""
+msgstr "Habilitar esta opción para poder acceder a sus archivos cifrados si pierde su contraseña"
 
 #: templates/settings-personal.php:27
 msgid "File recovery settings updated"
-msgstr ""
+msgstr "Opciones de recuperación de archivos actualizada"
 
 #: templates/settings-personal.php:28
 msgid "Could not update file recovery"
-msgstr ""
+msgstr "No se pudo actualizar la recuperación de archivos"
diff --git a/l10n/es/files_external.po b/l10n/es/files_external.po
index 279bc43f875b5f70e41d2ed10c684dd68bbbd9fe..648f74a81164d41ef628303a6cc748fa41343b74 100644
--- a/l10n/es/files_external.po
+++ b/l10n/es/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es/files_sharing.po b/l10n/es/files_sharing.po
index ddf013d3a2342f46c635ac576fb6f77a8e46717f..ee9aef9a9502ad145d5614f030655de17a6f35cd 100644
--- a/l10n/es/files_sharing.po
+++ b/l10n/es/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es/files_trashbin.po b/l10n/es/files_trashbin.po
index 8b99921d0571da5591fff1f448f533ee2f73fd2d..4d786a12214c155e942adf96d65af5ae55ee628c 100644
--- a/l10n/es/files_trashbin.po
+++ b/l10n/es/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es/lib.po b/l10n/es/lib.po
index 628e2622c2793c6ef551a71cb3fd6c0d4c302df5..ce97db94929ac48f6a35f14911eb693b148d333f 100644
--- a/l10n/es/lib.po
+++ b/l10n/es/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: xhiena <xhiena@gmail.com>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Volver a Archivos"
 msgid "Selected files too large to generate zip file."
 msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "no pudo ser determinado"
 
diff --git a/l10n/es/settings.po b/l10n/es/settings.po
index 1d5177eb2873039c305adb3e14205fb300529e01..353d8839be50ad92c627b87fa3d434e5357a0eb7 100644
--- a/l10n/es/settings.po
+++ b/l10n/es/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Art O. Pal <artopal@fastmail.fm>\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 1eadef18230177d9dacf95878cb29be2b1adfc24..5842c6f8db8bc729d2af2f9fad2874244f88d7da 100644
--- a/l10n/es/user_ldap.po
+++ b/l10n/es/user_ldap.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: xhiena <xhiena@gmail.com>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po
index 8f2c28f0ce507cfefe343d01a235bce37fc61cbf..d277c3e3a8cd3c53c1b03a4bbbca1f4934c8bb9a 100644
--- a/l10n/es_AR/core.po
+++ b/l10n/es_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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "años atrás"
 msgid "Choose"
 msgstr "Elegir"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sí"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "No"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Aceptar"
 
diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po
index 2ae531b14c701752ffec2518e3514ecf5ef1d37d..dd55de5889c9c291e55f077c1871e58927b8d649 100644
--- a/l10n/es_AR/files.po
+++ b/l10n/es_AR/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Agustin Ferrario <agustin.ferrario@hotmail.com.ar>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/files_encryption.po b/l10n/es_AR/files_encryption.po
index bb14738da2b8422b3aadbe8e3e571ad4660e7f6c..0fd32631ce919c5d3c548ee97235a9dbd4c5d738 100644
--- a/l10n/es_AR/files_encryption.po
+++ b/l10n/es_AR/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: es_AR\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/es_AR/files_external.po b/l10n/es_AR/files_external.po
index 81a1a86110adb1836fd68c155ed0d9a86f7436b8..10c00b1fd936715bbc08cbe9f8466793616e83ad 100644
--- a/l10n/es_AR/files_external.po
+++ b/l10n/es_AR/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/files_sharing.po b/l10n/es_AR/files_sharing.po
index c7aec0cf855d97fe16502de9edacaeab972cf7a6..e1fb66bf96dacc6ee2d8a35668a54d890c75b659 100644
--- a/l10n/es_AR/files_sharing.po
+++ b/l10n/es_AR/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/files_trashbin.po b/l10n/es_AR/files_trashbin.po
index aac0abda8715cd0a8df0966b9f24c18c26362559..0be5f1364f52c73d2f4730cd00d51933579580a4 100644
--- a/l10n/es_AR/files_trashbin.po
+++ b/l10n/es_AR/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/lib.po b/l10n/es_AR/lib.po
index 372487303b3e165256ea9eb67a6a7344b04ddd40..901682d858ed3072df16cbeef9375e454e0e4668 100644
--- a/l10n/es_AR/lib.po
+++ b/l10n/es_AR/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Volver a archivos"
 msgid "Selected files too large to generate zip file."
 msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "no pudo ser determinado"
 
diff --git a/l10n/es_AR/settings.po b/l10n/es_AR/settings.po
index 653a20f74fd6b726b05e4dbd34e41f0307e5bd2b..61bfae4d5fd2221b96046affbbb1bab33d111444 100644
--- a/l10n/es_AR/settings.po
+++ b/l10n/es_AR/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/es_AR/user_ldap.po b/l10n/es_AR/user_ldap.po
index 18e24b24c32559ae0ce508ad411bb7a572216228..3155fed37457ac6edcedaa21e5bd144eb97d5518 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/et_EE/core.po b/l10n/et_EE/core.po
index 7402521dd34616afc452467fd09aed83bd6cc198..2394ba43d66744ad28bffb08a850807b65c6fa2a 100644
--- a/l10n/et_EE/core.po
+++ b/l10n/et_EE/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "aastat tagasi"
 msgid "Choose"
 msgstr "Vali"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Loobu"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Viga failivalija malli laadimisel"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Jah"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ei"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po
index eb0b8af98af50b54404eb03791489334800fee83..50518ecb5a765d24e242bf509f9fb2d3415ac9df 100644
--- a/l10n/et_EE/files.po
+++ b/l10n/et_EE/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/et_EE/files_encryption.po b/l10n/et_EE/files_encryption.po
index 057e86200c96af364cee22290a3b1fc1199590d1..2bcdd23d94336006fee3f5e578d7221873f695eb 100644
--- a/l10n/et_EE/files_encryption.po
+++ b/l10n/et_EE/files_encryption.po
@@ -3,14 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# pisike.sipelgas <pisike.sipelgas@gmail.com>, 2013
 # Rivo Zängov <eraser@eraser.ee>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 05:40+0000\n"
-"Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
+"POT-Creation-Date: 2013-05-31 01:58+0200\n"
+"PO-Revision-Date: 2013-05-30 08:30+0000\n"
+"Last-Translator: pisike.sipelgas <pisike.sipelgas@gmail.com>\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,21 +19,31 @@ msgstr ""
 "Language: et_EE\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr ""
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Taastevõtme lubamine õnnestus"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr ""
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Taastevõtme keelamine õnnestus"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
-msgstr ""
+msgstr "Parool edukalt vahetatud."
 
 #: ajax/changeRecoveryPassword.php:51
 msgid "Could not change the password. Maybe the old password was not correct."
-msgstr ""
+msgstr "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud."
 
 #: js/settings-admin.js:11
 msgid "Saving..."
@@ -45,11 +56,11 @@ msgstr "Krüpteerimine"
 #: templates/settings-admin.php:9
 msgid ""
 "Enable encryption passwords recovery key (allow sharing to recovery key):"
-msgstr ""
+msgstr "Luba krüpteerimise paroolide taastevõti (võimalda parooli jagamine taastevõtmesse):"
 
 #: templates/settings-admin.php:13
 msgid "Recovery account password"
-msgstr ""
+msgstr "Konto taasteparool"
 
 #: templates/settings-admin.php:20 templates/settings-personal.php:18
 msgid "Enabled"
@@ -61,15 +72,15 @@ msgstr "Väljalülitatud"
 
 #: templates/settings-admin.php:32
 msgid "Change encryption passwords recovery key:"
-msgstr ""
+msgstr "Muuda taaste võtme krüpteerimise paroole:"
 
 #: templates/settings-admin.php:39
 msgid "Old Recovery account password"
-msgstr ""
+msgstr "Konto vana taaste parool"
 
 #: templates/settings-admin.php:46
 msgid "New Recovery account password"
-msgstr ""
+msgstr "Konto uus taasteparool"
 
 #: templates/settings-admin.php:51
 msgid "Change Password"
@@ -77,18 +88,18 @@ msgstr "Muuda parooli"
 
 #: templates/settings-personal.php:9
 msgid "Enable password recovery by sharing all files with your administrator:"
-msgstr ""
+msgstr "Luba parooli taaste jagades kõik failid administraatoriga:"
 
 #: templates/settings-personal.php:11
 msgid ""
 "Enabling this option will allow you to reobtain access to your encrypted "
 "files if your password is lost"
-msgstr ""
+msgstr "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parool on kadunud"
 
 #: templates/settings-personal.php:27
 msgid "File recovery settings updated"
-msgstr ""
+msgstr "Faili taaste seaded uuendatud"
 
 #: templates/settings-personal.php:28
 msgid "Could not update file recovery"
-msgstr ""
+msgstr "Ei suuda uuendada taastefaili"
diff --git a/l10n/et_EE/files_external.po b/l10n/et_EE/files_external.po
index fa110d060b1e763999d1b99eb2ab27947f2f938e..0cf16cec04e745e51bb272e6c796b3159aa6e53b 100644
--- a/l10n/et_EE/files_external.po
+++ b/l10n/et_EE/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/et_EE/files_sharing.po b/l10n/et_EE/files_sharing.po
index 46d9b7742b06378d93eeac818e0500d4abb3110f..f1913930b3a322affba61f97c3ca76875bb925f4 100644
--- a/l10n/et_EE/files_sharing.po
+++ b/l10n/et_EE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/et_EE/files_trashbin.po b/l10n/et_EE/files_trashbin.po
index 55695c4ecb04bafb22a00f0836dcc623dada653f..9341e71a33f77a4428d56d1efd3f12793d72c66b 100644
--- a/l10n/et_EE/files_trashbin.po
+++ b/l10n/et_EE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Rivo Zängov <eraser@eraser.ee>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/et_EE/lib.po b/l10n/et_EE/lib.po
index b28c33938f864b6b309757beb3efdb5aeb12a09b..fa2c3de3fcf01090bc6d1f88d26d20bdfcd8a82b 100644
--- a/l10n/et_EE/lib.po
+++ b/l10n/et_EE/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:33+0000\n"
 "Last-Translator: pisike.sipelgas <pisike.sipelgas@gmail.com>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
@@ -59,7 +59,7 @@ msgstr "Tagasi failide juurde"
 msgid "Selected files too large to generate zip file."
 msgstr "Valitud failid on ZIP-faili loomiseks liiga suured."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ei suudetud tuvastada"
 
diff --git a/l10n/et_EE/settings.po b/l10n/et_EE/settings.po
index 0b556a346678b6431d31d7aea31bd2141472d8b1..aa4192988acf9aba648fae8c6daa72a6bfb87e06 100644
--- a/l10n/et_EE/settings.po
+++ b/l10n/et_EE/settings.po
@@ -3,14 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# pisike.sipelgas <pisike.sipelgas@gmail.com>, 2013
 # Rivo Zängov <eraser@eraser.ee>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
+"Last-Translator: pisike.sipelgas <pisike.sipelgas@gmail.com>\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"
@@ -466,7 +467,7 @@ msgstr "Lisa"
 
 #: templates/users.php:34
 msgid "Admin Recovery Password"
-msgstr ""
+msgstr "Admin taasteparool"
 
 #: templates/users.php:38
 msgid "Default Storage"
diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po
index 3b8fd989d9a11d42c9affc04323c26d144a41a76..aaf1de90aefeceb307a83621ad391dee080c0a27 100644
--- a/l10n/et_EE/user_ldap.po
+++ b/l10n/et_EE/user_ldap.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: pisike.sipelgas <pisike.sipelgas@gmail.com>\n"
 "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/core.po b/l10n/eu/core.po
index 7259f2f29518bbf93924ef4a0efc42b1b898fdd9..865871de00ff878fc176540b734fff7c2a7b59d7 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "urte"
 msgid "Choose"
 msgstr "Aukeratu"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Ezeztatu"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Bai"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ez"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ados"
 
diff --git a/l10n/eu/files.po b/l10n/eu/files.po
index 217d4f98e44dcdbff7674334c56c809add50fa62..78cba47346eca827e8f59c81cf8d45a9e7a7cfac 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/files_encryption.po b/l10n/eu/files_encryption.po
index 5fa61f344bc257dd9f52ca76a3cc00679fff8c46..1e367b1e9c5d1643b5d205df606663232a557537 100644
--- a/l10n/eu/files_encryption.po
+++ b/l10n/eu/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: eu\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/eu/files_external.po b/l10n/eu/files_external.po
index 8a3b8aeb79215951ccb4165de123a1da9b110609..11b9c655de8ffe7f6d9ab8d1f7fcd119001769cf 100644
--- a/l10n/eu/files_external.po
+++ b/l10n/eu/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/files_sharing.po b/l10n/eu/files_sharing.po
index 3825305bb4b03fd625193a51d6ea9f84fdbc0894..5b5bb58738425ce1c2a505ec9b48876ebb801bba 100644
--- a/l10n/eu/files_sharing.po
+++ b/l10n/eu/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/files_trashbin.po b/l10n/eu/files_trashbin.po
index c3a051d9a84d717bc19e6f699710a1d451f42092..649a2d0cfb395b355f5a615bb1f0f75cbf284991 100644
--- a/l10n/eu/files_trashbin.po
+++ b/l10n/eu/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/lib.po b/l10n/eu/lib.po
index e05b82a116f46a7ebbaf80004289fa27cec50940..0f237545725b742868705096731f9fa20cf4a4b7 100644
--- a/l10n/eu/lib.po
+++ b/l10n/eu/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Itzuli fitxategietara"
 msgid "Selected files too large to generate zip file."
 msgstr "Hautatuko fitxategiak oso handiak dira zip fitxategia sortzeko."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ezin izan da zehaztu"
 
diff --git a/l10n/eu/settings.po b/l10n/eu/settings.po
index e0ec8318e858574da48831f59121098d258f2a06..c46f05695ce743c03ceec67ca3ccd65262f00a9a 100644
--- a/l10n/eu/settings.po
+++ b/l10n/eu/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/eu/user_ldap.po b/l10n/eu/user_ldap.po
index a711ad1b5a918bf2bcb8f7745ae4ca44f102d0c7..0c4381c59a7a4c58c8568e11b752b24e71410ba8 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/core.po b/l10n/fa/core.po
index 21384d72f2dffa061fc4cd63c974c3576f72aeae..be2a16bba06daf46e0f0f905a3cc55d17edc9b9a 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "سال‌های قبل"
 msgid "Choose"
 msgstr "انتخاب کردن"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "منصرف شدن"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "بله"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "نه"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "قبول"
 
diff --git a/l10n/fa/files.po b/l10n/fa/files.po
index 253de08bf4da2a14e1d3b8c91eecde3f6e04a507..6ef2b14e0ad9db986c094a056b2671e55c66ca8b 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/files_encryption.po b/l10n/fa/files_encryption.po
index b1c8cd05af4874df0f21b6f8cd1bd3cdf7464b8b..67d35105e3b406fc3a513458e3cec20e51bc3853 100644
--- a/l10n/fa/files_encryption.po
+++ b/l10n/fa/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: fa\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/fa/files_external.po b/l10n/fa/files_external.po
index 5bbc3007189c04ac76e947f577bb84020141766a..6b9d66b9379c4632ef41ba54e7140ad8096472b3 100644
--- a/l10n/fa/files_external.po
+++ b/l10n/fa/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/files_sharing.po b/l10n/fa/files_sharing.po
index e605c84ebd03298c9e5d6e21524dfae028dcf2f2..ee80c80cffc67d0579439b68b5d957eb2df9d24a 100644
--- a/l10n/fa/files_sharing.po
+++ b/l10n/fa/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/files_trashbin.po b/l10n/fa/files_trashbin.po
index 82666a11d25f44dbe59d7f3887e716679ecae196..5160bbb6762b9b6329519062fa25b6fe781bb0f4 100644
--- a/l10n/fa/files_trashbin.po
+++ b/l10n/fa/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/lib.po b/l10n/fa/lib.po
index f36f17a8093a2629fc0d565693a2132979a791dd..138a9f5b4c7e3789968d77322e1f73a5e777b0d4 100644
--- a/l10n/fa/lib.po
+++ b/l10n/fa/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "بازگشت به فایل ها"
 msgid "Selected files too large to generate zip file."
 msgstr "فایل های انتخاب شده بزرگتر از آن هستند که بتوان یک فایل فشرده تولید کرد"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/fa/settings.po b/l10n/fa/settings.po
index e2abddb80a536bc64c706b0104fa7d41e2edef87..1d1284b04ef0719c5b4bac9023a71e1785e2f4e2 100644
--- a/l10n/fa/settings.po
+++ b/l10n/fa/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fa/user_ldap.po b/l10n/fa/user_ldap.po
index 0c8285aa0664393deb635b671d557b66a2d7a4c0..1c94dc4aea40c3fb3d161dcbb9d1d1b26c37ceca 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi/core.po b/l10n/fi/core.po
index 67ee1bc3df30c8a5ac37e3697f5d8419e3539793..3c7faf864aea71f98882fb171f3e87a7abd756b3 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/fi/files.po b/l10n/fi/files.po
index c4db416dec133a5453aeffde0751c5ee0758420f..127a50cbd0de582f49ff37a8152f7c6e17fb2ab3 100644
--- a/l10n/fi/files.po
+++ b/l10n/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi/files_encryption.po b/l10n/fi/files_encryption.po
index a650f8bc90a5d98ddd5db4322c0e2ab9f84f01c7..93c8ed46e2f2f38efa36a73a84197f91e49c2098 100644
--- a/l10n/fi/files_encryption.po
+++ b/l10n/fi/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/fi/lib.po b/l10n/fi/lib.po
index 1c0ffb1d722b3a6372c573845ca2dd4d52706b6a..6563cd823d7b701afe2a80f59f02632e6e335926 100644
--- a/l10n/fi/lib.po
+++ b/l10n/fi/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po
index 3f93de4976db32fb5fa922adbbb0556825008d88..8f9f3c5761deafd9f69d5266d0fc6543ca17c64e 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "vuotta sitten"
 msgid "Choose"
 msgstr "Valitse"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Peru"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Kyllä"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ei"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po
index df38061c55c3c2b7ce02c5742fc0d921ef1f9ee4..c797fa053dce19cf1f96fed5f4ac6dfcb603604c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi_FI/files_encryption.po b/l10n/fi_FI/files_encryption.po
index 033ce76b54307e3bffa857354daa737b5ce04d3c..df1e78980c08532cdbdbdbd452f1120956a980b5 100644
--- a/l10n/fi_FI/files_encryption.po
+++ b/l10n/fi_FI/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 09:10+0000\n"
-"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
+"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,12 +18,22 @@ msgstr ""
 "Language: fi_FI\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/fi_FI/files_external.po b/l10n/fi_FI/files_external.po
index c2016461a324e631820933841870db77d2ffd908..799f6ad90bd291fd12456f25ee0eaf0668df7a37 100644
--- a/l10n/fi_FI/files_external.po
+++ b/l10n/fi_FI/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi_FI/files_sharing.po b/l10n/fi_FI/files_sharing.po
index cf97aa3564599722cc8ec4025b8251a85d9f8c98..5e32d3b535dd16912c9197a8dbf738b7a8f55335 100644
--- a/l10n/fi_FI/files_sharing.po
+++ b/l10n/fi_FI/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi_FI/files_trashbin.po b/l10n/fi_FI/files_trashbin.po
index 6a9011c6088b59a574b526a66b041da48ec968c8..67e93e12bacf662aa856c554fd4f419b8cd8fcc8 100644
--- a/l10n/fi_FI/files_trashbin.po
+++ b/l10n/fi_FI/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi_FI/lib.po b/l10n/fi_FI/lib.po
index c5514295e33354c5503e0957658b99ec88fa6e22..d20992d2c84f7ed0fade621132cf6be51adced7b 100644
--- a/l10n/fi_FI/lib.po
+++ b/l10n/fi_FI/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Takaisin tiedostoihin"
 msgid "Selected files too large to generate zip file."
 msgstr "Valitut tiedostot ovat liian suurikokoisia mahtuakseen zip-tiedostoon."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ei voitu määrittää"
 
diff --git a/l10n/fi_FI/settings.po b/l10n/fi_FI/settings.po
index a897daac6eb26052872d7150f5c397fb8b8b3827..ae577b6479ba285afdcfb5da29ced0dd31fdd50b 100644
--- a/l10n/fi_FI/settings.po
+++ b/l10n/fi_FI/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fi_FI/user_ldap.po b/l10n/fi_FI/user_ldap.po
index 2dde19a26265bb95eda8e2d187452473a9d8c9f8..8dc1297ab7f53f78fb7c5995eb0d160440ce387c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fr/core.po b/l10n/fr/core.po
index 312bab71e7d291608b247744c15c5e8970fc422c..a17aa5fff0f985fa5151e57f331064f607737dfd 100644
--- a/l10n/fr/core.po
+++ b/l10n/fr/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: msoko <sokolovitch@yahoo.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "il y a plusieurs années"
 msgid "Choose"
 msgstr "Choisir"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Annuler"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Oui"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Non"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/fr/files.po b/l10n/fr/files.po
index 8e25bfb42af9457949a33bf9e8a413f4e73834f7..a092018dce0c56c8b77210f6d907cc01daf7190d 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fr/files_encryption.po b/l10n/fr/files_encryption.po
index a9f000c4faa630bb33899fd64cfc836aa5793bc1..e5b30416823b4b8a50baf16b8c105df5673178d4 100644
--- a/l10n/fr/files_encryption.po
+++ b/l10n/fr/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/fr/files_external.po b/l10n/fr/files_external.po
index 2949ec4134879cbc4a072354c997aedeff1b8de1..b7dc04db5642341b9a0a4dd729bc22e49d8ad254 100644
--- a/l10n/fr/files_external.po
+++ b/l10n/fr/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fr/files_sharing.po b/l10n/fr/files_sharing.po
index 14337d74e28ff5c1535cfc810c29c36b269aa871..f8171e53ba13b02458886a6fd0e8b6a17a43690f 100644
--- a/l10n/fr/files_sharing.po
+++ b/l10n/fr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fr/files_trashbin.po b/l10n/fr/files_trashbin.po
index f393bdff5b7269337539dbfaacb35f13717ee1b9..cf2e6250af81d82315eefa08c541950ef0d030e7 100644
--- a/l10n/fr/files_trashbin.po
+++ b/l10n/fr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/fr/lib.po b/l10n/fr/lib.po
index 97442d16e4cda2d650af4c536ab9a8ff523fd82e..3deb170aadc53deadf22f206db23bb2930120bda 100644
--- a/l10n/fr/lib.po
+++ b/l10n/fr/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Cyril Glapa <kyriog@gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Retour aux Fichiers"
 msgid "Selected files too large to generate zip file."
 msgstr "Les fichiers sélectionnés sont trop volumineux pour être compressés."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "impossible à déterminer"
 
diff --git a/l10n/fr/settings.po b/l10n/fr/settings.po
index 80a526dd347171dfb9e82aff8b32e2130a302e83..809d6777e2996037e7984512743240c1ad012988 100644
--- a/l10n/fr/settings.po
+++ b/l10n/fr/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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 54ea4356e19d81805550dbf2ab67f6bda68c78f6..413aa4f723433d18de17dcb7d9ce8ab07e87c78a 100644
--- a/l10n/fr/user_ldap.po
+++ b/l10n/fr/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: plachance <patlachance@gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/core.po b/l10n/gl/core.po
index 60019117083a88e33f0948e654784bd95192f555..cd173b192de1bdf638a82170e28cbc1e7e537edd 100644
--- a/l10n/gl/core.po
+++ b/l10n/gl/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "anos atrás"
 msgid "Choose"
 msgstr "Escoller"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Produciuse un erro ao cargar o modelo do selector de ficheiros"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Si"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Non"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Aceptar"
 
diff --git a/l10n/gl/files.po b/l10n/gl/files.po
index 87e15a51690b981220ce4cd703a2d358b616b054..0ee9089b6a52b7623647da4f54586d7d87d3d6fa 100644
--- a/l10n/gl/files.po
+++ b/l10n/gl/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/files_encryption.po b/l10n/gl/files_encryption.po
index 583c4d335514c64802215c52cce9add167acbd1c..df19cbea75f00ba055cca9e96493acaa345c4a92 100644
--- a/l10n/gl/files_encryption.po
+++ b/l10n/gl/files_encryption.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-27 02:00+0200\n"
-"PO-Revision-Date: 2013-05-26 08:00+0000\n"
+"POT-Creation-Date: 2013-05-31 01:58+0200\n"
+"PO-Revision-Date: 2013-05-30 06:50+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
@@ -20,13 +20,23 @@ msgstr ""
 "Language: gl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "O contrasinal foi recuperado satisfactoriamente"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Activada satisfactoriamente a chave de recuperación"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Non foi posíbel"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Desactivada satisfactoriamente a chave de recuperación"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/gl/files_external.po b/l10n/gl/files_external.po
index e3e328405eea4c5f577b04c2740ba8e8b880c221..11e70ec65498df351a2f1a536deca92bedd90622 100644
--- a/l10n/gl/files_external.po
+++ b/l10n/gl/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/files_sharing.po b/l10n/gl/files_sharing.po
index edb2dc07cf7739fd7f9eb44c99efc5a29afbc945..a65f3b54e49a3b304e735895f7570e1ef50ee0b6 100644
--- a/l10n/gl/files_sharing.po
+++ b/l10n/gl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/files_trashbin.po b/l10n/gl/files_trashbin.po
index 6f3e6ee719ca8491d4fd6d2d9607d740fe143e59..2c02309e78e0da9cffdd78fcfafb8577a02922d7 100644
--- a/l10n/gl/files_trashbin.po
+++ b/l10n/gl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/lib.po b/l10n/gl/lib.po
index d93e16435f7a11a668467c1f1b3a9c943ae7c0a0..0925d066e07b9835cc529f205962f1cb912e3b9d 100644
--- a/l10n/gl/lib.po
+++ b/l10n/gl/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Volver aos ficheiros"
 msgid "Selected files too large to generate zip file."
 msgstr "Os ficheiros seleccionados son demasiado grandes como para xerar un ficheiro zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "non foi posíbel determinalo"
 
diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po
index 7196280b5919f59bd53d7fb906ef4aeb15503148..c20ca89cf7f6e659b9d4b6cba422282ebc7f6677 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/gl/user_ldap.po b/l10n/gl/user_ldap.po
index 2ff4158fb44627810315601f317484fe553ce1dc..9a807cb786863768d667888fbeac56062e776b19 100644
--- a/l10n/gl/user_ldap.po
+++ b/l10n/gl/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
 "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/core.po b/l10n/he/core.po
index cb6604746298148792856020f236f7f6582e73a3..36222ee85f23d4ffbd2102d6c764a0ff3b912db0 100644
--- a/l10n/he/core.po
+++ b/l10n/he/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "שנים"
 msgid "Choose"
 msgstr "בחירה"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "ביטול"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "כן"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "לא"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "בסדר"
 
diff --git a/l10n/he/files.po b/l10n/he/files.po
index c7392f5472bfce789a8009fedfb3223110c88f76..1fdea3414068f912d00dab8a6ebf25e46cd7b823 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/files_encryption.po b/l10n/he/files_encryption.po
index e69fc167c93e7f1e9ecc3c7ecef0c1b291c0a403..d2120666022fa83e4b6e2403dbbe2c388633515a 100644
--- a/l10n/he/files_encryption.po
+++ b/l10n/he/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: he\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/he/files_external.po b/l10n/he/files_external.po
index b08f5a3e2c692260c2f6768cbed863b4cf37c926..3b0478cada5203e3696484aab3c01a084897bf83 100644
--- a/l10n/he/files_external.po
+++ b/l10n/he/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/files_sharing.po b/l10n/he/files_sharing.po
index e443d88aea602ec73430bb2fc1c206dc7fb3499e..5428e9f8756e6eba5430010cc9028c77c08ed9ce 100644
--- a/l10n/he/files_sharing.po
+++ b/l10n/he/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/files_trashbin.po b/l10n/he/files_trashbin.po
index b16e0caef5f52268daf2999105a0b1df1b777b8a..fd7ab0c664957b617eb2378018db805b03a4ef8e 100644
--- a/l10n/he/files_trashbin.po
+++ b/l10n/he/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/lib.po b/l10n/he/lib.po
index 37265c3750c43d6c1115fabc40fa6027d17e8768..f68ebafe3196a73a07161d0b78ee9b44a15e628d 100644
--- a/l10n/he/lib.po
+++ b/l10n/he/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "חזרה לקבצים"
 msgid "Selected files too large to generate zip file."
 msgstr "הקבצים הנבחרים גדולים מידי ליצירת קובץ zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/he/settings.po b/l10n/he/settings.po
index 2255d7694375f1a38ecbf5a85d70582e51f20866..3022e30dc04d97ba9c25dec1a771e94f96d0200d 100644
--- a/l10n/he/settings.po
+++ b/l10n/he/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/he/user_ldap.po b/l10n/he/user_ldap.po
index cb8335cd8e029247623f066dab61771c705d320e..c13ba23bce584363d1e1bbcdc74631242fe0f678 100644
--- a/l10n/he/user_ldap.po
+++ b/l10n/he/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hi/core.po b/l10n/hi/core.po
index 9ddfb1ae93470fcada51b170f999b16e64f7b88d..2209ac116e606d615b7aaa13c2b307fe330ae6ad 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/hi/files_encryption.po b/l10n/hi/files_encryption.po
index c362c343cb8cdff2b8193314b57a6f9e468ba68a..1b6ebe3c0011efdfd09ab047fcf50ca349696af8 100644
--- a/l10n/hi/files_encryption.po
+++ b/l10n/hi/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: hi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/hi/lib.po b/l10n/hi/lib.po
index 1a5aa5768c00fa9578968adfcfa3088e5628a3a4..7712ebdf65ba99aeca2ee7c7a92a87fef26eaabe 100644
--- a/l10n/hi/lib.po
+++ b/l10n/hi/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/hr/core.po b/l10n/hr/core.po
index e8822466067a7d733e8f35c6f5bdaf7d6e8473b7..ffb5cda05b73f3a28f96a0c9a471df6ed44be170 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "godina"
 msgid "Choose"
 msgstr "Izaberi"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Odustani"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Da"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ne"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "U redu"
 
diff --git a/l10n/hr/files.po b/l10n/hr/files.po
index 52fe5fcb2e8abe4876c7a4b68258eca609eebc69..972d46958a1636bb5772a03d597b11d8e6ea6909 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hr/files_encryption.po b/l10n/hr/files_encryption.po
index bdc3053e5614a063a93c4ade6c9f2ef87ee53f13..bbff99c9b09dee8f767809a810488a7001b8159d 100644
--- a/l10n/hr/files_encryption.po
+++ b/l10n/hr/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/hr/files_external.po b/l10n/hr/files_external.po
index 697263a35b69c7eaffc8738af14a6b109bdb08e3..6d9da77d95c67bc31b4486a319ff656badaa8d88 100644
--- a/l10n/hr/files_external.po
+++ b/l10n/hr/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hr/files_sharing.po b/l10n/hr/files_sharing.po
index e7aaf5da1a1ccaf1c7c8bfb1433d20a2a27ef438..e6b5a7e3756f6fdd52c548c41333cda10d51b1b1 100644
--- a/l10n/hr/files_sharing.po
+++ b/l10n/hr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hr/files_trashbin.po b/l10n/hr/files_trashbin.po
index e176e48f50b3bfb8b08f0cdbaa9c56819dfaed70..533e3e43ed2fde4c1673ea2a3c801273d9a7305c 100644
--- a/l10n/hr/files_trashbin.po
+++ b/l10n/hr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hr/lib.po b/l10n/hr/lib.po
index 32a4d996e2e3be5cdcc3a46251a470c4a929a895..018c77a5a856b0f845d46df4adca303c52ef97f7 100644
--- a/l10n/hr/lib.po
+++ b/l10n/hr/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/hr/settings.po b/l10n/hr/settings.po
index ea179516523a8dfc0cf295ac46ca2e755b28955f..0aa248f1b26ea74a947633e60b7adcf939d1e088 100644
--- a/l10n/hr/settings.po
+++ b/l10n/hr/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hr/user_ldap.po b/l10n/hr/user_ldap.po
index 3fd7c0c515e03a87b3e1e44d12808cd31af8d10b..450e358e9f41ba499165d4817902b459d9bfbf70 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/core.po b/l10n/hu_HU/core.po
index c57363e9fd099b808cfc95b56aff74cc6e7eeff2..057f49061807eeb508437099bfb4f06739080f0a 100644
--- a/l10n/hu_HU/core.po
+++ b/l10n/hu_HU/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "több éve"
 msgid "Choose"
 msgstr "Válasszon"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Mégsem"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Nem sikerült betölteni a fájlkiválasztó sablont"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Igen"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nem"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po
index 6a2ba6767180f6ee8d034a2ff980a05b01930265..ac39b2cd630e3fa0b2aa0a695fc91b0876caf531 100644
--- a/l10n/hu_HU/files.po
+++ b/l10n/hu_HU/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/files_encryption.po b/l10n/hu_HU/files_encryption.po
index a7f597ae66d98f8004af249b9f54786912c83338..643b0404816a55811ce9a01a9c9f5d2ece8d3470 100644
--- a/l10n/hu_HU/files_encryption.po
+++ b/l10n/hu_HU/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: hu_HU\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/hu_HU/files_external.po b/l10n/hu_HU/files_external.po
index d72cef91599f8b6165b838a7fef4005dee7c26f0..bc36606bcabb8b220f7877cc68b129279a5e07d2 100644
--- a/l10n/hu_HU/files_external.po
+++ b/l10n/hu_HU/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/files_sharing.po b/l10n/hu_HU/files_sharing.po
index b14eb1bf958ad2b3c8acdfd76df19f62b586944a..66718ac0b98a1476b8054f26f8acf77e9ad21896 100644
--- a/l10n/hu_HU/files_sharing.po
+++ b/l10n/hu_HU/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/files_trashbin.po b/l10n/hu_HU/files_trashbin.po
index 42171c708174979f7f15dedde88b36892a5f1cfb..aa6a6bb38b425670006654a00a3f12d3347b5255 100644
--- a/l10n/hu_HU/files_trashbin.po
+++ b/l10n/hu_HU/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/lib.po b/l10n/hu_HU/lib.po
index f0b3ae637620574127ecaad16d080944366779ea..2f355db533b22d352745e4ed93add3ed175ffed8 100644
--- a/l10n/hu_HU/lib.po
+++ b/l10n/hu_HU/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Vissza a Fájlokhoz"
 msgid "Selected files too large to generate zip file."
 msgstr "A kiválasztott fájlok túl nagyok a zip tömörítéshez."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nem határozható meg"
 
diff --git a/l10n/hu_HU/settings.po b/l10n/hu_HU/settings.po
index 6c9fabd07bbe64a28e2e45c65ac2b07e83313fc0..3eae903f150757f0c5cfcd6b35cd34bdf9a330ea 100644
--- a/l10n/hu_HU/settings.po
+++ b/l10n/hu_HU/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hu_HU/user_ldap.po b/l10n/hu_HU/user_ldap.po
index 951c3989ac1913dbd605c55359ba72b2cc153292..7cdac13a90d2dea5485c2a3b30b3db4dbf44272c 100644
--- a/l10n/hu_HU/user_ldap.po
+++ b/l10n/hu_HU/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
 "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
 "MIME-Version: 1.0\n"
@@ -363,11 +363,11 @@ msgstr ""
 
 #: templates/settings.php:103
 msgid "Internal Username Attribute:"
-msgstr ""
+msgstr "A belső felhasználónév attribútuma:"
 
 #: templates/settings.php:104
 msgid "Override UUID detection"
-msgstr ""
+msgstr "Az UUID-felismerés felülbírálása"
 
 #: templates/settings.php:105
 msgid ""
@@ -382,11 +382,11 @@ msgstr ""
 
 #: templates/settings.php:106
 msgid "UUID Attribute:"
-msgstr ""
+msgstr "UUID attribútum:"
 
 #: templates/settings.php:107
 msgid "Username-LDAP User Mapping"
-msgstr ""
+msgstr "Felhasználó - LDAP felhasználó hozzárendelés"
 
 #: templates/settings.php:108
 msgid ""
@@ -405,11 +405,11 @@ msgstr ""
 
 #: templates/settings.php:109
 msgid "Clear Username-LDAP User Mapping"
-msgstr ""
+msgstr "A felhasználó - LDAP felhasználó hozzárendelés törlése"
 
 #: templates/settings.php:109
 msgid "Clear Groupname-LDAP Group Mapping"
-msgstr ""
+msgstr "A csoport - LDAP csoport hozzárendelés törlése"
 
 #: templates/settings.php:111
 msgid "Test Configuration"
diff --git a/l10n/hy/files.po b/l10n/hy/files.po
index 9d1d8120996bf057df6e5f4581513640bce8517d..eb1ce560470a0db368446ccf86caa562af759042 100644
--- a/l10n/hy/files.po
+++ b/l10n/hy/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/hy/files_encryption.po b/l10n/hy/files_encryption.po
index 58e5d4de2eb4a9e9eaea47d1385897b4efac495a..a16e27d574b2426a99de18a5d3ee53f55d8e4a81 100644
--- a/l10n/hy/files_encryption.po
+++ b/l10n/hy/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: hy\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/hy/files_external.po b/l10n/hy/files_external.po
index d48998e77a9c4f1d5cfa0a582dfb076ea9fb5971..fb45b44723a0bbcc392afde909a7a2802b45edfa 100644
--- a/l10n/hy/files_external.po
+++ b/l10n/hy/files_external.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
diff --git a/l10n/hy/files_sharing.po b/l10n/hy/files_sharing.po
index 2c158509af1c11223f119d353c40b131382313ae..a784afbf6b3321b99f1c6c3e1aa5519023341179 100644
--- a/l10n/hy/files_sharing.po
+++ b/l10n/hy/files_sharing.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
diff --git a/l10n/hy/files_trashbin.po b/l10n/hy/files_trashbin.po
index 0551e22b2b5ef38ab6c78339bbc994b5a6cadcd9..74dcd02188eef30788a0ba91b53a1523abd94de0 100644
--- a/l10n/hy/files_trashbin.po
+++ b/l10n/hy/files_trashbin.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
diff --git a/l10n/hy/settings.po b/l10n/hy/settings.po
index 33fae75041b2b9fd1d1c8fa812e9e0dfa003409f..2c73b731876a81b6c75e58cecd06a098d12d261c 100644
--- a/l10n/hy/settings.po
+++ b/l10n/hy/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/core.po b/l10n/ia/core.po
index 9c0d3557fbd3fe2a9e0ed3ce9fc0419850c08ff5..b557f15f69bfbc42d49cca865f754b18201eca0a 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancellar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/ia/files.po b/l10n/ia/files.po
index eae7eccaaf0d9f6e0de47c76671c4ddf4a9ea4cf..f95c026aa11b66e8dabb429f9b630562dcb49ced 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/files_encryption.po b/l10n/ia/files_encryption.po
index 19dc97513c69613397d187fb9d0def1f6f5b8a61..37c50e27483802edd10801e53d22e4bd2596e454 100644
--- a/l10n/ia/files_encryption.po
+++ b/l10n/ia/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ia\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ia/files_external.po b/l10n/ia/files_external.po
index 38c8f86f16ca015518e39c748c8c958c16f4ec1d..4971a7cae94d67aecb6c0ee4e5b05d8fa12616d0 100644
--- a/l10n/ia/files_external.po
+++ b/l10n/ia/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/files_sharing.po b/l10n/ia/files_sharing.po
index 5efa405cb8309ca6ed719244e0561a43f9cfe5dc..19200562667e598f74a6fe465f8c4ea360821d1d 100644
--- a/l10n/ia/files_sharing.po
+++ b/l10n/ia/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/files_trashbin.po b/l10n/ia/files_trashbin.po
index 37991d151c1ada833efd04a2d1faf7982790df0a..6712fe19cae3f17fd157ad0f183dfc5a70719ecb 100644
--- a/l10n/ia/files_trashbin.po
+++ b/l10n/ia/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/lib.po b/l10n/ia/lib.po
index f3b1427a888dcda2f7865ceb2e27d9830a606d62..1d8995e1c7187cbfb85b0b225f6193cf158d1663 100644
--- a/l10n/ia/lib.po
+++ b/l10n/ia/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ia/settings.po b/l10n/ia/settings.po
index bc7bcdf81368d775304fccd204e2e57419f981d4..e8e884bc8c6f895927d11f3d4a4bdd06608f118d 100644
--- a/l10n/ia/settings.po
+++ b/l10n/ia/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ia/user_ldap.po b/l10n/ia/user_ldap.po
index 13445264fd0b25242f9ad7f9337ea43e8b1c127e..06eda6fd303f475fc57a065583c44124736dfd77 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/core.po b/l10n/id/core.po
index ced2168b26362ec30ed5f18b54b5e10532d37ae7..00c5c96f3e14ab69c7ed6c80db2ed471c6cef9b7 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "beberapa tahun lalu"
 msgid "Choose"
 msgstr "Pilih"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Batal"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ya"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Tidak"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Oke"
 
diff --git a/l10n/id/files.po b/l10n/id/files.po
index 94c37105b224ee27dbc952707b5f12a3e194de2a..12586133ad5eac1a52c5a32ebf7aa50b10959eeb 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/files_encryption.po b/l10n/id/files_encryption.po
index 6edf937a6d0e3753f030b0a257b3262012698e19..573bf66a00a20164f73f597627318a0e43cc84d6 100644
--- a/l10n/id/files_encryption.po
+++ b/l10n/id/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: id\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/id/files_external.po b/l10n/id/files_external.po
index 8e28cf4d3e5cd503d8aa001d0695be5aa113382c..bc601626910dace7e94c064ac1f747ebee0ce75d 100644
--- a/l10n/id/files_external.po
+++ b/l10n/id/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/files_sharing.po b/l10n/id/files_sharing.po
index c690c3698248254ea95e3e7930ade562d0d821dd..e0f2c6ca1cd414069534c98f8dc59819240ce7e1 100644
--- a/l10n/id/files_sharing.po
+++ b/l10n/id/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/files_trashbin.po b/l10n/id/files_trashbin.po
index b83af5b73fe109dc884b05a4495b35d9ae78d38c..feac24537213922edadcef9a414798e80684732a 100644
--- a/l10n/id/files_trashbin.po
+++ b/l10n/id/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/lib.po b/l10n/id/lib.po
index dff5d60bad39f028bba4bc9d9689217e195cf15b..fd89139ada64d22865d008a2dda78e6055f3916e 100644
--- a/l10n/id/lib.po
+++ b/l10n/id/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Kembali ke Daftar Berkas"
 msgid "Selected files too large to generate zip file."
 msgstr "Berkas yang dipilih terlalu besar untuk dibuat berkas zip-nya."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "tidak dapat ditentukan"
 
diff --git a/l10n/id/settings.po b/l10n/id/settings.po
index e674e4953a1d367424cdeb5314b44fd90430ff3e..1b000f8b87815b48b561237b315fa2c0c2f2583c 100644
--- a/l10n/id/settings.po
+++ b/l10n/id/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/id/user_ldap.po b/l10n/id/user_ldap.po
index 271ab1612115687e4f1b1003d2e043cff6c43a57..bf1a1d3f440f3f7c54df23e5fa893551800e3adf 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/core.po b/l10n/is/core.po
index 2b88b3aeb13571b2510852cf6ff0bada29da201e..b257c623341481b533ca020845ba3300570cbefa 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "einhverjum árum"
 msgid "Choose"
 msgstr "Veldu"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Hætta við"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Já"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nei"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Í lagi"
 
diff --git a/l10n/is/files.po b/l10n/is/files.po
index af60c73358fe02d2eb20125e73e994894ff9ae77..89771c7ed56e6db963984b5531917782c842b32a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/files_encryption.po b/l10n/is/files_encryption.po
index 67dd11fafd629e2d9b44472902ac9c663c4aca71..1d993ab33690f0b4e2af41a96e233b40868e938b 100644
--- a/l10n/is/files_encryption.po
+++ b/l10n/is/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: is\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/is/files_external.po b/l10n/is/files_external.po
index c245475c9a6faa1e0ddcc3694678ee4378781c39..0cff6001507b95f8bbc056fc54fc7104947e79da 100644
--- a/l10n/is/files_external.po
+++ b/l10n/is/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/files_sharing.po b/l10n/is/files_sharing.po
index 8139905e0b72678e9d1c4a5214e9e3bf994c6273..aba9b4e8da28671544edb6ed2afbff71b3f24090 100644
--- a/l10n/is/files_sharing.po
+++ b/l10n/is/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/files_trashbin.po b/l10n/is/files_trashbin.po
index b8523f94d28d54dadea1d2f3bfb4da082ce27be4..ef4d5da4a6e6100e905d900c393fd72eea368209 100644
--- a/l10n/is/files_trashbin.po
+++ b/l10n/is/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/lib.po b/l10n/is/lib.po
index 0774ea67152be32dc371b44f3e486c0cae28784c..bd2260d509de8b41e6784005ebc45848af84a9d7 100644
--- a/l10n/is/lib.po
+++ b/l10n/is/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Aftur í skrár"
 msgid "Selected files too large to generate zip file."
 msgstr "Valdar skrár eru of stórar til að búa til ZIP skrá."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/is/settings.po b/l10n/is/settings.po
index aabe42aa9be318251c6c15384aa292c474d6fd11..a70339dd89c8f8ca3eb6ff82f69f4e3bb7d395cd 100644
--- a/l10n/is/settings.po
+++ b/l10n/is/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/is/user_ldap.po b/l10n/is/user_ldap.po
index 74223d04d1dcf6df8aa2c405d46dcafa24fb7abb..42655e49061f704d2605721258233593540af86b 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/it/core.po b/l10n/it/core.po
index a7bae2b1277c34589cbac78354fa208cfb7778f7..5ee1e5c44b1878865022cd8388a4732cafb8099f 100644
--- a/l10n/it/core.po
+++ b/l10n/it/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "anni fa"
 msgid "Choose"
 msgstr "Scegli"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Annulla"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Errore durante il caricamento del modello del selezionatore di file"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sì"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "No"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/it/files.po b/l10n/it/files.po
index ed2f6ab7880c059c9f0bcafb9caacf29c9caca18..87ac3c24631d1981c56a6c44882987190e4cacf0 100644
--- a/l10n/it/files.po
+++ b/l10n/it/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/it/files_encryption.po b/l10n/it/files_encryption.po
index 9cac47a2be182c07444eae1a383c8a3570500712..d4916e8b50e6c7b0d0de806117537b527379754f 100644
--- a/l10n/it/files_encryption.po
+++ b/l10n/it/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 08:00+0000\n"
+"POT-Creation-Date: 2013-05-31 01:58+0200\n"
+"PO-Revision-Date: 2013-05-30 04:40+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: it\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "Chiave ripristinata correttamente"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Chiave di ripristino abilitata correttamente"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Impossibile"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino."
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Chiave di ripristinata disabilitata correttamente"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Impossibile disabilitare la chiave di ripristino. Verifica la password della chiave di ripristino."
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/it/files_external.po b/l10n/it/files_external.po
index d212704484ae88a3b57611c059cee5a31b37a690..912c686bb8197cf0c0a631405ffed13ecd0bd844 100644
--- a/l10n/it/files_external.po
+++ b/l10n/it/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/it/files_sharing.po b/l10n/it/files_sharing.po
index 7c22907a0cc2f6df17d44f2d024d09be5da5d91f..49f2233620b0bd6293240aa61cb4564071b23b15 100644
--- a/l10n/it/files_sharing.po
+++ b/l10n/it/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/it/files_trashbin.po b/l10n/it/files_trashbin.po
index 34b5060e3ff5da29568568fd762b94ba38896ca8..d0590c78c7fc295d7790b19024a3b74bbdf182da 100644
--- a/l10n/it/files_trashbin.po
+++ b/l10n/it/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/it/lib.po b/l10n/it/lib.po
index 1fffce933512267b00dbcd6c18cb39879a4765f8..a27bfd728af7dbee87a326b68346a3cbf3e50317 100644
--- a/l10n/it/lib.po
+++ b/l10n/it/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Torna ai file"
 msgid "Selected files too large to generate zip file."
 msgstr "I  file selezionati sono troppo grandi per generare un file zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "non può essere determinato"
 
diff --git a/l10n/it/settings.po b/l10n/it/settings.po
index e90809731d2b678ae248873491215747cef03eb5..b3531ea04b0692324829d44520b08d115ad7b333 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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\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 68655dc89600b57696db8e25bdbaf7468538c3e1..01e4970a27d3359ad6da96011042dec594f76b36 100644
--- a/l10n/it/user_ldap.po
+++ b/l10n/it/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
 "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po
index 2928c022389b25b1f746937c26d9a2ad2e49b119..108f1136e381dbadb8f870cc7f0ff3f044955d5e 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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Daisuke Deguchi <ddeguchi@nagoya-u.jp>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "年前"
 msgid "Choose"
 msgstr "選択"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "キャンセル"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "ファイルピッカーのテンプレートの読み込みエラー"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "はい"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "いいえ"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po
index ff89d8d0b53a8d36c79460bfb81fc8612a488ebd..f18a6daef91589735778ca30af509194ead67a78 100644
--- a/l10n/ja_JP/files.po
+++ b/l10n/ja_JP/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Daisuke Deguchi <ddeguchi@nagoya-u.jp>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/files_encryption.po b/l10n/ja_JP/files_encryption.po
index bb4c738de09f1dff18d45647eee38e20266adda7..218b16a00e60261d349d6ff1a5016d51f407c82e 100644
--- a/l10n/ja_JP/files_encryption.po
+++ b/l10n/ja_JP/files_encryption.po
@@ -3,14 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Daisuke Deguchi <ddeguchi@nagoya-u.jp>, 2013
 # tt yn <tetuyano+transi@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-27 02:00+0200\n"
-"PO-Revision-Date: 2013-05-26 00:10+0000\n"
-"Last-Translator: tt yn <tetuyano+transi@gmail.com>\n"
+"POT-Creation-Date: 2013-06-01 01:58+0200\n"
+"PO-Revision-Date: 2013-05-31 06:00+0000\n"
+"Last-Translator: Daisuke Deguchi <ddeguchi@nagoya-u.jp>\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,13 +19,23 @@ msgstr ""
 "Language: ja_JP\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "鍵を復旧することができました。"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "リカバリ用のキーは正常に有効化されました"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "できませんでした。"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認して下さい!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "リカバリ用のキーを正常に無効化しました"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認して下さい!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/ja_JP/files_external.po b/l10n/ja_JP/files_external.po
index ff9ad6ceb238afca050088993123dc34004c4b2c..df05798dbd0674a52e910a245cde461dfd8c73b5 100644
--- a/l10n/ja_JP/files_external.po
+++ b/l10n/ja_JP/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/files_sharing.po b/l10n/ja_JP/files_sharing.po
index d48455497fadaad0d61e50aa179882f7cc1af022..9205b518b17c1e0ba0a666e8429cdde6fc9f2cb3 100644
--- a/l10n/ja_JP/files_sharing.po
+++ b/l10n/ja_JP/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/files_trashbin.po b/l10n/ja_JP/files_trashbin.po
index a96077fda58f26a6263ea399ec3f9afd38dabf1f..c90517e4d2b3f88d4bb9cc6057b947770d85c8a9 100644
--- a/l10n/ja_JP/files_trashbin.po
+++ b/l10n/ja_JP/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/lib.po b/l10n/ja_JP/lib.po
index e652c3293ec843c1dd8fdd586bb478bfe4ae4b87..7e84b3fae215f443b9936e755fa4a0b2842c9927 100644
--- a/l10n/ja_JP/lib.po
+++ b/l10n/ja_JP/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: tt yn <tetuyano+transi@gmail.com>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "ファイルに戻る"
 msgid "Selected files too large to generate zip file."
 msgstr "選択したファイルはZIPファイルの生成には大きすぎます。"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "測定できませんでした"
 
diff --git a/l10n/ja_JP/settings.po b/l10n/ja_JP/settings.po
index ac78b3d2b663212270a9ba17c9008c250b2cee18..6b990ab4951bead6d8d8d478100c843105abbd30 100644
--- a/l10n/ja_JP/settings.po
+++ b/l10n/ja_JP/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: tt yn <tetuyano+transi@gmail.com>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po
index c1bf37b33df9caa5a780c9488a0749c9db6d50d0..648af63c11a18fd127a26c6b44b40b69f306b33a 100644
--- a/l10n/ja_JP/user_ldap.po
+++ b/l10n/ja_JP/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Daisuke Deguchi <ddeguchi@nagoya-u.jp>\n"
 "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka/files.po b/l10n/ka/files.po
index 44ef8da8166a73f860203396995989c5112647d8..4a2db5dd214eddfcd3255716a2a04274f216a7ad 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka/files_encryption.po b/l10n/ka/files_encryption.po
index a1c8afe604232246aa82a5c62f5b0de41b31e867..12883dff6471a6bedcd0479b0ddd9fc756e92a41 100644
--- a/l10n/ka/files_encryption.po
+++ b/l10n/ka/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ka\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ka/files_sharing.po b/l10n/ka/files_sharing.po
index 0f2093ea2958bd39a7d2867e982fcc05ffc434e8..53dd73051d06c3e9fef868a140af1e2e5de57826 100644
--- a/l10n/ka/files_sharing.po
+++ b/l10n/ka/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/core.po b/l10n/ka_GE/core.po
index b2181ff89a85fcc4e59893b074ea33e60ebfdc7d..b986b21fe37dc525a7a6d2f9bee3695842a68671 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "წლის წინ"
 msgid "Choose"
 msgstr "არჩევა"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "უარყოფა"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "კი"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "არა"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "დიახ"
 
diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po
index b7c38c6d631ea97d6cc68df29a398bc82e1f4c3b..2b820d85a11b36945a26a5931e584e199a379598 100644
--- a/l10n/ka_GE/files.po
+++ b/l10n/ka_GE/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/files_encryption.po b/l10n/ka_GE/files_encryption.po
index 5e0787826d5d9d6ff73085e6d057292c0a26ad84..d2b48f7eeb99d8ed59db45d3618443e5dfdba435 100644
--- a/l10n/ka_GE/files_encryption.po
+++ b/l10n/ka_GE/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ka_GE\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ka_GE/files_external.po b/l10n/ka_GE/files_external.po
index b341a7c7881db3487d09a4d03c49eca5f8c49485..7dac10dfcea4b8e9d1f5c1630075b50f936e70dd 100644
--- a/l10n/ka_GE/files_external.po
+++ b/l10n/ka_GE/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: drlinux64 <romeo@energo-pro.ge>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/files_sharing.po b/l10n/ka_GE/files_sharing.po
index 921f5ce4f0bd480a23ec4e91cdf811ac3516e8c2..6d12ca057519c698ac1ccb7adc926b93a0035de3 100644
--- a/l10n/ka_GE/files_sharing.po
+++ b/l10n/ka_GE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: drlinux64 <romeo@energo-pro.ge>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/files_trashbin.po b/l10n/ka_GE/files_trashbin.po
index af87978ec4a4ab5011a5c7347fb763248b8a4214..d7d7fcb490b19df9d980ca38b754217356a01b09 100644
--- a/l10n/ka_GE/files_trashbin.po
+++ b/l10n/ka_GE/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: drlinux64 <romeo@energo-pro.ge>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/lib.po b/l10n/ka_GE/lib.po
index 2bc84b7c432150bf54096058fbb0422cb8ba9c02..b917119121ca30b09b3da0d36c29dc4d512fde47 100644
--- a/l10n/ka_GE/lib.po
+++ b/l10n/ka_GE/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:33+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "უკან ფაილებში"
 msgid "Selected files too large to generate zip file."
 msgstr "არჩეული ფაილები ძალიან დიდია zip ფაილის გენერაციისთვის."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ვერ განისაზღვრა"
 
diff --git a/l10n/ka_GE/settings.po b/l10n/ka_GE/settings.po
index 3d9ef56ea6012f9378d67a3bcbafbd84cf53bc65..f02a499b093611f02120c59b847a5f1a97e72fdd 100644
--- a/l10n/ka_GE/settings.po
+++ b/l10n/ka_GE/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ka_GE/user_ldap.po b/l10n/ka_GE/user_ldap.po
index b789187346d41d388ed1d527b16d3caf61f47933..01096db8152a05f42ca23ba048c65c98ee4c3daa 100644
--- a/l10n/ka_GE/user_ldap.po
+++ b/l10n/ka_GE/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/kn/files_encryption.po b/l10n/kn/files_encryption.po
index ec2074a7a77dcbfe3a926bb87e1d1c6d0dde1a23..dda2e54fa162be857fd40e113229c00fe6e97594 100644
--- a/l10n/kn/files_encryption.po
+++ b/l10n/kn/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kannada (http://www.transifex.com/projects/p/owncloud/language/kn/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: kn\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ko/core.po b/l10n/ko/core.po
index ea48ea484dbacb348ee0d033fc35ecd4fc691224..9f921d1b041c2d335e37da3b2e268cac76d3e214 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "년 전"
 msgid "Choose"
 msgstr "선택"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "취소"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "예"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "아니요"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "승락"
 
diff --git a/l10n/ko/files.po b/l10n/ko/files.po
index f9bd138310320920aef0615b0574bfce7c707517..d716be12d328b5b3406ccec7b81d50a7e9427285 100644
--- a/l10n/ko/files.po
+++ b/l10n/ko/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ko/files_encryption.po b/l10n/ko/files_encryption.po
index a509e34446261853a80ad2f9a242d5237fdc0106..4a5fd3c1fc2d0084c82a58c0541334ef3c4df7dc 100644
--- a/l10n/ko/files_encryption.po
+++ b/l10n/ko/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ko/files_external.po b/l10n/ko/files_external.po
index 5a0ae9f21b75cbaafe6398965c8c6cf94f87e24d..ce2cfcc9148e29c85ec4598b21e1847326884271 100644
--- a/l10n/ko/files_external.po
+++ b/l10n/ko/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ko/files_sharing.po b/l10n/ko/files_sharing.po
index 31d1fcf840b99ea3c363a145e64d283b36a7b4e1..3e8a2238f145d0c05d6fd55a7a143807d346be98 100644
--- a/l10n/ko/files_sharing.po
+++ b/l10n/ko/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ko/files_trashbin.po b/l10n/ko/files_trashbin.po
index cba6ee0302b40ee95690e8fa6335ce2c1b4cee8e..c35e4b4537492d21a082f8570a73dd5370c61935 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ko/lib.po b/l10n/ko/lib.po
index f1c1e1920e8bf325b49ed835df3e386ead37dcdf..e03ae40de3d9cbe4a089bf3a7b5acb4d8144f640 100644
--- a/l10n/ko/lib.po
+++ b/l10n/ko/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "파일로 돌아가기"
 msgid "Selected files too large to generate zip file."
 msgstr "선택한 파일들은 ZIP 파일을 생성하기에 너무 큽니다."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "결정할 수 없음"
 
diff --git a/l10n/ko/settings.po b/l10n/ko/settings.po
index 5157fe7fd63dce11177e3d4a11a156a55fafe3f2..b546ec16d2e46ade3ea79fbbe6f302571cb8760a 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ko/user_ldap.po b/l10n/ko/user_ldap.po
index b8fe7b6ae979a499cc97d817d7ad73f2a60851b4..c778c7bcac81c74e42b096622abe051037c147d0 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ku_IQ/core.po b/l10n/ku_IQ/core.po
index d43c096c12f1c517e37e3d00809192a7ebe05598..486fbc1a3bd91ff3108d4b23cceb3e57d0bd5fb8 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/ku_IQ/files.po b/l10n/ku_IQ/files.po
index 919450464d81dfd238ea5a4ad79059bf28c0158a..1c9a37e3082fe821cd420b6051335132b8cb0a7c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ku_IQ/files_encryption.po b/l10n/ku_IQ/files_encryption.po
index 7f23d3b4e263db417d692ea6a26b28245c8ce438..c8090c00e4432c9917d4d4641b683185585e2bf1 100644
--- a/l10n/ku_IQ/files_encryption.po
+++ b/l10n/ku_IQ/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ku_IQ\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ku_IQ/files_sharing.po b/l10n/ku_IQ/files_sharing.po
index ac35795d65d0c7ae906433404f3d40ad07a09418..66f5b470e8466ad446705744c4ac08dccf49f122 100644
--- a/l10n/ku_IQ/files_sharing.po
+++ b/l10n/ku_IQ/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ku_IQ/files_trashbin.po b/l10n/ku_IQ/files_trashbin.po
index 4118aed22a2177aa0f719511bf3c42314d229e18..599e316a48208e5aa35802cff9768736bda9ab0e 100644
--- a/l10n/ku_IQ/files_trashbin.po
+++ b/l10n/ku_IQ/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ku_IQ/lib.po b/l10n/ku_IQ/lib.po
index bccdcf3eb8aabd8a77d11b7074d11cedd9f11f14..5c9d4bdee21e9adf9bcbef01caf66b50f211563c 100644
--- a/l10n/ku_IQ/lib.po
+++ b/l10n/ku_IQ/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ku_IQ/settings.po b/l10n/ku_IQ/settings.po
index 3be7d416379d7e5d10e31cd0c5d806e6b737bfc5..e2f4cbba3991624d05cbf7e4d3e4f2220839560a 100644
--- a/l10n/ku_IQ/settings.po
+++ b/l10n/ku_IQ/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ku_IQ/user_ldap.po b/l10n/ku_IQ/user_ldap.po
index 531d10f1f4abcea30b8c076f3ceb13d28fff0ff9..f49698d4ef6d263dae1a9ffb6f30d56aaa546aa8 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/core.po b/l10n/lb/core.po
index 1f5495600c8e36f425906f98820bb5c7819ee36f..8aa520b6742030238b4a7eade78b8af94bc085fe 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "Joren hier"
 msgid "Choose"
 msgstr "Auswielen"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Ofbriechen"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Jo"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nee"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/lb/files.po b/l10n/lb/files.po
index 748d67c8e034ac4c84a0bd4d09ac148313f694a1..9eded80484030f717f46ac016fd1d63f5d7366ff 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/files_encryption.po b/l10n/lb/files_encryption.po
index 6b8269f29a2d2b7caf9507be505ac9251b9c73b6..304094fcb33bd3053fb3eed4a3759d62c98e2a92 100644
--- a/l10n/lb/files_encryption.po
+++ b/l10n/lb/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: lb\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/lb/files_external.po b/l10n/lb/files_external.po
index 388353d8479117e538569ca3f8c6f1595aba6c4c..18c7b57b885f36e71a4fa577858e5fb24725e5ba 100644
--- a/l10n/lb/files_external.po
+++ b/l10n/lb/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/files_sharing.po b/l10n/lb/files_sharing.po
index 772d588e5d11b2674c0acef22ecbfc7427b1c39e..a780767eb6b9874eaef729a98a0d1caa3e560662 100644
--- a/l10n/lb/files_sharing.po
+++ b/l10n/lb/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/files_trashbin.po b/l10n/lb/files_trashbin.po
index f23ae0215ce096359406f666c042b95e438e712c..d6bca58aa1ac43244ffa1dce0de06acb1b067308 100644
--- a/l10n/lb/files_trashbin.po
+++ b/l10n/lb/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/lib.po b/l10n/lb/lib.po
index 67c188e365a8f151b62bc347201e16615f4844eb..f667ec07ad6e026d2072a979be9405ca0832a40e 100644
--- a/l10n/lb/lib.po
+++ b/l10n/lb/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/lb/settings.po b/l10n/lb/settings.po
index 9c11b142bd6b58b3242ba7d4be0d9d4b0ce4536e..5fb1196d33f7a43b126169e8e1ceea4d859fb057 100644
--- a/l10n/lb/settings.po
+++ b/l10n/lb/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lb/user_ldap.po b/l10n/lb/user_ldap.po
index d806179f131e0e0e1eb59c44cb1e46cff2313345..e89f5d783070dfdc7ff07b76ae13dbb369885648 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lt_LT/core.po b/l10n/lt_LT/core.po
index 98dfeea0f9197d94421fb0d132b9f0687b64124f..2e3943062ee26373cd2864ee33a0fc6a4fc2f06f 100644
--- a/l10n/lt_LT/core.po
+++ b/l10n/lt_LT/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Roman Deniobe <rms200x@gmail.com>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "prieš metus"
 msgid "Choose"
 msgstr "Pasirinkite"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Atšaukti"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Taip"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ne"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Gerai"
 
diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po
index d04e756a65e3294e2c82320334532d3bbb863ee8..b6f58efbe5d3bb2d8f7348908582e91c99a92288 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lt_LT/files_encryption.po b/l10n/lt_LT/files_encryption.po
index 2b7995207d59c64d18d7d769d6ee45265244c626..8d1d63c95a12c4a39458bb8963d50dca7a858dbf 100644
--- a/l10n/lt_LT/files_encryption.po
+++ b/l10n/lt_LT/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/lt_LT/files_external.po b/l10n/lt_LT/files_external.po
index 1ac1c3c2d8101d8186c887978e39539cdbd50108..f84b40b00656b98260fe1feb0e6235f1852af59c 100644
--- a/l10n/lt_LT/files_external.po
+++ b/l10n/lt_LT/files_external.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Min2liz <min2lizz@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
+"Last-Translator: Min2liz <min2lizz@gmail.com>\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"
@@ -55,7 +56,7 @@ msgid ""
 "<b>Warning:</b> 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 "<b>Įspėjimas:</b> \"Curl\" palaikymas PHP terpėje nėra įjungtas arba įdiegtas. ownCloud/WebDAV ar GoogleDrive įjungimas nebus įmanomas. Prašome susisiekti su sistemos administratoriumi kad būtų įdiegtas arba įjungtas \"Curl\" palaikymas."
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/lt_LT/files_sharing.po b/l10n/lt_LT/files_sharing.po
index d9769a81634f1daf3e7e75540b15d65b54e380b1..9a9fe7aa1a0480efa41306c9f4f22a87707816fd 100644
--- a/l10n/lt_LT/files_sharing.po
+++ b/l10n/lt_LT/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lt_LT/files_trashbin.po b/l10n/lt_LT/files_trashbin.po
index d11ded324886e66c5dbdee1fdcbb0a5a60132802..6b009b4a122cd81f1fd3c0bbfb018be42b47a8eb 100644
--- a/l10n/lt_LT/files_trashbin.po
+++ b/l10n/lt_LT/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lt_LT/lib.po b/l10n/lt_LT/lib.po
index 362d35b31834667ef7666deab4e6095272f420f7..940183f09e13dd18769489e4d675c3a561070a4d 100644
--- a/l10n/lt_LT/lib.po
+++ b/l10n/lt_LT/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Atgal į Failus"
 msgid "Selected files too large to generate zip file."
 msgstr "Pasirinkti failai per dideli archyvavimui į ZIP."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/lt_LT/settings.po b/l10n/lt_LT/settings.po
index fe0d6b85b4df5e7244284df10a45f9953bef3076..640edcbf5f201ff0efbd2d1ec7523ce3271bfc77 100644
--- a/l10n/lt_LT/settings.po
+++ b/l10n/lt_LT/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lt_LT/user_ldap.po b/l10n/lt_LT/user_ldap.po
index e6f48144e6d7d8ddaf64f3a50e37abf2bdd2f440..92110398949cd6f4f1968fa006d0af199da3de4a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/core.po b/l10n/lv/core.po
index f6e0ba30b0dd870df550e310738ad1f9433ae153..faf617a89464d01a56ff021e7b0c904d2614af7a 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "gadus atpakaļ"
 msgid "Choose"
 msgstr "Izvēlieties"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Atcelt"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Jā"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nē"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Labi"
 
diff --git a/l10n/lv/files.po b/l10n/lv/files.po
index f5214efd61b12549c39d2a375b20ef26f142e13d..61cd8e91c5a3a312c0050be6dd71f50cd86aa9d6 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/files_encryption.po b/l10n/lv/files_encryption.po
index 7db00d8fad61514af603f9ef0a07562b43721228..4d1d0d415bd0c1690e6bcd15f237f7fadf4e0221 100644
--- a/l10n/lv/files_encryption.po
+++ b/l10n/lv/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: lv\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/lv/files_external.po b/l10n/lv/files_external.po
index 29b58fbe136d974067c7e114e472b3b32cf70509..56e4020ed1bbc83f1c3c2832323359fcbb05366b 100644
--- a/l10n/lv/files_external.po
+++ b/l10n/lv/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/files_sharing.po b/l10n/lv/files_sharing.po
index 277a5a53e41cad7e2dcc36eaf7309833881b0ae0..363900d1c5ead9f19f5416c8bdbbb081602b08e4 100644
--- a/l10n/lv/files_sharing.po
+++ b/l10n/lv/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/files_trashbin.po b/l10n/lv/files_trashbin.po
index a82aa5c9d678d508384ec322426373a5b6ff1bf5..296e6d2c0cd803b132b0677d94457b3680049120 100644
--- a/l10n/lv/files_trashbin.po
+++ b/l10n/lv/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/lib.po b/l10n/lv/lib.po
index f47b9260d935b781b6dcbd0d36904d8d7f423282..b26d7786611392ca093225413027c06452e61c05 100644
--- a/l10n/lv/lib.po
+++ b/l10n/lv/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Atpakaļ pie datnēm"
 msgid "Selected files too large to generate zip file."
 msgstr "Izvēlētās datnes ir pārāk lielas, lai izveidotu zip datni."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nevarēja noteikt"
 
diff --git a/l10n/lv/settings.po b/l10n/lv/settings.po
index 8169e4811661c811bbb8a60a174b93aade73d712..8ac181d5882ee50dcadb5ba4201b94dfea4721a4 100644
--- a/l10n/lv/settings.po
+++ b/l10n/lv/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/lv/user_ldap.po b/l10n/lv/user_ldap.po
index 838d5ed7f2654bafe080d965acf8a622435c0cfd..45460c20e1304c707f42539a2a6ba647b38a877c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/core.po b/l10n/mk/core.po
index aa68169e37e37518ebd9fc90c644b9ccec516dd3..d9fb1012ae24debced829e1a8b0cc59b81ac2d9f 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "пред години"
 msgid "Choose"
 msgstr "Избери"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Откажи"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Да"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Не"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Во ред"
 
diff --git a/l10n/mk/files.po b/l10n/mk/files.po
index e389f189496caccd9f6e020ea2328896c10800e7..2a907e8064f383cac94519c9e5ae271e4646011c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/files_encryption.po b/l10n/mk/files_encryption.po
index e8f27333e50450347c50fc4c4c05451b5d5759d2..5ccdc506c2ca4bb5bef6e8ddb996c0f950dd7c8f 100644
--- a/l10n/mk/files_encryption.po
+++ b/l10n/mk/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: mk\n"
 "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/mk/files_external.po b/l10n/mk/files_external.po
index aace314341861764703e032a24bb2528fcd422e5..6da9a4c5b4bc6af00fca944a4d770cc6abd22e87 100644
--- a/l10n/mk/files_external.po
+++ b/l10n/mk/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/files_sharing.po b/l10n/mk/files_sharing.po
index 9d42b470041d9d89474fb13f2260b84ae0b39938..1cf38e52a3d70eaec61883eefa614d349c7c3095 100644
--- a/l10n/mk/files_sharing.po
+++ b/l10n/mk/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/files_trashbin.po b/l10n/mk/files_trashbin.po
index 915e9378ad23020aaaa1f8fc132db3b9056d5e46..86dfbed28ae1f0edc6a07087297deb7580ac8805 100644
--- a/l10n/mk/files_trashbin.po
+++ b/l10n/mk/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/lib.po b/l10n/mk/lib.po
index 234872928cbdd54c3e202565cc7280e2a0fae589..102cf6bc2ba6df7b67737b1221453cb876f52c83 100644
--- a/l10n/mk/lib.po
+++ b/l10n/mk/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Назад кон датотеки"
 msgid "Selected files too large to generate zip file."
 msgstr "Избраните датотеки се преголеми за да се генерира zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/mk/settings.po b/l10n/mk/settings.po
index 64fe6574863b31c4c18346853b938e6e84ef05f8..17ecb1aabfaceba12cb2db9c634c519c35ea9956 100644
--- a/l10n/mk/settings.po
+++ b/l10n/mk/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/mk/user_ldap.po b/l10n/mk/user_ldap.po
index 2b748deb4ed90057f1f3fa3dc17e91f4ebf0ccbb..04e212b30e4f2db278a084c62d7417f50d599b32 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/core.po b/l10n/ms_MY/core.po
index 8ffa173a3f8bd7900b29ada50ebf965a4515510f..710a7a8ded771f4ba35860466812fe29021f63b0 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Batal"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ya"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Tidak"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/ms_MY/files.po b/l10n/ms_MY/files.po
index 4d87ffe3ee203f8cd257c0562fb875b7e80dfa54..e7b0357a3ce220b959f675fe7ae37b66b16df827 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/files_encryption.po b/l10n/ms_MY/files_encryption.po
index baa6e428d206478b2be0de913991bde9a90377a4..bbbe2f3aa5a83ec784e087ba855e6af074e7501c 100644
--- a/l10n/ms_MY/files_encryption.po
+++ b/l10n/ms_MY/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ms_MY\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ms_MY/files_external.po b/l10n/ms_MY/files_external.po
index e58915fda87c648828dd170f07a1d092b8224ea6..36a6392e39a57316de49032c921c3e501d1945cc 100644
--- a/l10n/ms_MY/files_external.po
+++ b/l10n/ms_MY/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/files_sharing.po b/l10n/ms_MY/files_sharing.po
index ccf07b7597e88f9135c935222424e9821bf55fe2..efab3f4042f4594bdd6803ba28cdcb4d3775a184 100644
--- a/l10n/ms_MY/files_sharing.po
+++ b/l10n/ms_MY/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/files_trashbin.po b/l10n/ms_MY/files_trashbin.po
index 061945f336a9312aa933a709774664fd044abc0e..f70d21e7140af2d0404bd8fd4b322fc29dbfa3ec 100644
--- a/l10n/ms_MY/files_trashbin.po
+++ b/l10n/ms_MY/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/lib.po b/l10n/ms_MY/lib.po
index f9c5ea364edbbbff15ccfef4e24599e98b40e225..aa33d98b4a39db4c4f955c7c36633dd4266a9797 100644
--- a/l10n/ms_MY/lib.po
+++ b/l10n/ms_MY/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ms_MY/settings.po b/l10n/ms_MY/settings.po
index 8fef23310e789692ed155983e00eded603cf9bbf..484e24be5935ff83d40ed17b908c18110570f202 100644
--- a/l10n/ms_MY/settings.po
+++ b/l10n/ms_MY/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ms_MY/user_ldap.po b/l10n/ms_MY/user_ldap.po
index 7cbc633e3a50c6d95b84fa30e2aad6a41b0caf3d..1df50e9ef62ea59024f6f7c0321088b75380789f 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/my_MM/core.po b/l10n/my_MM/core.po
index 75e11ccf54b8fdf826a9036aa4d6572cce4afbbc..ea59f428ab422cc5842b0c49d467c9c721a0eb9b 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/my_MM/files.po b/l10n/my_MM/files.po
index b7c23b1557369d8977bd112e1cf1acd1845af8d6..d9769ad9231f174954e683e285feadf9f5072971 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/my_MM/files_encryption.po b/l10n/my_MM/files_encryption.po
index ce8102c0373b9fc377067696663e026f72b59160..876bedaf9148dc863b058196602aa99d90a8a015 100644
--- a/l10n/my_MM/files_encryption.po
+++ b/l10n/my_MM/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: my_MM\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/my_MM/files_sharing.po b/l10n/my_MM/files_sharing.po
index d36ffa55279c766b1f1f88ff28d26ed20ca3d509..0b655da998fc9aa895b577ce3f1704363f00aa82 100644
--- a/l10n/my_MM/files_sharing.po
+++ b/l10n/my_MM/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/my_MM/lib.po b/l10n/my_MM/lib.po
index 31680bcdf1eb46304b5841a900046abe691c97d6..fed2bd8bf6100670c724129e3b02eec511ec1bd5 100644
--- a/l10n/my_MM/lib.po
+++ b/l10n/my_MM/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "ဖိုင်သို့ပြန်သွားမည်"
 msgid "Selected files too large to generate zip file."
 msgstr "zip ဖိုင်အဖြစ်ပြုလုပ်ရန် ရွေးချယ်ထားသောဖိုင်များသည် အရမ်းကြီးလွန်းသည်"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "မဆုံးဖြတ်နိုင်ပါ။"
 
diff --git a/l10n/nb_NO/core.po b/l10n/nb_NO/core.po
index 6e9441621a620e0e8976f075c81b3ec3097c5c6b..e94e14b17589c664c66cff7cace6e349227eb503 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "år siden"
 msgid "Choose"
 msgstr "Velg"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nei"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po
index 04f955d523049a1c818128dc19e4f53adfe84f59..d3b6ec09dde7f2b4711d727bbd26b8b6b140b872 100644
--- a/l10n/nb_NO/files.po
+++ b/l10n/nb_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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Hans Nesse <>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nb_NO/files_encryption.po b/l10n/nb_NO/files_encryption.po
index a04caa639b23cc30777cc9187e0c8c937c13abae..0ff991d14d1128f0763d9bacbc3963d528fa5726 100644
--- a/l10n/nb_NO/files_encryption.po
+++ b/l10n/nb_NO/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: nb_NO\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/nb_NO/files_external.po b/l10n/nb_NO/files_external.po
index d2c6b1d7d9cb1f1e5793907d835a9eaad5406792..cdb5af275e92f76bd16555f2cc5e55b22c3f76a7 100644
--- a/l10n/nb_NO/files_external.po
+++ b/l10n/nb_NO/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Hans Nesse <>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nb_NO/files_sharing.po b/l10n/nb_NO/files_sharing.po
index 2f3440fbe3ce0521fbb12b224901122e1c51c3b4..bc0f67466113df8cc4fc01bc191bf8490a2e6d8c 100644
--- a/l10n/nb_NO/files_sharing.po
+++ b/l10n/nb_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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nb_NO/files_trashbin.po b/l10n/nb_NO/files_trashbin.po
index 5d5db8aea6592b83197ec522f475db8f36cc0154..605f48efbcb50ae2570b6e16de4899a0abddfcb7 100644
--- a/l10n/nb_NO/files_trashbin.po
+++ b/l10n/nb_NO/files_trashbin.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Hans Nesse <>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nb_NO/lib.po b/l10n/nb_NO/lib.po
index 4740e5bf6a715f2e5d8dc36b64f5a183990443a0..c799068e3c0b8163327a8d8d64723f271dde2a87 100644
--- a/l10n/nb_NO/lib.po
+++ b/l10n/nb_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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Tilbake til filer"
 msgid "Selected files too large to generate zip file."
 msgstr "De valgte filene er for store til å kunne generere ZIP-fil"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/nb_NO/settings.po b/l10n/nb_NO/settings.po
index 771b3f6720e9ebed80bfe258a93cb9c50d4dbe43..e19e1a0fcbd270f3df570617917545c94b44514f 100644
--- a/l10n/nb_NO/settings.po
+++ b/l10n/nb_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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nb_NO/user_ldap.po b/l10n/nb_NO/user_ldap.po
index 305489e54ae97290ee65fb713c51c71320049b62..7e92e2ca5b0dce0045a5fd901aae871013713843 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ne/files_encryption.po b/l10n/ne/files_encryption.po
index 9572c5a369a39fe2318f1bafba6ebf9285031c45..f9b5d81ccffa9f6f6a47cbb8eac8ee219efc76eb 100644
--- a/l10n/ne/files_encryption.po
+++ b/l10n/ne/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Nepali (http://www.transifex.com/projects/p/owncloud/language/ne/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ne\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/nl/core.po b/l10n/nl/core.po
index 0f6d1b8d33c13cf4b1bd56a76e0289fc6778816e..b41b7619eec22263a9d5d548d78dbca1961d11e8 100644
--- a/l10n/nl/core.po
+++ b/l10n/nl/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "jaar geleden"
 msgid "Choose"
 msgstr "Kies"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Annuleer"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Fout bij laden van bestandsselectie sjabloon"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nee"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/nl/files.po b/l10n/nl/files.po
index 665ddfa14783759bda872525158cf2284b1a4634..c7952ad45828dac17812fdb25972065938c66f0b 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nl/files_encryption.po b/l10n/nl/files_encryption.po
index eef239c4e0dcb56a7adb89116489854cfe9c8563..92b7cddfd69909a108cfb8153ac6f570bfcc8e7a 100644
--- a/l10n/nl/files_encryption.po
+++ b/l10n/nl/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 09:20+0000\n"
+"POT-Creation-Date: 2013-06-01 01:58+0200\n"
+"PO-Revision-Date: 2013-05-31 06:00+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "Sleutelherstel succesvol"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Herstelsleutel succesvol geactiveerd"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Kon niet"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Herstelsleutel succesvol gedeactiveerd"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/nl/files_external.po b/l10n/nl/files_external.po
index 75771bbb2ce8f722a2251c1e9ff70d6d2e823db8..48cf0b02cc59634bce2795724a37b05a2b115c18 100644
--- a/l10n/nl/files_external.po
+++ b/l10n/nl/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nl/files_sharing.po b/l10n/nl/files_sharing.po
index bf0c453f9fb93a35a27c37dad0e5b0d6aaee30c4..75f66ba8f5f5e214dd38890ad771b0e748bfba27 100644
--- a/l10n/nl/files_sharing.po
+++ b/l10n/nl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nl/files_trashbin.po b/l10n/nl/files_trashbin.po
index 16afccda05e27900c55557c2fb2950921d0709b2..70d7161817a218c6217c5cea1c0f2e2aa0fe7908 100644
--- a/l10n/nl/files_trashbin.po
+++ b/l10n/nl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/nl/lib.po b/l10n/nl/lib.po
index 4b1bff650ac2f972d94e0a8a6d67aba51416e1ed..772a6835765e228d3c327c4c07b61b1b0adca0cf 100644
--- a/l10n/nl/lib.po
+++ b/l10n/nl/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Terug naar bestanden"
 msgid "Selected files too large to generate zip file."
 msgstr "De geselecteerde bestanden zijn te groot om een zip bestand te maken."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "kon niet worden vastgesteld"
 
diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po
index 34be21db47d6594de7281ddd304b1fd11286ca67..47b47d57df3969fb3e2ae8b89c13eb898256a0bb 100644
--- a/l10n/nl/settings.po
+++ b/l10n/nl/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\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 5618478e18d0cb383184a2614b7601e0bd2cbdd5..abd7ffccfebab34e7b806f23bcbdd9472b5f6983 100644
--- a/l10n/nl/user_ldap.po
+++ b/l10n/nl/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: André Koot <meneer@tken.net>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
 "MIME-Version: 1.0\n"
@@ -359,7 +359,7 @@ msgid ""
 "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 ""
+msgstr "Standaard wordt de interne gebruikersnaam aangemaakt op basis van de UUID attribuut. Het zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft als beperking dat alleen deze tekens zijn toegestaan​​: [a-zA-Z0-9_.@- ]. Andere tekens worden vervangen door hun ASCII vertaling of gewoonweg weggelaten. Bij identieke namen wordt een nummer toegevoegd of verhoogd. De interne gebruikersnaam wordt gebruikt om een ​​gebruiker binnen het systeem te herkennen. Het is ook de standaardnaam voor de standaardmap van de gebruiker in ownCloud. Het is ook een vertaling voor externe URL's, bijvoorbeeld voor alle * DAV diensten. Met deze instelling kan het standaardgedrag worden overschreven. Om een soortgelijk gedrag te bereiken als van voor ownCloud 5, voer het gebruikersweergavenaam attribuut in in het volgende veld. Laat het leeg voor standaard gedrag. Veranderingen worden alleen toegepast op nieuw in kaart gebracht (toegevoegde) LDAP-gebruikers."
 
 #: templates/settings.php:103
 msgid "Internal Username Attribute:"
@@ -378,7 +378,7 @@ msgid ""
 "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 ""
+msgstr "Standaard herkent ownCloud het UUID attribuut automatisch. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij dit hierboven anders is aangegeven. U kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. U moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw in kaart gebrachte (toegevoegde) LDAP-gebruikers en-groepen."
 
 #: templates/settings.php:106
 msgid "UUID Attribute:"
@@ -401,7 +401,7 @@ msgid ""
 "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 ""
+msgstr "ownCloud maakt gebruik van gebruikersnamen om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, zal elke LDAP-gebruiker ook een interne gebruikersnaam krijgen. Dit vereist een mapping van de ownCloud gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Ook de 'DN' wordt gecached om het aantal LDAP transacties te verminderen, maar deze wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden door ownCloud. De interne ownCloud naam wordt overal in ownCloud gebruikt. Wissen van de koppeling zal overal overblijfsel laten staan. Het wissen van Mappings is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze Mappings nooit in een productieomgeving plaatsvinden. Maak ze alleen leeg in een test-of ontwikkelomgeving."
 
 #: templates/settings.php:109
 msgid "Clear Username-LDAP User Mapping"
diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po
index 749ec0e0de681dffc89fe56e9ed8e4ef13f27e10..c43a6c7137bd83ae8297f3a5694291c090a6b50f 100644
--- a/l10n/nn_NO/core.po
+++ b/l10n/nn_NO/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: unhammer <unhammer+dill@mm.st>\n"
 "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "år sidan"
 msgid "Choose"
 msgstr "Vel"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nei"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Greitt"
 
diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po
index 9d991b81ee72c715a8b06e951c152aefb3c1023d..3e649ef10d8511cf625609d5f344ca19934274bf 100644
--- a/l10n/nn_NO/files.po
+++ b/l10n/nn_NO/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: unhammer <unhammer+dill@mm.st>\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_encryption.po b/l10n/nn_NO/files_encryption.po
index 58f97c79b8468a3143e1441aef7353322791556e..03d96695bf52138f8d26f51d8c217cb3a8e9b706 100644
--- a/l10n/nn_NO/files_encryption.po
+++ b/l10n/nn_NO/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: nn_NO\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/nn_NO/files_external.po b/l10n/nn_NO/files_external.po
index 5acfe0e973af85264f4b389516723a4f6d16f93f..ff8d073d4d69cb863636f9d648612dd276896177 100644
--- a/l10n/nn_NO/files_external.po
+++ b/l10n/nn_NO/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -71,7 +71,7 @@ msgstr ""
 
 #: templates/settings.php:11
 msgid "Configuration"
-msgstr ""
+msgstr "Innstillingar"
 
 #: templates/settings.php:12
 msgid "Options"
diff --git a/l10n/nn_NO/files_sharing.po b/l10n/nn_NO/files_sharing.po
index 604ca0cc076aa7f7370e20b5cae66b401c414fd1..be0de366a60a80a3cbd04632e21c1b1e124de07b 100644
--- a/l10n/nn_NO/files_sharing.po
+++ b/l10n/nn_NO/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: unhammer <unhammer+dill@mm.st>\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_trashbin.po b/l10n/nn_NO/files_trashbin.po
index 08c1041f84fd4db0de3d37c2a7ab13c0ba8d02fe..96fe31c4038904e5aae5ed42f02e148ed4df05d1 100644
--- a/l10n/nn_NO/files_trashbin.po
+++ b/l10n/nn_NO/files_trashbin.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: unhammer <unhammer+dill@mm.st>\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 c10298ec0c4a4a5edcc13d2915f84a3da55e6d3f..c4da7d80ceaea11fcc155f65c9740c88a210be53 100644
--- a/l10n/nn_NO/lib.po
+++ b/l10n/nn_NO/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: unhammer <unhammer+dill@mm.st>\n"
 "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po
index 952398b31d64ea2b409448f9fab9013b05aed815..8fd884206149c6b12568ffa0d659f88be19ba4a3 100644
--- a/l10n/nn_NO/settings.po
+++ b/l10n/nn_NO/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/user_ldap.po b/l10n/nn_NO/user_ldap.po
index dd2468271737ebe34731f44c5e0323c60a3438c0..1be6b4e2852697046ec4bd1b854db9ad274edda3 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/user_webdavauth.po b/l10n/nn_NO/user_webdavauth.po
index 865055bbb14e4ad41a63112b967f5f91016ad0c5..37bb2ea522ad719f5a8209963123e1ee6d42dece 100644
--- a/l10n/nn_NO/user_webdavauth.po
+++ b/l10n/nn_NO/user_webdavauth.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# unhammer <unhammer+dill@mm.st>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-24 13:26+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-05-31 01:58+0200\n"
+"PO-Revision-Date: 2013-05-30 10:50+0000\n"
+"Last-Translator: unhammer <unhammer+dill@mm.st>\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"
@@ -19,15 +20,15 @@ msgstr ""
 
 #: templates/settings.php:3
 msgid "WebDAV Authentication"
-msgstr ""
+msgstr "WebDAV-autentisering"
 
 #: templates/settings.php:4
 msgid "URL: http://"
-msgstr ""
+msgstr "Nettadresse: http://"
 
 #: templates/settings.php:7
 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 ""
+msgstr "ownCloud sender brukarakkreditiv til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige."
diff --git a/l10n/oc/core.po b/l10n/oc/core.po
index e076c194adcb8acd5509c808d03382464018497f..84c9bf9a5d4bb1da351e2319dd228ed3edbcd6ad 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "ans a"
 msgid "Choose"
 msgstr "Causís"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Annula"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Òc"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Non"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "D'accòrdi"
 
diff --git a/l10n/oc/files.po b/l10n/oc/files.po
index cd1202e03b626003ee2acc4880ba16691569c0ad..e01f381dc5ffccf817aa34d29b220c85afa9e27c 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/oc/files_encryption.po b/l10n/oc/files_encryption.po
index 41e47db9981402e2e15ba85d90b3d6de97f78937..0277916620b5c4aeaf334a34d45e5f8d1c472aa8 100644
--- a/l10n/oc/files_encryption.po
+++ b/l10n/oc/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: oc\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/oc/files_external.po b/l10n/oc/files_external.po
index 9855f3f820f42d2e2007246f9a56e7d540b26f80..fddd4f32dda88eb9847852bd856b319cf1e64362 100644
--- a/l10n/oc/files_external.po
+++ b/l10n/oc/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/oc/files_sharing.po b/l10n/oc/files_sharing.po
index b21ca40bf63cb3be323a7f41ce7608ed2eba7d47..01588c6a8757347fc439fc8475eec62f11086970 100644
--- a/l10n/oc/files_sharing.po
+++ b/l10n/oc/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/oc/files_trashbin.po b/l10n/oc/files_trashbin.po
index f3bacd6a411507542c8e75cee06564cabf1a9dbe..2794272c013c47ffbb428bc32fd5209849b56008 100644
--- a/l10n/oc/files_trashbin.po
+++ b/l10n/oc/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/oc/lib.po b/l10n/oc/lib.po
index 62c2d94bd4f0eced384c9dd2555aecfb5aa461d9..42384905c8bc1b03c0a9b37eee4a8b9c83ba9899 100644
--- a/l10n/oc/lib.po
+++ b/l10n/oc/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Torna cap als fichièrs"
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/oc/settings.po b/l10n/oc/settings.po
index 7d2e9106dca0d087943c0334d410368fcf49c176..027b3d41795376674d66dc2ca87cfd5b896dbc39 100644
--- a/l10n/oc/settings.po
+++ b/l10n/oc/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/oc/user_ldap.po b/l10n/oc/user_ldap.po
index adde5eea2f79c4a018593ea7fa5f8531cf67f1a6..42404d1acfb6b9dc47b7af6d74a8af3e2d8466a2 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/core.po b/l10n/pl/core.po
index b0d00ed581144f08b531392ca38aa3438206ef9d..92aeb351a829e99ee727d285e656df70a796b503 100644
--- a/l10n/pl/core.po
+++ b/l10n/pl/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "lat temu"
 msgid "Choose"
 msgstr "Wybierz"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Błąd podczas ładowania pliku wybranego szablonu"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Tak"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nie"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/pl/files.po b/l10n/pl/files.po
index 878f34ab51ca67b9730307ac1966de95ec4789e5..ad1467f6580eeacb9b5a4aee98673a305ab96900 100644
--- a/l10n/pl/files.po
+++ b/l10n/pl/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: adbrand <pkwiecin@adbrand.pl>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/files_encryption.po b/l10n/pl/files_encryption.po
index 97b2749dab31fb2f5720456047e4c2640f189074..5c3311df32ba7e3c5cc7f92b0a306ae1de99e9fb 100644
--- a/l10n/pl/files_encryption.po
+++ b/l10n/pl/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 12:40+0000\n"
-"Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
+"Last-Translator: I Robot <owncloud-bot@tmit.eu>\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"
@@ -18,13 +18,23 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "Odzyskanie klucza udane"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Nie można"
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/pl/files_external.po b/l10n/pl/files_external.po
index a67366e02d7cfd61e38cabe7312a3d64ac73292a..11491689a2ebaeb00446a506a112dc69c3b34daa 100644
--- a/l10n/pl/files_external.po
+++ b/l10n/pl/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/files_sharing.po b/l10n/pl/files_sharing.po
index ef71b679d0df79c1a6a23e4a0ec3a66fdd86a067..a72cd5421d03a768f1a00157ee951e696ef416c5 100644
--- a/l10n/pl/files_sharing.po
+++ b/l10n/pl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/files_trashbin.po b/l10n/pl/files_trashbin.po
index 20b2c90aac36f15231cc58253c78cd8dde43edf2..32ea27e1c974a66abfa833bd2c2ba34dc99015b0 100644
--- a/l10n/pl/files_trashbin.po
+++ b/l10n/pl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/lib.po b/l10n/pl/lib.po
index b1636715342a5c209cefe8e887697a25af345a8e..2a4ebb7fe45e934aee59881aaaffd9c89283452f 100644
--- a/l10n/pl/lib.po
+++ b/l10n/pl/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Wróć do plików"
 msgid "Selected files too large to generate zip file."
 msgstr "Wybrane pliki są zbyt duże, aby wygenerować plik zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nie może zostać znaleziony"
 
diff --git a/l10n/pl/settings.po b/l10n/pl/settings.po
index 65918852d0d19e8accbaea653b950c157a4d5be9..0f7d1b635730d462011f4ecaaffb26b749d67a89 100644
--- a/l10n/pl/settings.po
+++ b/l10n/pl/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl/user_ldap.po b/l10n/pl/user_ldap.po
index 22a58546eb4b779ae11d9719eeb75922b204a6c0..7b17734c312fff3f2b490313e01f844bbf9f490d 100644
--- a/l10n/pl/user_ldap.po
+++ b/l10n/pl/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
 "MIME-Version: 1.0\n"
@@ -405,11 +405,11 @@ msgstr ""
 
 #: templates/settings.php:109
 msgid "Clear Username-LDAP User Mapping"
-msgstr ""
+msgstr "Czyść Mapowanie użytkownika LDAP"
 
 #: templates/settings.php:109
 msgid "Clear Groupname-LDAP Group Mapping"
-msgstr ""
+msgstr "Czyść Mapowanie nazwy grupy LDAP"
 
 #: templates/settings.php:111
 msgid "Test Configuration"
diff --git a/l10n/pl_PL/core.po b/l10n/pl_PL/core.po
index befad7e4b840b997d0f2717ea8e8dae064ba2bc6..7b4ef7d09a142828b32b646fcef8e5a073b04755 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/pl_PL/files.po b/l10n/pl_PL/files.po
index c7dddd6285bbcd1fcee9ce1c7fe5a9b415d1d022..be28fc5ba390cbb7d03f7ca685e93b2d963a6482 100644
--- a/l10n/pl_PL/files.po
+++ b/l10n/pl_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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pl_PL/files_encryption.po b/l10n/pl_PL/files_encryption.po
index 477facd06b5ef4e9911fc1bb5762cdb0cf6937ca..6b66a61ef662f2a864e9e033f42eab1ffde90277 100644
--- a/l10n/pl_PL/files_encryption.po
+++ b/l10n/pl_PL/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: pl_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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/pl_PL/lib.po b/l10n/pl_PL/lib.po
index aae16b7ef378df0268042941c0f4661c5d0add00..e91de0bce1e6f4f72dc0e74331a2e94ba6c8d7ae 100644
--- a/l10n/pl_PL/lib.po
+++ b/l10n/pl_PL/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/pl_PL/settings.po b/l10n/pl_PL/settings.po
index 53973dab92bbc58d04fe6a17da6f4cac8bc4e1b9..68a0e23721f235484ac3f0955b0966748cb4febe 100644
--- a/l10n/pl_PL/settings.po
+++ b/l10n/pl_PL/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_BR/core.po b/l10n/pt_BR/core.po
index 8b87118a7f8d38a9428ecf6c9b12f9c11b0bb048..5f184727c3ec07725289ea7b343f258bfcc4f3b6 100644
--- a/l10n/pt_BR/core.po
+++ b/l10n/pt_BR/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "anos atrás"
 msgid "Choose"
 msgstr "Escolha"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Template selecionador Erro ao carregar arquivo"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sim"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Não"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po
index e0dd078b5501aa63359e5d2f8c42d996dd05e315..7a4deb445f2f2f91128fc04289d42d9207f0621b 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\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/files_encryption.po b/l10n/pt_BR/files_encryption.po
index d36fa35c6aac24b125bb822259d2d2c6991ad679..406cccd3c9dced72c4d957e7e606d97d0ec723ca 100644
--- a/l10n/pt_BR/files_encryption.po
+++ b/l10n/pt_BR/files_encryption.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-27 02:00+0200\n"
-"PO-Revision-Date: 2013-05-26 19:40+0000\n"
+"POT-Creation-Date: 2013-06-01 01:58+0200\n"
+"PO-Revision-Date: 2013-05-31 12:00+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "Recuperação de chave com sucesso"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr "Recuperação de chave habilitada com sucesso"
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Não foi possível"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!"
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr "Recuperação de chave desabilitada com sucesso"
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!"
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/pt_BR/files_external.po b/l10n/pt_BR/files_external.po
index a87afbd02fd928ee84b9dc95292711e49e771d2d..5ec6ee8a8a54fb7179331394b48b7b1a3519e58e 100644
--- a/l10n/pt_BR/files_external.po
+++ b/l10n/pt_BR/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\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/files_sharing.po b/l10n/pt_BR/files_sharing.po
index fb940432573bb781aabc40c26fac24f408ef367f..6fa030aecfdc3ffe43a8d5566adf4d97e585f12b 100644
--- a/l10n/pt_BR/files_sharing.po
+++ b/l10n/pt_BR/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/files_trashbin.po b/l10n/pt_BR/files_trashbin.po
index 29614f24ec8984f0feb2da9dc813df6b6c9cef09..a879b7924b423ee748c88c444ae90d860f4eee77 100644
--- a/l10n/pt_BR/files_trashbin.po
+++ b/l10n/pt_BR/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/lib.po b/l10n/pt_BR/lib.po
index 24a15bf24e8b1c7a77a049a9b9cf94b97838388d..a79218048710842bec853455e68a17fdbdfda37d 100644
--- a/l10n/pt_BR/lib.po
+++ b/l10n/pt_BR/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Voltar para Arquivos"
 msgid "Selected files too large to generate zip file."
 msgstr "Arquivos selecionados são muito grandes para gerar arquivo zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "não pôde ser determinado"
 
diff --git a/l10n/pt_BR/settings.po b/l10n/pt_BR/settings.po
index 2ef1d91b7f9b76212fdab56db951c1168ba04591..721a969b1c0ff248db34f2f2991f10d5f1c00e29 100644
--- a/l10n/pt_BR/settings.po
+++ b/l10n/pt_BR/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\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 3be1ba307a060c37aee04b06aaa5b2698f2b6c8a..ae1906c7ede102097db88b9ef5168044888b7fd9 100644
--- a/l10n/pt_BR/user_ldap.po
+++ b/l10n/pt_BR/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Flávio Veras <flaviove@gmail.com>\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_PT/core.po b/l10n/pt_PT/core.po
index f2d3fe31ac209750d93090891e3497ffddc365a2..d21b78031856aa51383c3f3b39d0a1df3a12be7b 100644
--- a/l10n/pt_PT/core.po
+++ b/l10n/pt_PT/core.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: bmgmatias <bmgmatias@gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
@@ -218,23 +218,23 @@ msgstr "anos atrás"
 msgid "Choose"
 msgstr "Escolha"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "Erro ao carregar arquivo do separador modelo"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Sim"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Não"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po
index 593fef2a7d4e259c2d1e4066a3eec0c645e93e94..c0f7e43c7ebd622c7c429f91c3eb3ceae4fbcf4f 100644
--- a/l10n/pt_PT/files.po
+++ b/l10n/pt_PT/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: bmgmatias <bmgmatias@gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_PT/files_encryption.po b/l10n/pt_PT/files_encryption.po
index b33edebcebd1d29cee2197fffdf331f1b6e350aa..0cba5c44e3850714fc6b20045b6d2a32c47ec97a 100644
--- a/l10n/pt_PT/files_encryption.po
+++ b/l10n/pt_PT/files_encryption.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 08:40+0000\n"
-"Last-Translator: Helder Meneses <helder.meneses@gmail.com>\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
+"Last-Translator: I Robot <owncloud-bot@tmit.eu>\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"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: pt_PT\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "Não foi possivel"
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/pt_PT/files_external.po b/l10n/pt_PT/files_external.po
index 3b8e0344acda9aa877e62f848653b5cea47ea758..92224eb30cbd31d70c0b807f19968fd6e7e0d5f8 100644
--- a/l10n/pt_PT/files_external.po
+++ b/l10n/pt_PT/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Mouxy <daniel@mouxy.net>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_PT/files_sharing.po b/l10n/pt_PT/files_sharing.po
index 0928f362d48103e10a218b4ce3dcf27ea2d0f5fb..71503f3f05963467ea9ffafc2c41959d364883d6 100644
--- a/l10n/pt_PT/files_sharing.po
+++ b/l10n/pt_PT/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_PT/files_trashbin.po b/l10n/pt_PT/files_trashbin.po
index 5f61ffa40132c162751f2da64b00ffe54adbddd4..bbc31c3a3fe5c2e3b3bb6b1958b6801d59bedb08 100644
--- a/l10n/pt_PT/files_trashbin.po
+++ b/l10n/pt_PT/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_PT/lib.po b/l10n/pt_PT/lib.po
index bc818d0bc4a7a63c9343206b359275a128c875eb..b4cad793065f06735411c95e1169a34fa605e69b 100644
--- a/l10n/pt_PT/lib.po
+++ b/l10n/pt_PT/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Helder Meneses <helder.meneses@gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Voltar a Ficheiros"
 msgid "Selected files too large to generate zip file."
 msgstr "Os ficheiros seleccionados são grandes demais para gerar um ficheiro zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "Não foi possível determinar"
 
diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po
index 0acb1be490415b80ab345340ca008c72456603d6..14686edfb0d0fd1d46a2ddc17650c4702ea1f0ca 100644
--- a/l10n/pt_PT/settings.po
+++ b/l10n/pt_PT/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: bmgmatias <bmgmatias@gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/pt_PT/user_ldap.po b/l10n/pt_PT/user_ldap.po
index dfe31a440d17046326973e907e3d11f1a1dc5da6..dbe72a43945e08bb1fe7ebce07529c384ab480de 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/core.po b/l10n/ro/core.po
index a46a1aca4c538b6271b142d402a9f6ed13c38a3f..1785acbaf04ddcbd7549f298207910b4850f6356 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "ani în urmă"
 msgid "Choose"
 msgstr "Alege"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Anulare"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Da"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nu"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/ro/files.po b/l10n/ro/files.po
index d4b63cc800a0a6a02f37ea3e6f6c4d20951e6aae..37d437a7e95ea388d48f662030a20fd38cf18a4e 100644
--- a/l10n/ro/files.po
+++ b/l10n/ro/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/files_encryption.po b/l10n/ro/files_encryption.po
index bd84119a43ae8772e80ceba09dded49dc77262e1..b3f31e838719ca40d3d936034e74732a2551957b 100644
--- a/l10n/ro/files_encryption.po
+++ b/l10n/ro/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ro\n"
 "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ro/files_external.po b/l10n/ro/files_external.po
index 504dfa2cbf78cdfe580dd714f3b1a8d630832744..fec3d4c6acbfd51bddec35236ab2699ec6578974 100644
--- a/l10n/ro/files_external.po
+++ b/l10n/ro/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/files_sharing.po b/l10n/ro/files_sharing.po
index 957ea6fcca39be7ebb35290bc43734bd10f23db1..da3c59ddf7ad1e5bb4ac60c7a78cae099dd38013 100644
--- a/l10n/ro/files_sharing.po
+++ b/l10n/ro/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/files_trashbin.po b/l10n/ro/files_trashbin.po
index c84c5ed914309f9f4c1f363dc797002973d100e0..524c8b2c1ce8c08dafb13271a3fa9b998aa5ae1f 100644
--- a/l10n/ro/files_trashbin.po
+++ b/l10n/ro/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/lib.po b/l10n/ro/lib.po
index 682212dc60b74a668407f4d391288cfc690aba13..80808f2bdf187c0c3c26f4dcbcf3bcc1ca066b1d 100644
--- a/l10n/ro/lib.po
+++ b/l10n/ro/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Înapoi la fișiere"
 msgid "Selected files too large to generate zip file."
 msgstr "Fișierele selectate sunt prea mari pentru a genera un fișier zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nu poate fi determinat"
 
diff --git a/l10n/ro/settings.po b/l10n/ro/settings.po
index b6135be71ac75ef8e4677d2f0d6a0989eb9ca9f0..3bcdb939b06ac4bed277b96b12e54edddc74c579 100644
--- a/l10n/ro/settings.po
+++ b/l10n/ro/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ro/user_ldap.po b/l10n/ro/user_ldap.po
index 4c88a49ac22ee869817433ac741d3dc248339559..c5709c9e502404bfbbdaf884e7189b7984b88219 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/core.po b/l10n/ru/core.po
index e829a86788156da07d783b73c76723529ff2c9df..f62009a69c25664a9de7a5c2b3ec0da5f13e8110 100644
--- a/l10n/ru/core.po
+++ b/l10n/ru/core.po
@@ -5,13 +5,14 @@
 # Translators:
 # foool <andrglad@mail.ru>, 2013
 # Vyacheslav Muranov <s@neola.ru>, 2013
+# Langaru <langaru@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
-"Last-Translator: foool <andrglad@mail.ru>\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
+"Last-Translator: Langaru <langaru@gmail.com>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -218,23 +219,23 @@ msgstr "несколько лет назад"
 msgid "Choose"
 msgstr "Выбрать"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Отменить"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
-msgstr ""
+msgstr "Ошибка при загрузке файла выбора  шаблона"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Да"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Нет"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ок"
 
diff --git a/l10n/ru/files.po b/l10n/ru/files.po
index 902a842aad5faed53fafabbf0aa5c7592cd10ffd..3c8d873ceb7a1f12bcbd730ffd496225c4c1ddbf 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/files_encryption.po b/l10n/ru/files_encryption.po
index 8bb2c179d5e43af58e8c9762aa6a405cf775e74e..3cb93ae3108861c9965c2b04ddd2cb5c9a39eed5 100644
--- a/l10n/ru/files_encryption.po
+++ b/l10n/ru/files_encryption.po
@@ -3,12 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Ант По <du6egub@gmail.com>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
@@ -17,21 +18,31 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
-msgstr ""
+msgstr "Пароль изменен удачно."
 
 #: ajax/changeRecoveryPassword.php:51
 msgid "Could not change the password. Maybe the old password was not correct."
-msgstr ""
+msgstr "Невозможно изменить пароль. Возможно старый пароль не был верен."
 
 #: js/settings-admin.js:11
 msgid "Saving..."
@@ -44,50 +55,50 @@ msgstr "Шифрование"
 #: templates/settings-admin.php:9
 msgid ""
 "Enable encryption passwords recovery key (allow sharing to recovery key):"
-msgstr ""
+msgstr "Включить шифрование пароля ключа восстановления (понадобится разрешение для восстановления ключа)"
 
 #: templates/settings-admin.php:13
 msgid "Recovery account password"
-msgstr ""
+msgstr "Восстановление пароля учетной записи"
 
 #: templates/settings-admin.php:20 templates/settings-personal.php:18
 msgid "Enabled"
-msgstr ""
+msgstr "Включено"
 
 #: templates/settings-admin.php:28 templates/settings-personal.php:26
 msgid "Disabled"
-msgstr ""
+msgstr "Отключено"
 
 #: templates/settings-admin.php:32
 msgid "Change encryption passwords recovery key:"
-msgstr ""
+msgstr "Изменить шифрование пароля ключа восстановления:"
 
 #: templates/settings-admin.php:39
 msgid "Old Recovery account password"
-msgstr ""
+msgstr "Старое Восстановление пароля учетной записи"
 
 #: templates/settings-admin.php:46
 msgid "New Recovery account password"
-msgstr ""
+msgstr "Новое Восстановление пароля учетной записи"
 
 #: templates/settings-admin.php:51
 msgid "Change Password"
-msgstr ""
+msgstr "Изменить пароль"
 
 #: templates/settings-personal.php:9
 msgid "Enable password recovery by sharing all files with your administrator:"
-msgstr ""
+msgstr "Включить восстановление пароля путем доступа Вашего администратора ко всем файлам"
 
 #: templates/settings-personal.php:11
 msgid ""
 "Enabling this option will allow you to reobtain access to your encrypted "
 "files if your password is lost"
-msgstr ""
+msgstr "Включение этой опции позволит вам получить доступ к зашифрованным файлам, в случае утери пароля"
 
 #: templates/settings-personal.php:27
 msgid "File recovery settings updated"
-msgstr ""
+msgstr "Настройки файла восстановления обновлены"
 
 #: templates/settings-personal.php:28
 msgid "Could not update file recovery"
-msgstr ""
+msgstr "Невозможно обновить файл восстановления"
diff --git a/l10n/ru/files_external.po b/l10n/ru/files_external.po
index 2979a0dcdff906783f1b266fc414a92b446206dd..bd2a52616df9415894add07a41886b2de238e26d 100644
--- a/l10n/ru/files_external.po
+++ b/l10n/ru/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/files_sharing.po b/l10n/ru/files_sharing.po
index 5a6ac3068b4bdd0c783b8ebca21a55aa847c7ea9..26b75dfce7c6a626a8a6720c47cc12d56bb5210d 100644
--- a/l10n/ru/files_sharing.po
+++ b/l10n/ru/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/files_trashbin.po b/l10n/ru/files_trashbin.po
index d35cac9f1b17d7bcd014838b7ef40fd9d6bc4c23..783b6edd7dca982873913dacea98353655820f9a 100644
--- a/l10n/ru/files_trashbin.po
+++ b/l10n/ru/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/lib.po b/l10n/ru/lib.po
index bc61f7527a24c55a5c11f9e07ca210e4acee0410..293f03f39701fb0cc912ad9b9aac4d58e7850035 100644
--- a/l10n/ru/lib.po
+++ b/l10n/ru/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Назад к файлам"
 msgid "Selected files too large to generate zip file."
 msgstr "Выбранные файлы слишком велики, чтобы создать zip файл."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "Невозможно установить"
 
diff --git a/l10n/ru/settings.po b/l10n/ru/settings.po
index 1aed7621ff32b5e8e18629cf66cb5edca9868ede..4e774779e2411c7d86b2ecd16e8301ebb68a247c 100644
--- a/l10n/ru/settings.po
+++ b/l10n/ru/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru/user_ldap.po b/l10n/ru/user_ldap.po
index d2497b0b5b0049317cbeb2640b4f5e2f9d69358b..597c639b614f072d49ae0433d00bdba0735ea855 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru_RU/core.po b/l10n/ru_RU/core.po
index 4d23f02a7d435ed482a49d4ca7d5028a3dec2623..06111cdf7c6ce9db02e06b9b4e3d5e9ce200339f 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Отмена"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/ru_RU/files.po b/l10n/ru_RU/files.po
index 31dc17ca75e923a4453bfbf2b25db0c562136e79..097c3e00ba52324a0a277596148db622d922d297 100644
--- a/l10n/ru_RU/files.po
+++ b/l10n/ru_RU/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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:00+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
diff --git a/l10n/ru_RU/files_encryption.po b/l10n/ru_RU/files_encryption.po
index 30ad511625aa129cee0f6f4279cdfabec45d3338..4690ff89165ba138409b45be7e365d54666c3bad 100644
--- a/l10n/ru_RU/files_encryption.po
+++ b/l10n/ru_RU/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:30+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ru_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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ru_RU/files_external.po b/l10n/ru_RU/files_external.po
index c8cf44a9ec63136c7dd29ac4c8ed3c10727c8955..96563330fbce198562678d83e5a05ca6d2636822 100644
--- a/l10n/ru_RU/files_external.po
+++ b/l10n/ru_RU/files_external.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
diff --git a/l10n/ru_RU/files_sharing.po b/l10n/ru_RU/files_sharing.po
index 7dba0f8b8e297591a05b6143cd7c65384e9c2ec2..2c8af92a3a6f50867d083821256d7b9beaf68a2a 100644
--- a/l10n/ru_RU/files_sharing.po
+++ b/l10n/ru_RU/files_sharing.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
diff --git a/l10n/ru_RU/files_trashbin.po b/l10n/ru_RU/files_trashbin.po
index 5f72d42abfe87cf59bc84bac047d5716742767af..958cf6f2dd639a28b1bdc6b28cd8bbcbc2871c37 100644
--- a/l10n/ru_RU/files_trashbin.po
+++ b/l10n/ru_RU/files_trashbin.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:01+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
diff --git a/l10n/ru_RU/lib.po b/l10n/ru_RU/lib.po
index 42c18b5fe4cae6315db840aa40e02fe2a7a60656..1172cc70fe77b01730df4c7ae1318e690d88af46 100644
--- a/l10n/ru_RU/lib.po
+++ b/l10n/ru_RU/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ru_RU/settings.po b/l10n/ru_RU/settings.po
index 4f8ab2e5e598f87ccb9467e427c48b60b6962ef7..34972e5304e5b241f1f8fbc08c282683f3c4108e 100644
--- a/l10n/ru_RU/settings.po
+++ b/l10n/ru_RU/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ru_RU/user_ldap.po b/l10n/ru_RU/user_ldap.po
index 98ba4003b38cb00b446500b770e587f4c40ced21..42a5e0fe723d58bafefd42a665e46f4d9400bd60 100644
--- a/l10n/ru_RU/user_ldap.po
+++ b/l10n/ru_RU/user_ldap.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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
 "PO-Revision-Date: 2013-04-26 08:02+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
diff --git a/l10n/si_LK/core.po b/l10n/si_LK/core.po
index 685ae64d51b608926d43c7db0da1ad22137b1fb5..3a820237c42bdbe7c14916eac3b2ca793e8759c1 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "අවුරුදු කීපයකට පෙර"
 msgid "Choose"
 msgstr "තෝරන්න"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "එපා"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "ඔව්"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "එපා"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "හරි"
 
diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po
index a10c1968f7f15a700915d35de1df91b264b58b54..96681697da4ddf93282a82be035ad81290a88105 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/si_LK/files_encryption.po b/l10n/si_LK/files_encryption.po
index 62e99d00ef791c6a2cf5e1f9aedcacc0bca998fd..02b12790e76fd96ce318a04bb0ae6abf8c6388c8 100644
--- a/l10n/si_LK/files_encryption.po
+++ b/l10n/si_LK/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: si_LK\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/si_LK/files_external.po b/l10n/si_LK/files_external.po
index 938ba94a1ccb7699d260d2d3ba63198d52236673..73a6fe826e69c57498a05afb2b629cf9a9aeda06 100644
--- a/l10n/si_LK/files_external.po
+++ b/l10n/si_LK/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/si_LK/files_sharing.po b/l10n/si_LK/files_sharing.po
index 20ff5b62361c1225f2b7c940260c43367cb4c155..8f47f1b79b7944dcc07becb00181c755a1593242 100644
--- a/l10n/si_LK/files_sharing.po
+++ b/l10n/si_LK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/si_LK/files_trashbin.po b/l10n/si_LK/files_trashbin.po
index 2d3e7a5da27331019605248f780d140f9b642590..e024e00af13958c6b3cfd82668a69fb6b03ba4d3 100644
--- a/l10n/si_LK/files_trashbin.po
+++ b/l10n/si_LK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/si_LK/lib.po b/l10n/si_LK/lib.po
index c94870e2a3a79d0a172d9f17cd1bad89fa24a44b..072c2add51f2ddd10c27db71fb0dbd46b3c3edcd 100644
--- a/l10n/si_LK/lib.po
+++ b/l10n/si_LK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "ගොනු වෙතට නැවත යන්න"
 msgid "Selected files too large to generate zip file."
 msgstr "තෝරාගත් ගොනු ZIP ගොනුවක් තැනීමට විශාල වැඩිය."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/si_LK/settings.po b/l10n/si_LK/settings.po
index 009451dfd9b7fd7084d400cc373bd920132e42b3..64e42fb142b07bbf1346fe664048f218f95d4a66 100644
--- a/l10n/si_LK/settings.po
+++ b/l10n/si_LK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/si_LK/user_ldap.po b/l10n/si_LK/user_ldap.po
index d46c4621a09fc964ac38423f2cbd6894402a8da5..bf7836dc057fdac6dc42255bb6e7ec27fe71efd5 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sk/files_encryption.po b/l10n/sk/files_encryption.po
index d955fe70f3af4b5f6f319f06554ef2a65312de76..b91e38b4ebf15d8980ae62451b6e879c2f243314 100644
--- a/l10n/sk/files_encryption.po
+++ b/l10n/sk/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: sk\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po
index 87df854ad03fdac8e7ef6e4b15d7a1e629150a38..2324455d4f925b6b21dd55bd75b5c86a86218f30 100644
--- a/l10n/sk_SK/core.po
+++ b/l10n/sk_SK/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: mhh <marian.hvolka@stuba.sk>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "pred rokmi"
 msgid "Choose"
 msgstr "Výber"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Zrušiť"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Áno"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nie"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po
index 3b599ed29fe582394effd6dab89606c93987d4ba..f3446dad3f47e2b28780548401543dc30207a78f 100644
--- a/l10n/sk_SK/files.po
+++ b/l10n/sk_SK/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: mhh <marian.hvolka@stuba.sk>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sk_SK/files_encryption.po b/l10n/sk_SK/files_encryption.po
index b4ca188428765a9353a9fe334175a279a4632cb0..f0b5225a7cb90f01e21ba2bbaff260e89d0064a1 100644
--- a/l10n/sk_SK/files_encryption.po
+++ b/l10n/sk_SK/files_encryption.po
@@ -3,12 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# mhh <marian.hvolka@stuba.sk>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
@@ -17,17 +18,27 @@ msgstr ""
 "Language: sk_SK\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
-msgstr ""
+msgstr "Heslo úspešne zmenené."
 
 #: ajax/changeRecoveryPassword.php:51
 msgid "Could not change the password. Maybe the old password was not correct."
@@ -52,15 +63,15 @@ msgstr ""
 
 #: templates/settings-admin.php:20 templates/settings-personal.php:18
 msgid "Enabled"
-msgstr ""
+msgstr "Povolené"
 
 #: templates/settings-admin.php:28 templates/settings-personal.php:26
 msgid "Disabled"
-msgstr ""
+msgstr "Zakázané"
 
 #: templates/settings-admin.php:32
 msgid "Change encryption passwords recovery key:"
-msgstr ""
+msgstr "Zmeniť šifrovacie heslo obnovovacieho kľúča:"
 
 #: templates/settings-admin.php:39
 msgid "Old Recovery account password"
@@ -72,7 +83,7 @@ msgstr ""
 
 #: templates/settings-admin.php:51
 msgid "Change Password"
-msgstr ""
+msgstr "Zmeniť heslo"
 
 #: templates/settings-personal.php:9
 msgid "Enable password recovery by sharing all files with your administrator:"
@@ -86,8 +97,8 @@ msgstr ""
 
 #: templates/settings-personal.php:27
 msgid "File recovery settings updated"
-msgstr ""
+msgstr "Nastavenie obnovy súborov aktualizované"
 
 #: templates/settings-personal.php:28
 msgid "Could not update file recovery"
-msgstr ""
+msgstr "Nemožno aktualizovať obnovenie súborov"
diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po
index 0ad5661e5169c664deaa9d7a538fe6e53c7a37cd..637feb1c20cbe72229076266218ef9690297d584 100644
--- a/l10n/sk_SK/files_external.po
+++ b/l10n/sk_SK/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: mhh <marian.hvolka@stuba.sk>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sk_SK/files_sharing.po b/l10n/sk_SK/files_sharing.po
index 20a5ac2c2040e2c1675156e5b685ef83b2a81309..cb69a040d959dda1cb35129e6a16f85604ddb8bd 100644
--- a/l10n/sk_SK/files_sharing.po
+++ b/l10n/sk_SK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sk_SK/files_trashbin.po b/l10n/sk_SK/files_trashbin.po
index 768b12835f715d709ea35861d8ab4e541bd517c9..28114d1724b98ab727699798850a5e954164025c 100644
--- a/l10n/sk_SK/files_trashbin.po
+++ b/l10n/sk_SK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sk_SK/lib.po b/l10n/sk_SK/lib.po
index 0d064790a79806b67fe52072671151e7d7c06da7..1fe14c6c0c388796336b7c9e1fbef0cf2e2daa41 100644
--- a/l10n/sk_SK/lib.po
+++ b/l10n/sk_SK/lib.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# mhh <marian.hvolka@stuba.sk>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
+"Last-Translator: mhh <marian.hvolka@stuba.sk>\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"
@@ -57,7 +58,7 @@ msgstr "Späť na súbory"
 msgid "Selected files too large to generate zip file."
 msgstr "Zvolené súbory sú príliš veľké na vygenerovanie zip súboru."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nedá sa zistiť"
 
@@ -123,7 +124,7 @@ msgstr "Musíte zadať jestvujúci účet alebo administrátora."
 
 #: setup.php:155
 msgid "Oracle connection could not be established"
-msgstr ""
+msgstr "Nie je možné pripojiť sa k Oracle"
 
 #: setup.php:237
 msgid "MySQL username and/or password not valid"
diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po
index 76782a0e82805c6b579814d02c9f5d550fac8d45..85f9ff21ce813647300255c8c79d1993f2ab1708 100644
--- a/l10n/sk_SK/settings.po
+++ b/l10n/sk_SK/settings.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
+"Last-Translator: mhh <marian.hvolka@stuba.sk>\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"
@@ -466,7 +466,7 @@ msgstr "Vytvoriť"
 
 #: templates/users.php:34
 msgid "Admin Recovery Password"
-msgstr ""
+msgstr "Obnovenie hesla administrátora"
 
 #: templates/users.php:38
 msgid "Default Storage"
diff --git a/l10n/sk_SK/user_ldap.po b/l10n/sk_SK/user_ldap.po
index 83a8797fd7643b850898bbafcc428133dcd7d96c..b0224011f40d9ecb25cb0ef2bce2b8107f963638 100644
--- a/l10n/sk_SK/user_ldap.po
+++ b/l10n/sk_SK/user_ldap.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# mhh <marian.hvolka@stuba.sk>, 2013
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2013-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
-"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
+"Last-Translator: mhh <marian.hvolka@stuba.sk>\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"
@@ -19,7 +20,7 @@ msgstr ""
 
 #: ajax/clearMappings.php:34
 msgid "Failed to clear the mappings."
-msgstr ""
+msgstr "Nepodarilo sa vymazať mapovania."
 
 #: ajax/deleteConfiguration.php:34
 msgid "Failed to delete the server configuration"
@@ -59,7 +60,7 @@ msgstr "Nemožno pridať nastavenie servera"
 
 #: js/settings.js:111
 msgid "mappings cleared"
-msgstr ""
+msgstr "mapovanie vymazané"
 
 #: js/settings.js:112
 msgid "Success"
@@ -342,7 +343,7 @@ msgstr "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte
 
 #: templates/settings.php:101
 msgid "Internal Username"
-msgstr ""
+msgstr "Interné používateľské meno"
 
 #: templates/settings.php:102
 msgid ""
@@ -358,15 +359,15 @@ msgid ""
 "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 ""
+msgstr "V predvolenom nastavení bude interné používateľské meno vytvorené z UUID atribútu. Zabezpečí sa to, že používateľské meno bude jedinečné a znaky nemusia byť prevedené. Interné meno má obmedzenie, iba tieto znaky sú povolené: [a-zA-Z0-9_ @ -.]. Ostatné znaky sú nahradené ich ASCII alebo jednoducho vynechané. Pri kolíziách bude číslo byť pridané / odobrané. Interné používateľské meno sa používa na identifikáciu používateľa interne. Je to tiež predvolený názov používateľského domovského priečinka v ownCloud. To je tiež port vzdialeného URL, napríklad pre všetky služby * DAV. S týmto nastavením sa dá prepísať predvolené správanie. Pre dosiahnutie podobného správania sa ako pred ownCloud 5 zadajte atribút zobrazenia používateľského mena v tomto poli. Ponechajte prázdne pre predvolené správanie. Zmeny budú mať vplyv iba na novo mapovaných (pridaných) LDAP používateľov."
 
 #: templates/settings.php:103
 msgid "Internal Username Attribute:"
-msgstr ""
+msgstr "Atribút interného používateľského mena:"
 
 #: templates/settings.php:104
 msgid "Override UUID detection"
-msgstr ""
+msgstr "Prepísať UUID detekciu"
 
 #: templates/settings.php:105
 msgid ""
@@ -381,7 +382,7 @@ msgstr ""
 
 #: templates/settings.php:106
 msgid "UUID Attribute:"
-msgstr ""
+msgstr "UUID atribút:"
 
 #: templates/settings.php:107
 msgid "Username-LDAP User Mapping"
diff --git a/l10n/sl/core.po b/l10n/sl/core.po
index ec8f78e159bdc3674bfe9c734fdb79bc117a7975..e80889bc91d701441e6da4fd4f496f1c502a6812 100644
--- a/l10n/sl/core.po
+++ b/l10n/sl/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: mateju <>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "let nazaj"
 msgid "Choose"
 msgstr "Izbor"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Prekliči"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Da"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ne"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "V redu"
 
diff --git a/l10n/sl/files.po b/l10n/sl/files.po
index fcc5ea5565b4d2fe231b99f488c38e27b0ea84df..aa07ee986036434b0dadb0a3755cdaba7156ed1a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sl/files_encryption.po b/l10n/sl/files_encryption.po
index 00706df23f5624c29e195f48d257d715b94048ed..b690829c5b1cc1fc8d1e802ae651353a91cd0687 100644
--- a/l10n/sl/files_encryption.po
+++ b/l10n/sl/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sl/files_external.po b/l10n/sl/files_external.po
index 291a7418628bcf26f0d12158d79149613e622567..17bd9c211403aa0138ea0da957019b006469e364 100644
--- a/l10n/sl/files_external.po
+++ b/l10n/sl/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: mateju <>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sl/files_sharing.po b/l10n/sl/files_sharing.po
index 15584b4a7654217c87440fbe005faa43aca1a006..0a8734395c408b52814b4b68ed8be1ff3595aef3 100644
--- a/l10n/sl/files_sharing.po
+++ b/l10n/sl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sl/files_trashbin.po b/l10n/sl/files_trashbin.po
index 4bb55164c070b9f538c7f1b93db1aba08d32318f..5d5ab4fc15d6ce0cfe6b3ee121535f884cf9f545 100644
--- a/l10n/sl/files_trashbin.po
+++ b/l10n/sl/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sl/lib.po b/l10n/sl/lib.po
index 58494c9eebe4286ce1ed37216dec3ae660d15285..093c05c6aa99c5d051cf771ac8ae3f1fd4ea6b16 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Nazaj na datoteke"
 msgid "Selected files too large to generate zip file."
 msgstr "Izbrane datoteke so prevelike za ustvarjanje datoteke arhiva zip."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ni mogoče določiti"
 
diff --git a/l10n/sl/settings.po b/l10n/sl/settings.po
index fb2f15a44d12429c351695fc8ea470f7dd14272f..5fe4dff79e1b283e603e4d37fda0ea92e7a0da94 100644
--- a/l10n/sl/settings.po
+++ b/l10n/sl/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sl/user_ldap.po b/l10n/sl/user_ldap.po
index 577b74fae85d98d34047b8620da6d9216a142fc4..c6b3dec4e80cf12fb9e209f370254414da0aaa3d 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/core.po b/l10n/sq/core.po
index eca1ddc916b8cd855669b953ba61cfc2e7424123..4fdc47f3c7748d3529c626b60e37c67b08264d95 100644
--- a/l10n/sq/core.po
+++ b/l10n/sq/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "vite më parë"
 msgid "Choose"
 msgstr "Zgjidh"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Anulo"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Po"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Jo"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Në rregull"
 
diff --git a/l10n/sq/files.po b/l10n/sq/files.po
index 60da4cc910cb064ab7dcaf3747e2670193528ddc..724c3d496d263d2b0caf8cb63138c4a0f39e1f38 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/files_encryption.po b/l10n/sq/files_encryption.po
index 9e60c9f781475c7ee35d0c02c24ff241825a3a16..bd48080f91fc44b2f22542a5c58f3563352d7ffe 100644
--- a/l10n/sq/files_encryption.po
+++ b/l10n/sq/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: sq\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sq/files_external.po b/l10n/sq/files_external.po
index c8bae9d595c3b0bb179674c7c5b2a89fe1839dfd..8ce7fabac0f9e9ccfe63f28fac6b1f37ec1897a8 100644
--- a/l10n/sq/files_external.po
+++ b/l10n/sq/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/files_sharing.po b/l10n/sq/files_sharing.po
index b4e23f0e2532eed50981b79a0c0d253c6e919697..4615a7ca8bd7b78139fd7ae48b637359f1b043e8 100644
--- a/l10n/sq/files_sharing.po
+++ b/l10n/sq/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/files_trashbin.po b/l10n/sq/files_trashbin.po
index b3c57fc8d4f40d18aef352be86681d6c3c66e0a8..5a1dfc686ec695cb8f75e5c6c7cab87016300a7d 100644
--- a/l10n/sq/files_trashbin.po
+++ b/l10n/sq/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/lib.po b/l10n/sq/lib.po
index eb4f46eec0259f7a782ba491ff28fbf14a8e2262..dc1f8a07956c54f6cf8c575cb95553f6cab89416 100644
--- a/l10n/sq/lib.po
+++ b/l10n/sq/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Kthehu tek skedarët"
 msgid "Selected files too large to generate zip file."
 msgstr "Skedarët e selektuar janë shumë të mëdhenj për të krijuar një skedar ZIP."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "nuk u vendos dot"
 
diff --git a/l10n/sq/settings.po b/l10n/sq/settings.po
index 38c9b1857c92f21b55c84ae3cb7cd83caa7a8318..ca60e24747551caf597b1f5423f674741ddc7c3d 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sq/user_ldap.po b/l10n/sq/user_ldap.po
index f9ed96ca3db036ee51c0a0eae01fe84b7082aa45..0b78efc5c470136224a38d60249bec899627410a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/core.po b/l10n/sr/core.po
index 8c6ae651ed40bb22c6d528f5ff7a68fb13c903c8..ecabb16ba4243ca19083d4dde4324ee71807d56d 100644
--- a/l10n/sr/core.po
+++ b/l10n/sr/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "година раније"
 msgid "Choose"
 msgstr "Одабери"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Откажи"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Да"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Не"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "У реду"
 
diff --git a/l10n/sr/files.po b/l10n/sr/files.po
index 1722abf24787f9b00cd684482de79072b7127a38..1137159319524ea60a5312235e1b4e5d60db86e9 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/files_encryption.po b/l10n/sr/files_encryption.po
index 77d694cb279acb9909e0b07a0f181c52b99407c3..1c2c46e27c3f4ab431fc961cb386c26cc82c7f70 100644
--- a/l10n/sr/files_encryption.po
+++ b/l10n/sr/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sr/files_external.po b/l10n/sr/files_external.po
index 1fa5decc253eb580a53359eda80541e9407167cf..03af7666c7551501b03d91a03258735800743696 100644
--- a/l10n/sr/files_external.po
+++ b/l10n/sr/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/files_sharing.po b/l10n/sr/files_sharing.po
index 6ade1c9ca9c35f51371af8e3011d7aefac2f9e9f..a24d938a0bb9283d8f949b4e7a5d9e03bcecec77 100644
--- a/l10n/sr/files_sharing.po
+++ b/l10n/sr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/files_trashbin.po b/l10n/sr/files_trashbin.po
index a14499c06a6e2dbc3a3ac15ef8d890e11f7a2723..35c72b956b58f66b7927a772ace3909f15050a05 100644
--- a/l10n/sr/files_trashbin.po
+++ b/l10n/sr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/lib.po b/l10n/sr/lib.po
index 4756603a21173e5b4b9d29a4906212fd47dc5be1..8a29b2b437f7e7884d2dad87b415d1aed66bb159 100644
--- a/l10n/sr/lib.po
+++ b/l10n/sr/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Назад на датотеке"
 msgid "Selected files too large to generate zip file."
 msgstr "Изабране датотеке су превелике да бисте направили ZIP датотеку."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "није одређено"
 
diff --git a/l10n/sr/settings.po b/l10n/sr/settings.po
index 85107160318d5f4ad7e80ce1092defa3096116ba..cb20f885bf10bd643670fa7665208c0cb8997737 100644
--- a/l10n/sr/settings.po
+++ b/l10n/sr/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr/user_ldap.po b/l10n/sr/user_ldap.po
index ce54a18157ae0829defcffff0a62298da74a0c91..830588c67a3a24cc61a9cedb0590bfa7d128364d 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr@latin/core.po b/l10n/sr@latin/core.po
index e7f8e484ed890c1ee7d72a0f750169a516cbedb9..578a7fd08e9db7247769c5265bfe27f79f62b15a 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Otkaži"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/sr@latin/files.po b/l10n/sr@latin/files.po
index a1dbc806e0395afcad0756a26b3b4e214cc6c505..5e2fce754bd69f461892e151fcf973197ceceaf7 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr@latin/files_encryption.po b/l10n/sr@latin/files_encryption.po
index a74b20d15aa355f5af2a01fa4eec5fe36eb92a4d..b5ee53a5544eef86b7b5a0c4766b949a43be87ff 100644
--- a/l10n/sr@latin/files_encryption.po
+++ b/l10n/sr@latin/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sr@latin/files_external.po b/l10n/sr@latin/files_external.po
index 7bfaa7e27518b3a5f59154441760620a86a4106f..6a60f8db63d18d668761b37a8439d90b0b2ff532 100644
--- a/l10n/sr@latin/files_external.po
+++ b/l10n/sr@latin/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr@latin/files_sharing.po b/l10n/sr@latin/files_sharing.po
index fa8934ea33f155751ec72f0c1bf2bb9d9a3247ac..5e3e65bfa29f1257b6a4bdf1a254cc3a8338609b 100644
--- a/l10n/sr@latin/files_sharing.po
+++ b/l10n/sr@latin/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr@latin/files_trashbin.po b/l10n/sr@latin/files_trashbin.po
index bc8475341876313106a4882389139e238a45ccc8..4801956125200a2605172302d47db38de739efa8 100644
--- a/l10n/sr@latin/files_trashbin.po
+++ b/l10n/sr@latin/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sr@latin/lib.po b/l10n/sr@latin/lib.po
index ddba4528351690b46c86383ad67f20d2349c152e..efdd4a310ac8929fa1b77cf22459953edf5fa836 100644
--- a/l10n/sr@latin/lib.po
+++ b/l10n/sr@latin/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/sr@latin/settings.po b/l10n/sr@latin/settings.po
index a0a8e1b390a816d5f2713e40d3dfb67c5762be1a..c9f8cd90bec616d50b67ed1df60d5edce730e60c 100644
--- a/l10n/sr@latin/settings.po
+++ b/l10n/sr@latin/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/core.po b/l10n/sv/core.po
index 81470409dc55a2e7446973dcadb3765010ad3c04..0f557990e1709c7409d5cbcd5f76db91ad778ab7 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "år sedan"
 msgid "Choose"
 msgstr "Välj"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Ja"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Nej"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/sv/files.po b/l10n/sv/files.po
index af8b72d8966044aa7639e4e50d35185491ddb3b0..309717a6ab5061895dedbcc216e1f87bc257905a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/files_encryption.po b/l10n/sv/files_encryption.po
index 791e0a79677fc6c9818dca8242624dc3ab9bea34..b6c142e6e098f0b7df64e54203e7365cf32014c7 100644
--- a/l10n/sv/files_encryption.po
+++ b/l10n/sv/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/sv/files_external.po b/l10n/sv/files_external.po
index 08d8b9b9fa182f8f24fd978789f5ba762e2bf5bd..1a259e127a9dde911fc9f6c394724cfba4551d84 100644
--- a/l10n/sv/files_external.po
+++ b/l10n/sv/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/files_sharing.po b/l10n/sv/files_sharing.po
index ca803f28f15186d2fa27fcce2e35133a2dd5d984..1167bb13e25a90803865d4b21731d04d45f472e0 100644
--- a/l10n/sv/files_sharing.po
+++ b/l10n/sv/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/files_trashbin.po b/l10n/sv/files_trashbin.po
index 2f01bfd7f6324caca7e7f75a50476a70e8400b69..bd5cf20c8bef2a940a50ddda2dff3b56f1584a24 100644
--- a/l10n/sv/files_trashbin.po
+++ b/l10n/sv/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/lib.po b/l10n/sv/lib.po
index 7365af55002e89c5fadf3986cc15ffbf51c8a035..a0e329698d54b4d93e89015a1c00fb6dd477b499 100644
--- a/l10n/sv/lib.po
+++ b/l10n/sv/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Tillbaka till Filer"
 msgid "Selected files too large to generate zip file."
 msgstr "Valda filer är för stora för att skapa zip-fil."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "kunde inte bestämmas"
 
diff --git a/l10n/sv/settings.po b/l10n/sv/settings.po
index ca96869af65c824b8e680afe1bb15fb1adc3f1f2..7df94e6cf6145da515d8981870b7c9b17980ccff 100644
--- a/l10n/sv/settings.po
+++ b/l10n/sv/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sv/user_ldap.po b/l10n/sv/user_ldap.po
index 7c7a0637f1a43493d4217b6a774b478b74c07efd..801f38e6f451e2a16dc66fccba8f4b6ae1ef27b3 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/sw_KE/files_encryption.po b/l10n/sw_KE/files_encryption.po
index a161ae80908e07057a79c37f106888a8601b6298..181a2ef29a7becbe075aefd8f67be2ce1975bb4d 100644
--- a/l10n/sw_KE/files_encryption.po
+++ b/l10n/sw_KE/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: sw_KE\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ta_LK/core.po b/l10n/ta_LK/core.po
index ec6b4a62d0874fb6550a6c75582fb30296cf3ced..cc56a5ad526bbeb69de82ace1777d8a8c3219f6e 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "வருடங்களுக்கு முன்"
 msgid "Choose"
 msgstr "தெரிவுசெய்க "
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "இரத்து செய்க"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "ஆம்"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "இல்லை"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "சரி"
 
diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po
index 30153094a34fd17f8ef9d2d13d0d4481c5b7cea8..84c0f1c55847e381dacade1a4b3127ed52501032 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ta_LK/files_encryption.po b/l10n/ta_LK/files_encryption.po
index 87ff9285c1b1181df14a3c665322b0ed8ed5121e..48fb2ff2275a2bac18f4e26b39b37c7bf76cb053 100644
--- a/l10n/ta_LK/files_encryption.po
+++ b/l10n/ta_LK/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ta_LK\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ta_LK/files_external.po b/l10n/ta_LK/files_external.po
index 877c58c7f7fae60c3868f95733d399d9c624605b..ee9a204685d0b829ecaf3c4885eead0a43f4a329 100644
--- a/l10n/ta_LK/files_external.po
+++ b/l10n/ta_LK/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ta_LK/files_sharing.po b/l10n/ta_LK/files_sharing.po
index 00815cfe4778ac375707a80be33f83c1081d0553..68673ba7d68d7c60ec9248fe6984e2ec21676e4a 100644
--- a/l10n/ta_LK/files_sharing.po
+++ b/l10n/ta_LK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ta_LK/files_trashbin.po b/l10n/ta_LK/files_trashbin.po
index 11b1a82dafea7c70fc877444e5acd24150457ac2..d6637a6e81c5beeffb8d0a703726d57e9ea89e05 100644
--- a/l10n/ta_LK/files_trashbin.po
+++ b/l10n/ta_LK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ta_LK/lib.po b/l10n/ta_LK/lib.po
index b9ecc7ca2f64f2ad05c980d53af48ec51b3e8f32..f905e0d67c9e895f5c10411dddcf7232544ec6eb 100644
--- a/l10n/ta_LK/lib.po
+++ b/l10n/ta_LK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "கோப்புகளுக்கு செல்க"
 msgid "Selected files too large to generate zip file."
 msgstr "வீ சொலிக் கோப்புகளை உருவாக்குவதற்கு தெரிவுசெய்யப்பட்ட கோப்புகள் மிகப்பெரியவை"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ta_LK/settings.po b/l10n/ta_LK/settings.po
index df7d153e371bc755a720900903a1a4d2bca5eaa4..b10ecfa38b7f838e7773dea75731e963afe2b6cf 100644
--- a/l10n/ta_LK/settings.po
+++ b/l10n/ta_LK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ta_LK/user_ldap.po b/l10n/ta_LK/user_ldap.po
index f7ca029b65c27450d214ecfac90015587a08c36d..c1e4d13f30cf844bb26b2bc013b6e9be612628ad 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/te/core.po b/l10n/te/core.po
index db9f15d64c0bb5208afeb3f6778cc4a25f1b8bd9..b4228cab2ea207b3a365bc7d9a8ae8e8d6ff3435 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "సంవత్సరాల క్రితం"
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "రద్దుచేయి"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "అవును"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "కాదు"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "సరే"
 
diff --git a/l10n/te/files.po b/l10n/te/files.po
index afab15d964a1fd490cada1b272ba2465297d57dc..ed5e2b98335cecfbbaa1e1ffc6e6ccf0878f3dcd 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/te/files_encryption.po b/l10n/te/files_encryption.po
index ef53fa5d98522cc50b046bfcc501498af05ce578..7ccbc51637f86133be83108c69dad1b676b31002 100644
--- a/l10n/te/files_encryption.po
+++ b/l10n/te/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: te\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/te/files_external.po b/l10n/te/files_external.po
index 3322717ba7c1e87c448b09938da291169ff914cc..41448bed38d004b828099bc705d4a464d97961d5 100644
--- a/l10n/te/files_external.po
+++ b/l10n/te/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/te/files_trashbin.po b/l10n/te/files_trashbin.po
index ce3bea09b8b27a232ba0ef8f5b972c0fbe7cef22..5511f5b83a7f47b9e674855c12e8df2f029134b2 100644
--- a/l10n/te/files_trashbin.po
+++ b/l10n/te/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/te/lib.po b/l10n/te/lib.po
index f48696fe2b688c9353bfdfa44510bf589978854f..9e00af994bbc07b718e37244125b85679d333b90 100644
--- a/l10n/te/lib.po
+++ b/l10n/te/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/te/settings.po b/l10n/te/settings.po
index 78abc84b1d771cc16921889585cfed37539a85be..59f9d4b82e9b66d40dd24247ac438ad741b9e3d8 100644
--- a/l10n/te/settings.po
+++ b/l10n/te/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/te/user_ldap.po b/l10n/te/user_ldap.po
index c46372b08b998ccb6e4e4afa7e5a964893fd928c..f21c24d5a54b3bb6651cf0627fad78c4579ddb7a 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot
index 68fe308af79875fdef11ee0569d5ffaf88f18ff9..34333c0d2c8b653e4ed9f3c867f8969b98b665eb 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-29 02:02+0200\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr ""
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr ""
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr ""
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr ""
 
diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot
index 03d20bafdf498c4773557c0413392b8f69c3c7de..8fd7f6db36f965975795909e46e06b6bcff0a3df 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot
index 9cba1446a680fc0e753013b253ab3999eba3f100..bae6373c3ca8b46d36d76faf927c5cbc4d314b76 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,12 +17,21 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid "Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot
index c91cf58eb6b228723520ed6cd0540764ef8f769b..087855ece7c956e0141b89e012bb56e943f1ae4e 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot
index 5f72d74e2d85342c2da220c2f0a45c5a39aa2e89..d20d28c00fdf7f8670d45ae7cada71086df762dd 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot
index 1492ed25e1b51e4bddac1d02f39db6a27554a165..0bfe193d7bf99a520ae4cbab9a1f049fd320f5a2 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot
index db14b73f63756b3985474a0d01f0b02e9f644fbe..657b69658d14a0398fd84eedc0002c5bceaca563 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot
index 9f68b521c9d8f0cbf737288bb3be7fc06e697bdc..7d8550507678c1665ce7bd6fe5a51760b8197a7d 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-29 02:02+0200\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot
index b77c7a1f1d6e41dfd5025a1eb14e64efcc4705a0..d510c479afd25c66041baf00d900014c0fa42a09 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-29 02:02+0200\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot
index b7ef32667eeb7432ff9fee410d257649eb5b85be..26f349e47eb6ebe79e97ea93ef0d5f9a622398a8 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-29 02:01+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot
index eeebc4a0d7d1600a09769a97d9aea8185560c36d..b200d698a7773f21735d4c5aef39be930e91cffc 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-29 02:02+0200\n"
+"POT-Creation-Date: 2013-06-04 02:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/th_TH/core.po b/l10n/th_TH/core.po
index 8d6fc8291353a240f02fc66d051fd31dab229c88..cc103d478aec50d8eb34597a1b1dd01e93732f0e 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "ปี ที่ผ่านมา"
 msgid "Choose"
 msgstr "เลือก"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "ยกเลิก"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "ตกลง"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "ไม่ตกลง"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "ตกลง"
 
diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po
index a40bd2fe2e2b0d9725de0942ca88cf1fdef8d9de..ccfa0c5ddde6475475d76a4f3c3c172dde462092 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/th_TH/files_encryption.po b/l10n/th_TH/files_encryption.po
index e7019e9831e5587965f16fc2ef712ace0720cfc9..c52fe69a4c4ce19c16992bba2ff01312768d7509 100644
--- a/l10n/th_TH/files_encryption.po
+++ b/l10n/th_TH/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: th_TH\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/th_TH/files_external.po b/l10n/th_TH/files_external.po
index c96324df5f8d8f57b3c756438f0cfc7705f4a970..b8329a6124b2898d6b284942f7feec8653600343 100644
--- a/l10n/th_TH/files_external.po
+++ b/l10n/th_TH/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/th_TH/files_sharing.po b/l10n/th_TH/files_sharing.po
index bd40f083cd6e83a6161b85f722ca010a845f985f..49c70f024bf7c8d204ecb9eac6dd2c49dbbd0b10 100644
--- a/l10n/th_TH/files_sharing.po
+++ b/l10n/th_TH/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/th_TH/files_trashbin.po b/l10n/th_TH/files_trashbin.po
index 03177b3af98b417d57ff037252a2acefc196da28..bfcb4d2f46d98a65d7bf5aceac6f74ab584fd05b 100644
--- a/l10n/th_TH/files_trashbin.po
+++ b/l10n/th_TH/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/th_TH/lib.po b/l10n/th_TH/lib.po
index 33d34cf2a996748c723515a1f005c3d5551c3159..50f9ae0bb9d79d5effb3e852cdd9138a01375e8a 100644
--- a/l10n/th_TH/lib.po
+++ b/l10n/th_TH/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "กลับไปที่ไฟล์"
 msgid "Selected files too large to generate zip file."
 msgstr "ไฟล์ที่เลือกมีขนาดใหญ่เกินกว่าที่จะสร้างเป็นไฟล์ zip"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "ไม่สามารถกำหนดได้"
 
diff --git a/l10n/th_TH/settings.po b/l10n/th_TH/settings.po
index 293d526795ae9a8f894d071339b306c190ee4663..3f942a49f7505a9e35e7f677511d6e5fb8805386 100644
--- a/l10n/th_TH/settings.po
+++ b/l10n/th_TH/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/th_TH/user_ldap.po b/l10n/th_TH/user_ldap.po
index 97df3a4f279e7c75857923490d1d5daa70774d25..53635d7dc984f4d78ab28a8b9bcd484da3fdd48d 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/core.po b/l10n/tr/core.po
index 7aeb17a5fc9697ba401b1abb8108e7853e6f2c06..b7d787595bc1bbb78794f09667a077756a49540d 100644
--- a/l10n/tr/core.po
+++ b/l10n/tr/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: ismail yenigül <ismail.yenigul@surgate.com>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "yıl önce"
 msgid "Choose"
 msgstr "seç"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "İptal"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Evet"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Hayır"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Tamam"
 
diff --git a/l10n/tr/files.po b/l10n/tr/files.po
index 62c22a3e36fb68715934150930c47b142782977c..0b0da38b58edf1e69ba4f4b739f2ce295bf8cdc1 100644
--- a/l10n/tr/files.po
+++ b/l10n/tr/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: ismail yenigül <ismail.yenigul@surgate.com>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/files_encryption.po b/l10n/tr/files_encryption.po
index db9b97668d34aca7c1119c970822eacd6c7a770c..82ddb74c5d7030a94513d502522e6486ece32d6f 100644
--- a/l10n/tr/files_encryption.po
+++ b/l10n/tr/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: tr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/tr/files_external.po b/l10n/tr/files_external.po
index 16c4b9c420e4da373f86f3c92ea2e1693c8e8b81..4d0e704f51317d65c831fabc0919fafa69dd9c77 100644
--- a/l10n/tr/files_external.po
+++ b/l10n/tr/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/files_sharing.po b/l10n/tr/files_sharing.po
index 617458118020edb1a5d9d2b51dda1131412e2ca6..8a76095d7ef6c1c15bc33df20e2294e178d846da 100644
--- a/l10n/tr/files_sharing.po
+++ b/l10n/tr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/files_trashbin.po b/l10n/tr/files_trashbin.po
index 39e03091f1563065e9bfcaecd4715417bc80de09..254222c64b562096b7f93d7ef60c364f361cab34 100644
--- a/l10n/tr/files_trashbin.po
+++ b/l10n/tr/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/lib.po b/l10n/tr/lib.po
index 29076688ff79ff764d40b6148b6d51c97976f8ab..e1d3e4a420d489d7c059b5e382e2797c8b4bcef8 100644
--- a/l10n/tr/lib.po
+++ b/l10n/tr/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: ismail yenigül <ismail.yenigul@surgate.com>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "Dosyalara dön"
 msgid "Selected files too large to generate zip file."
 msgstr "Seçilen dosyalar bir zip dosyası oluşturmak için fazla büyüktür."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "tespit edilemedi"
 
diff --git a/l10n/tr/settings.po b/l10n/tr/settings.po
index a2eedf31e294bc048a1dd83eccb3700319a79e22..7b467a0b707428cc424465165c65e03d6e942a30 100644
--- a/l10n/tr/settings.po
+++ b/l10n/tr/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po
index 398cf1e158e7e5317387d04f257ec1feb3f1f4e2..dabf4606c8e9dbf1ca38ee92ee860e4eb0399594 100644
--- a/l10n/tr/user_ldap.po
+++ b/l10n/tr/user_ldap.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: ismail yenigül <ismail.yenigul@surgate.com>\n"
 "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/core.po b/l10n/ug/core.po
index 8aee9e7a58a3191efb95ac30e6bb5d54c6c789fe..dd031f3fd9fd6f643ec070e7b1763a141da3c40c 100644
--- a/l10n/ug/core.po
+++ b/l10n/ug/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Abduqadir Abliz <sahran.ug@gmail.com>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "ۋاز كەچ"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "ھەئە"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "ياق"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "جەزملە"
 
diff --git a/l10n/ug/files.po b/l10n/ug/files.po
index a8f313239d50a15171c5ee3553ac6513031a5cd9..48bf941b88fcd3d8aed356e366f4878381735857 100644
--- a/l10n/ug/files.po
+++ b/l10n/ug/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/files_encryption.po b/l10n/ug/files_encryption.po
index 3a8794b05406fe8b4912ce66a4f7695d0e14bee1..e3519652c883818b8cdb306914ffcbb687c56ec6 100644
--- a/l10n/ug/files_encryption.po
+++ b/l10n/ug/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ug\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ug/files_external.po b/l10n/ug/files_external.po
index aa86017f63b9bfd34a61bdaaa54d4ea8836154b8..0f35adf4321f29baeb5d277dc55f93d7e6ae2e30 100644
--- a/l10n/ug/files_external.po
+++ b/l10n/ug/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: Abduqadir Abliz <sahran.ug@gmail.com>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/files_sharing.po b/l10n/ug/files_sharing.po
index d0124178643e540694c272e66fa5218d1d42de61..5958fbcb41b184998e1086b5a68f2a61481fbd54 100644
--- a/l10n/ug/files_sharing.po
+++ b/l10n/ug/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: uqkun <uqkun@outlook.com>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/files_trashbin.po b/l10n/ug/files_trashbin.po
index 2f7bcf64ab658c1ae3a155ddd1d3cbc213be9b64..7442a2e88774ce964c7474b9ee67edc97b90c59a 100644
--- a/l10n/ug/files_trashbin.po
+++ b/l10n/ug/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: Abduqadir Abliz <sahran.ug@gmail.com>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/lib.po b/l10n/ug/lib.po
index ce6972ea4fdfde87acb32731285a49e5ab3e6ba8..2cfea82974e77782e65f61e8c07f6ddbd97cf3ff 100644
--- a/l10n/ug/lib.po
+++ b/l10n/ug/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: Abduqadir Abliz <sahran.ug@gmail.com>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ug/settings.po b/l10n/ug/settings.po
index 6f4fac3b934ead50a9a3f3219b935ca017f45551..2b56b400e9021047e7029f4606dc2ed985a21633 100644
--- a/l10n/ug/settings.po
+++ b/l10n/ug/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ug/user_ldap.po b/l10n/ug/user_ldap.po
index 990c6da36f11745c2c13b12144e108c92a2bef73..a4e5eec6d2beb5a1be26ccf9a1b4bafed663a3e3 100644
--- a/l10n/ug/user_ldap.po
+++ b/l10n/ug/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Uighur <uqkun@outlook.com>\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/core.po b/l10n/uk/core.po
index bf1149758d3c7008272777d8dc05867cbfbcb60e..89433cccc971ca4e78bcde2a9e475bf4d7c93bbd 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "роки тому"
 msgid "Choose"
 msgstr "Обрати"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Відмінити"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Так"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Ні"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Ok"
 
diff --git a/l10n/uk/files.po b/l10n/uk/files.po
index 20a3abc38c528d2875728b6376bd615f1c0ff159..9c95991d399b43c0b3a92eae896d5b95210f749f 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/files_encryption.po b/l10n/uk/files_encryption.po
index b0417314c174c553e8964c79a5315af05486b5a3..ea28d0078fa239940b7f0f8e79e542717cc721b8 100644
--- a/l10n/uk/files_encryption.po
+++ b/l10n/uk/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ 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/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/uk/files_external.po b/l10n/uk/files_external.po
index 9aa41a4217270d4269ee4bf8d3794585de820930..c9962845ce8033e0afa43790e3f06d1bc45de71d 100644
--- a/l10n/uk/files_external.po
+++ b/l10n/uk/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/files_sharing.po b/l10n/uk/files_sharing.po
index b49ad2f35fb6df30fd421cf075c9bcb3a45a0454..c87feb1467fed032ea950803e5ffe1ae85194029 100644
--- a/l10n/uk/files_sharing.po
+++ b/l10n/uk/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/files_trashbin.po b/l10n/uk/files_trashbin.po
index 90acd59667a7d22ff7b0859f9a20b8958f6d7b03..bb0bb28ba04fe5b6c42ac986f5f74bce696bac3a 100644
--- a/l10n/uk/files_trashbin.po
+++ b/l10n/uk/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/lib.po b/l10n/uk/lib.po
index d71d3219060d78e143c2607e5136b987a225b1b0..f843a4ff464472846a8df28df361dabb3bd53ae4 100644
--- a/l10n/uk/lib.po
+++ b/l10n/uk/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Повернутися до файлів"
 msgid "Selected files too large to generate zip file."
 msgstr "Вибрані фали завеликі для генерування zip файлу."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "не може бути визначено"
 
diff --git a/l10n/uk/settings.po b/l10n/uk/settings.po
index 6e577cbb4b2357cf6e5954fc0b2b1d5edaffc69d..8db859cb8388a725441bcdf140e1d866ed0e744b 100644
--- a/l10n/uk/settings.po
+++ b/l10n/uk/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/uk/user_ldap.po b/l10n/uk/user_ldap.po
index 3041348c05bd80dffd6f6841590fe4e41fe6de8a..3be40699ea190ed18d5a24b97c66ef84f2b082cb 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ur_PK/core.po b/l10n/ur_PK/core.po
index 9c8d6d6a780d4a901478f7c0cb4b8e138f6921e5..e5b6230d295a1a765185ae594005c4fc8f47e074 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr "منتخب کریں"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "منسوخ کریں"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "ہاں"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "نہیں"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "اوکے"
 
diff --git a/l10n/ur_PK/files.po b/l10n/ur_PK/files.po
index 45a7afb4cec1ae63d59ae3cf9af6ae52f1b35bb1..9b22814bc59f8f715d6a2e6ee6c9aa1ebb91b641 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ur_PK/files_encryption.po b/l10n/ur_PK/files_encryption.po
index ab35eed13c802c2dc6c8e6b312801187e0f933fd..7db2a58d18ab47dd95ea4c6606bfaa7e86318e78 100644
--- a/l10n/ur_PK/files_encryption.po
+++ b/l10n/ur_PK/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: ur_PK\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/ur_PK/files_trashbin.po b/l10n/ur_PK/files_trashbin.po
index 35490b6a0bb7933dccc2b9e6cf9560658cebca1e..528141e00bcb37f5f60c1b67701998f12e041984 100644
--- a/l10n/ur_PK/files_trashbin.po
+++ b/l10n/ur_PK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ur_PK/lib.po b/l10n/ur_PK/lib.po
index 087fb344a3f4d2af360aadd941e54efbf09f04b2..6470912a1ff9c04c44013d09f6b3822a72134efc 100644
--- a/l10n/ur_PK/lib.po
+++ b/l10n/ur_PK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/ur_PK/settings.po b/l10n/ur_PK/settings.po
index d9c2459d98747ccd7749b5214c307622a4419ddd..cf1c409dc70b830469bb8bf5a769b635e9d4489c 100644
--- a/l10n/ur_PK/settings.po
+++ b/l10n/ur_PK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/ur_PK/user_ldap.po b/l10n/ur_PK/user_ldap.po
index 1153eb7243e00dbe8b9bb12b890640b01fdc4c8c..43aba3ef53903416ae28548df373505c97d392e3 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/core.po b/l10n/vi/core.po
index 7deccde60cd655ebdfed9e8b170f11b979bdca20..b1a7295fba70bc961dbe555b12fcd21e1e0e0d26 100644
--- a/l10n/vi/core.po
+++ b/l10n/vi/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: xtdv <truong.tx8@gmail.com>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "năm trước"
 msgid "Choose"
 msgstr "Chọn"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "Hủy"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Có"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "Không"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "Đồng ý"
 
diff --git a/l10n/vi/files.po b/l10n/vi/files.po
index 80fe0ef6cdbb2b4e694a53e7146c6cdace9c889b..8bdcaa0c0f7f1dd05e3e0e32d9a132e30e8b4831 100644
--- a/l10n/vi/files.po
+++ b/l10n/vi/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/files_encryption.po b/l10n/vi/files_encryption.po
index ba9b23c72cb7e29aded2e5f7549cbd8a5d8d0e77..b364dc18140262cb3a3f4ee4c61ab5bd5aa10612 100644
--- a/l10n/vi/files_encryption.po
+++ b/l10n/vi/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: vi\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/vi/files_external.po b/l10n/vi/files_external.po
index 33ccef3677c461b6bdf09e4ff42282d9f8c15849..492533621477eae85e6f9495116218c2d4a86b08 100644
--- a/l10n/vi/files_external.po
+++ b/l10n/vi/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: xtdv <truong.tx8@gmail.com>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/files_sharing.po b/l10n/vi/files_sharing.po
index 2e614a79f0f49736376dd44e57fcb4364d65edbe..417f805494172d4cf252c2d8ed443781b5490957 100644
--- a/l10n/vi/files_sharing.po
+++ b/l10n/vi/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/files_trashbin.po b/l10n/vi/files_trashbin.po
index 099dc284f232277d2492ac5d8807fc33965c17b3..0a195d4c7eb17f541ff40a7f8c60615d35f1bec9 100644
--- a/l10n/vi/files_trashbin.po
+++ b/l10n/vi/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/lib.po b/l10n/vi/lib.po
index 139a8f890a7e147fd4bb75b84e4fbe6d64558e63..5ad481d093efa00d77461e7522c2dd39c52db4f3 100644
--- a/l10n/vi/lib.po
+++ b/l10n/vi/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "Trở lại tập tin"
 msgid "Selected files too large to generate zip file."
 msgstr "Tập tin được chọn quá lớn để tạo tập tin ZIP."
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "không thể phát hiện được"
 
diff --git a/l10n/vi/settings.po b/l10n/vi/settings.po
index 76ade4b119ab81e6e0675806b027f334cb35c43f..f966fbdc43459462248529ae4d9b6527ac5995ce 100644
--- a/l10n/vi/settings.po
+++ b/l10n/vi/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/vi/user_ldap.po b/l10n/vi/user_ldap.po
index 615dc0bf546c4662c67086f3e6359589a714f82a..6bcc06b555706bb050a33e04c42149bfbb957b12 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/core.po b/l10n/zh_CN.GB2312/core.po
index ead3aa5d1043cb8f834faa3f84e3a987b4da7ae4..b8ee6a618ff687f1da8a2960577ebb5a5fc9d655 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr "年前"
 msgid "Choose"
 msgstr "选择"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "取消"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "是"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "否"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "好的"
 
diff --git a/l10n/zh_CN.GB2312/files.po b/l10n/zh_CN.GB2312/files.po
index 168dbe9fab60cd8ce946a0200cc71fc9e93c6273..993200578185e9c385af2bf51e588ac0f705e3c8 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/files_encryption.po b/l10n/zh_CN.GB2312/files_encryption.po
index 0ac97b2612eaaae863d1c1684a61b133d4f12983..d98fa3d78b4c7cf637e04c8b0e403f95f47335d0 100644
--- a/l10n/zh_CN.GB2312/files_encryption.po
+++ b/l10n/zh_CN.GB2312/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: zh_CN.GB2312\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/zh_CN.GB2312/files_external.po b/l10n/zh_CN.GB2312/files_external.po
index 85b549059dc9ff1886945d13b6d412501a1af0bd..ab7f4988e19740ae77a51239973ac032e2a9cf4a 100644
--- a/l10n/zh_CN.GB2312/files_external.po
+++ b/l10n/zh_CN.GB2312/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/files_sharing.po b/l10n/zh_CN.GB2312/files_sharing.po
index 002e1c9b74271ec73fdb955dcee8fc750cb3b533..a05eaaf358814c7894330cb0648a3171633d6b17 100644
--- a/l10n/zh_CN.GB2312/files_sharing.po
+++ b/l10n/zh_CN.GB2312/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/files_trashbin.po b/l10n/zh_CN.GB2312/files_trashbin.po
index 58d9427d3273525a9877a63ea991061f81d2aa0e..66526ba07455fe76c65cc60934c61257e1c9a1f1 100644
--- a/l10n/zh_CN.GB2312/files_trashbin.po
+++ b/l10n/zh_CN.GB2312/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/lib.po b/l10n/zh_CN.GB2312/lib.po
index cdca48faac0c182a3dea73bcf861dc289990a28a..8cad55358429edc5e619eabd115f2adba00e883f 100644
--- a/l10n/zh_CN.GB2312/lib.po
+++ b/l10n/zh_CN.GB2312/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "返回到文件"
 msgid "Selected files too large to generate zip file."
 msgstr "选择的文件太大而不能生成 zip 文件。"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/zh_CN.GB2312/settings.po b/l10n/zh_CN.GB2312/settings.po
index 6181644d9bbcf74e48a6cd033ba0b341e9120799..dcff59eda7923a1e9337bbbc16acfeab1a40563b 100644
--- a/l10n/zh_CN.GB2312/settings.po
+++ b/l10n/zh_CN.GB2312/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN.GB2312/user_ldap.po b/l10n/zh_CN.GB2312/user_ldap.po
index b4424e1e4c99656eeb06d413cffbe5ea2d70c1b5..6b36fb523b1f6d202737bfb1aebbaea78e464ece 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po
index 7c4aaceb79178e9ef750e8709b0984c4de2736c0..0672342d8386972ba192d4e732ecee63e15457a6 100644
--- a/l10n/zh_CN/core.po
+++ b/l10n/zh_CN/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: zhangmin <zm1990s@gmail.com>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "年前"
 msgid "Choose"
 msgstr "选择(&C)..."
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "取消"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "加载文件选择器模板出错"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "是"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "否"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "好"
 
diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po
index a9d774d9997b739f1c928c6449cabe90567f52f3..a46d71b023ab5f9e8cd41fcd33e1c406b08a3eaa 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: zhangmin <zm1990s@gmail.com>\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/files_encryption.po b/l10n/zh_CN/files_encryption.po
index 90201298c6bbff687616302e5c18bd1a39f3c724..11cd8aa05f3edcf72a17c0bc24791a3298f15bf8 100644
--- a/l10n/zh_CN/files_encryption.po
+++ b/l10n/zh_CN/files_encryption.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-26 01:58+0200\n"
-"PO-Revision-Date: 2013-05-25 00:20+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/zh_CN/files_external.po b/l10n/zh_CN/files_external.po
index e5146f04dd038984b819146a730648afc711e80a..20aae7c898fc73770597928314db9f29792f6a76 100644
--- a/l10n/zh_CN/files_external.po
+++ b/l10n/zh_CN/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/files_sharing.po b/l10n/zh_CN/files_sharing.po
index a5f0606de455fc4a230c39d776973f2d19517021..35fda472ffd0bf1011c695f92be5799ee45a5da7 100644
--- a/l10n/zh_CN/files_sharing.po
+++ b/l10n/zh_CN/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/files_trashbin.po b/l10n/zh_CN/files_trashbin.po
index e4568658796ac65ab444efc818690affba50affb..e2735ae9035cc6f986be6d6ee7a38f11cc8bc77e 100644
--- a/l10n/zh_CN/files_trashbin.po
+++ b/l10n/zh_CN/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/lib.po b/l10n/zh_CN/lib.po
index 570e62f4cf60f50ecb06b1f37d205b3da9341a20..60ee064c1fbabddfdd9b140682c9b4bbe714d058 100644
--- a/l10n/zh_CN/lib.po
+++ b/l10n/zh_CN/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr "回到文件"
 msgid "Selected files too large to generate zip file."
 msgstr "选择的文件太大,无法生成 zip 文件。"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "无法确定"
 
diff --git a/l10n/zh_CN/settings.po b/l10n/zh_CN/settings.po
index ec2771265485243ce94d9906eeddd1e243fb9278..bf5e386cd3b2cc416c8aeb368f8db52b5344738b 100644
--- a/l10n/zh_CN/settings.po
+++ b/l10n/zh_CN/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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 707023942099bd22cb61befd2d98bf6fc7288a44..cad853206bb5d04fa59cc484b072820dfc9118df 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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_HK/core.po b/l10n/zh_HK/core.po
index 5f26d45bed779e64b519d745f3574146d1e2bf7e..44746cd953a71bb27909cb2daed0e20dc5078658 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
@@ -216,23 +216,23 @@ msgstr ""
 msgid "Choose"
 msgstr ""
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "取消"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr ""
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "Yes"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "No"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "OK"
 
diff --git a/l10n/zh_HK/files.po b/l10n/zh_HK/files.po
index 358048951156e4d1fa835fc5f597ac6ed733ff98..b90c1a88c2ce8d2138b379c76bd70f2dd98b2a19 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_HK/files_encryption.po b/l10n/zh_HK/files_encryption.po
index 2e428e4d497ffd3bacdebc912ca70009a880b24f..8956d5a1845185c1d19b6f9f57f675074c699769 100644
--- a/l10n/zh_HK/files_encryption.po
+++ b/l10n/zh_HK/files_encryption.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-25 02:01+0200\n"
-"PO-Revision-Date: 2013-05-25 00:02+0000\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
@@ -17,12 +17,22 @@ msgstr ""
 "Language: zh_HK\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
 msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
+
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
 msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
diff --git a/l10n/zh_HK/files_external.po b/l10n/zh_HK/files_external.po
index 4578dfcd41e773633fa47d5baebbee8f37ee28db..a492dedfe1ab36986bb35b50162d57f64d75194c 100644
--- a/l10n/zh_HK/files_external.po
+++ b/l10n/zh_HK/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_HK/files_sharing.po b/l10n/zh_HK/files_sharing.po
index a74abaa9bd0bd899cb71b02ddd66e729748aa310..cc4d9910a5182cfaccb4ba894b1c9e3652b539f0 100644
--- a/l10n/zh_HK/files_sharing.po
+++ b/l10n/zh_HK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_HK/files_trashbin.po b/l10n/zh_HK/files_trashbin.po
index 3d4167020fd22bad740c98861e19d52b9a443ec8..ac820407ffcdd6324f40e0eb18c0cb91d9de8623 100644
--- a/l10n/zh_HK/files_trashbin.po
+++ b/l10n/zh_HK/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_HK/lib.po b/l10n/zh_HK/lib.po
index aff77f6d8d1409a2a121e45cdedf6bc69992f699..dc43155025b58de5feaaf90b4972ceb9639da508 100644
--- a/l10n/zh_HK/lib.po
+++ b/l10n/zh_HK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Selected files too large to generate zip file."
 msgstr ""
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr ""
 
diff --git a/l10n/zh_HK/settings.po b/l10n/zh_HK/settings.po
index 52eaf1fc01c5870888b556258ac7acff5a23bab4..852c2569c1b3d3f94dce11cb6a1c93d13726b0ab 100644
--- a/l10n/zh_HK/settings.po
+++ b/l10n/zh_HK/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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_HK/user_ldap.po b/l10n/zh_HK/user_ldap.po
index 4da22f267635ef728b152245f28512753fde98a1..f2ee3cc4e14592267f0208798e44026a3a96fa85 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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n"
 "MIME-Version: 1.0\n"
diff --git a/l10n/zh_TW/core.po b/l10n/zh_TW/core.po
index 4a7e2c54ed7d858b000af77893ee8f7c7855a738..b6533e5334650d7c0afab4a957bcd76479add9eb 100644
--- a/l10n/zh_TW/core.po
+++ b/l10n/zh_TW/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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
@@ -217,23 +217,23 @@ msgstr "幾年前"
 msgid "Choose"
 msgstr "選擇"
 
-#: js/oc-dialogs.js:121
+#: js/oc-dialogs.js:122
 msgid "Cancel"
 msgstr "取消"
 
-#: js/oc-dialogs.js:138 js/oc-dialogs.js:195
+#: js/oc-dialogs.js:141 js/oc-dialogs.js:200
 msgid "Error loading file picker template"
 msgstr "載入檔案選擇器樣板發生錯誤"
 
-#: js/oc-dialogs.js:161
+#: js/oc-dialogs.js:164
 msgid "Yes"
 msgstr "是"
 
-#: js/oc-dialogs.js:168
+#: js/oc-dialogs.js:172
 msgid "No"
 msgstr "否"
 
-#: js/oc-dialogs.js:181
+#: js/oc-dialogs.js:185
 msgid "Ok"
 msgstr "好"
 
diff --git a/l10n/zh_TW/files.po b/l10n/zh_TW/files.po
index 43169de89aa7be41f15a32c0e0924bd8d636612b..7a374f45b2462575fe218559426445035522546e 100644
--- a/l10n/zh_TW/files.po
+++ b/l10n/zh_TW/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\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/files_encryption.po b/l10n/zh_TW/files_encryption.po
index b957596940523393f08092073645131068f2a23b..ed4c130a772d395140a1d8e860a69fa558989d20 100644
--- a/l10n/zh_TW/files_encryption.po
+++ b/l10n/zh_TW/files_encryption.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-28 02:01+0200\n"
-"PO-Revision-Date: 2013-05-27 01:10+0000\n"
-"Last-Translator: pellaeon <nfsmwlin@gmail.com>\n"
+"POT-Creation-Date: 2013-05-30 02:27+0200\n"
+"PO-Revision-Date: 2013-05-30 00:27+0000\n"
+"Last-Translator: I Robot <owncloud-bot@tmit.eu>\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"
@@ -18,13 +18,23 @@ msgstr ""
 "Language: zh_TW\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: ajax/adminrecovery.php:40
-msgid "Recovery key successfully "
-msgstr "成功還原金鑰"
+#: ajax/adminrecovery.php:29
+msgid "Recovery key successfully enabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:34
+msgid ""
+"Could not enable recovery key. Please check your recovery key password!"
+msgstr ""
 
-#: ajax/adminrecovery.php:42
-msgid "Could not "
-msgstr "無法"
+#: ajax/adminrecovery.php:48
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/adminrecovery.php:53
+msgid ""
+"Could not disable recovery key. Please check your recovery key password!"
+msgstr ""
 
 #: ajax/changeRecoveryPassword.php:49
 msgid "Password successfully changed."
diff --git a/l10n/zh_TW/files_external.po b/l10n/zh_TW/files_external.po
index be135f7ce683814805e1f02f873e3d4838f14d74..573c495c8bf2fb0bb1f9f67ed795dde5d2be6f0a 100644
--- a/l10n/zh_TW/files_external.po
+++ b/l10n/zh_TW/files_external.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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\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/files_sharing.po b/l10n/zh_TW/files_sharing.po
index b8e48fc49494e6c24a20c2ee166dd2555cdf5bea..9c7942279e425ab5e8c8598f6be20a438d0205a6 100644
--- a/l10n/zh_TW/files_sharing.po
+++ b/l10n/zh_TW/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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\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/files_trashbin.po b/l10n/zh_TW/files_trashbin.po
index 3a7d3a1a9be34a9d836f7d3fb9e310b014069486..32a463d2ebab3d455f6e16e534f7368c4e72eb05 100644
--- a/l10n/zh_TW/files_trashbin.po
+++ b/l10n/zh_TW/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-05-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\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/lib.po b/l10n/zh_TW/lib.po
index 73cbaeaf091a33720ea89fb01bc7ea651ee2e2d9..b62006f29fcadf1e4ec13cad211f48a20a3a4f46 100644
--- a/l10n/zh_TW/lib.po
+++ b/l10n/zh_TW/lib.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-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-29 00:02+0000\n"
+"POT-Creation-Date: 2013-06-04 02:29+0200\n"
+"PO-Revision-Date: 2013-06-03 00:32+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
@@ -58,7 +58,7 @@ msgstr "回到檔案列表"
 msgid "Selected files too large to generate zip file."
 msgstr "選擇的檔案太大以致於無法產生壓縮檔。"
 
-#: helper.php:228
+#: helper.php:236
 msgid "couldn't be determined"
 msgstr "無法判斷"
 
diff --git a/l10n/zh_TW/settings.po b/l10n/zh_TW/settings.po
index 7b50590cacc935162fccb3748502802a8af7ca94..61325b65b5c9c6dd3fd267d7f674cba694acebbd 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-05-29 02:02+0200\n"
-"PO-Revision-Date: 2013-05-28 23:17+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:17+0000\n"
 "Last-Translator: pellaeon <nfsmwlin@gmail.com>\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_ldap.po b/l10n/zh_TW/user_ldap.po
index de03339a3325a18e84dad38ae2e96dcfc23d8a04..0a1118b448bfee21c12adb43ad600dc50bc2194e 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-29 02:01+0200\n"
-"PO-Revision-Date: 2013-05-28 23:18+0000\n"
+"POT-Creation-Date: 2013-06-03 02:27+0200\n"
+"PO-Revision-Date: 2013-06-02 23:18+0000\n"
 "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
 "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
diff --git a/lib/backgroundjob/job.php b/lib/backgroundjob/job.php
new file mode 100644
index 0000000000000000000000000000000000000000..49fbffbd6849039476790058f8e7bd64b2cf3433
--- /dev/null
+++ b/lib/backgroundjob/job.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob;
+
+abstract class Job {
+	protected $id;
+	protected $lastRun;
+	protected $argument;
+
+	/**
+	 * @param JobList $jobList
+	 */
+	public function execute($jobList) {
+		$jobList->setLastRun($this);
+		$this->run($this->argument);
+	}
+
+	abstract protected function run($argument);
+
+	public function setId($id) {
+		$this->id = $id;
+	}
+
+	public function setLastRun($lastRun) {
+		$this->lastRun = $lastRun;
+	}
+
+	public function setArgument($argument) {
+		$this->argument = $argument;
+	}
+
+	public function getId() {
+		return $this->id;
+	}
+
+	public function getLastRun() {
+		return $this->lastRun;
+	}
+
+	public function getArgument() {
+		return $this->argument;
+	}
+}
diff --git a/lib/backgroundjob/joblist.php b/lib/backgroundjob/joblist.php
new file mode 100644
index 0000000000000000000000000000000000000000..cc803dd9b5fb73d98e5f67cb8f45f0fe5fe967f1
--- /dev/null
+++ b/lib/backgroundjob/joblist.php
@@ -0,0 +1,172 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob;
+
+/**
+ * Class QueuedJob
+ *
+ * create a background job that is to be executed once
+ *
+ * @package OC\BackgroundJob
+ */
+class JobList {
+	/**
+	 * @param Job|string $job
+	 * @param mixed $argument
+	 */
+	public function add($job, $argument = null) {
+		if (!$this->has($job, $argument)) {
+			if ($job instanceof Job) {
+				$class = get_class($job);
+			} else {
+				$class = $job;
+			}
+			$argument = json_encode($argument);
+			$query = \OC_DB::prepare('INSERT INTO `*PREFIX*jobs`(`class`, `argument`, `last_run`) VALUES(?, ?, 0)');
+			$query->execute(array($class, $argument));
+		}
+	}
+
+	/**
+	 * @param Job|string $job
+	 * @param mixed $argument
+	 */
+	public function remove($job, $argument = null) {
+		if ($job instanceof Job) {
+			$class = get_class($job);
+		} else {
+			$class = $job;
+		}
+		if (!is_null($argument)) {
+			$argument = json_encode($argument);
+			$query = \OC_DB::prepare('DELETE FROM `*PREFIX*jobs` WHERE `class` = ? AND `argument` = ?');
+			$query->execute(array($class, $argument));
+		} else {
+			$query = \OC_DB::prepare('DELETE FROM `*PREFIX*jobs` WHERE `class` = ?');
+			$query->execute(array($class));
+		}
+	}
+
+	/**
+	 * check if a job is in the list
+	 *
+	 * @param $job
+	 * @param mixed $argument
+	 * @return bool
+	 */
+	public function has($job, $argument) {
+		if ($job instanceof Job) {
+			$class = get_class($job);
+		} else {
+			$class = $job;
+		}
+		$argument = json_encode($argument);
+		$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*jobs` WHERE `class` = ? AND `argument` = ?');
+		$result = $query->execute(array($class, $argument));
+		return (bool)$result->fetchRow();
+	}
+
+	/**
+	 * get all jobs in the list
+	 *
+	 * @return Job[]
+	 */
+	public function getAll() {
+		$query = \OC_DB::prepare('SELECT `id`, `class`, `last_run`, `argument` FROM `*PREFIX*jobs`');
+		$result = $query->execute();
+		$jobs = array();
+		while ($row = $result->fetchRow()) {
+			$jobs[] = $this->buildJob($row);
+		}
+		return $jobs;
+	}
+
+	/**
+	 * get the next job in the list
+	 *
+	 * @return Job
+	 */
+	public function getNext() {
+		$lastId = $this->getLastJob();
+		$query = \OC_DB::prepare('SELECT `id`, `class`, `last_run`, `argument` FROM `*PREFIX*jobs` WHERE `id` > ? ORDER BY `id` ASC', 1);
+		$result = $query->execute(array($lastId));
+		if ($row = $result->fetchRow()) {
+			return $this->buildJob($row);
+		} else {
+			//begin at the start of the queue
+			$query = \OC_DB::prepare('SELECT `id`, `class`, `last_run`, `argument` FROM `*PREFIX*jobs` ORDER BY `id` ASC', 1);
+			$result = $query->execute();
+			if ($row = $result->fetchRow()) {
+				return $this->buildJob($row);
+			} else {
+				return null; //empty job list
+			}
+		}
+	}
+
+	/**
+	 * @param int $id
+	 * @return Job
+	 */
+	public function getById($id) {
+		$query = \OC_DB::prepare('SELECT `id`, `class`, `last_run`, `argument` FROM `*PREFIX*jobs` WHERE `id` = ?');
+		$result = $query->execute(array($id));
+		if ($row = $result->fetchRow()) {
+			return $this->buildJob($row);
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * get the job object from a row in the db
+	 *
+	 * @param array $row
+	 * @return Job
+	 */
+	private function buildJob($row) {
+		$class = $row['class'];
+		/**
+		 * @var Job $job
+		 */
+		$job = new $class();
+		$job->setId($row['id']);
+		$job->setLastRun($row['last_run']);
+		$job->setArgument(json_decode($row['argument']));
+		return $job;
+	}
+
+	/**
+	 * set the job that was last ran
+	 *
+	 * @param Job $job
+	 */
+	public function setLastJob($job) {
+		\OC_Appconfig::setValue('backgroundjob', 'lastjob', $job->getId());
+	}
+
+	/**
+	 * get the id of the last ran job
+	 *
+	 * @return int
+	 */
+	public function getLastJob() {
+		return \OC_Appconfig::getValue('backgroundjob', 'lastjob', 0);
+	}
+
+	/**
+	 * set the lastRun of $job to now
+	 *
+	 * @param Job $job
+	 */
+	public function setLastRun($job) {
+		$query = \OC_DB::prepare('UPDATE `*PREFIX*jobs` SET `last_run` = ? WHERE `id` = ?');
+		$query->execute(array(time(), $job->getId()));
+	}
+}
diff --git a/lib/backgroundjob/legacy/queuedjob.php b/lib/backgroundjob/legacy/queuedjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..2bc001103b8607008d1dbb27a6466555a51880cb
--- /dev/null
+++ b/lib/backgroundjob/legacy/queuedjob.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob\Legacy;
+
+class QueuedJob extends \OC\BackgroundJob\QueuedJob {
+	public function run($argument) {
+		$class = $argument['klass'];
+		$method = $argument['method'];
+		$parameters = $argument['parameters'];
+		call_user_func(array($class, $method), $parameters);
+	}
+}
diff --git a/lib/backgroundjob/legacy/regularjob.php b/lib/backgroundjob/legacy/regularjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..d4cfa348ceace0ecd286df18d6d2a2f51bafa592
--- /dev/null
+++ b/lib/backgroundjob/legacy/regularjob.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob\Legacy;
+
+class RegularJob extends \OC\BackgroundJob\Job {
+	public function run($argument) {
+		call_user_func($argument);
+	}
+}
diff --git a/lib/backgroundjob/queuedjob.php b/lib/backgroundjob/queuedjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..1714182820df3d8ba6c8e32cf5b72e4ae90eb4ae
--- /dev/null
+++ b/lib/backgroundjob/queuedjob.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob;
+
+/**
+ * Class QueuedJob
+ *
+ * create a background job that is to be executed once
+ *
+ * @package OC\BackgroundJob
+ */
+abstract class QueuedJob extends Job {
+	/**
+	 * run the job, then remove it from the joblist
+	 *
+	 * @param JobList $jobList
+	 */
+	public function execute($jobList) {
+		$jobList->remove($this);
+		$this->run($this->argument);
+	}
+}
diff --git a/lib/backgroundjob/queuedtask.php b/lib/backgroundjob/queuedtask.php
deleted file mode 100644
index b2ce6f39ed8ed365346e0508f400b592baf23837..0000000000000000000000000000000000000000
--- a/lib/backgroundjob/queuedtask.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/**
-* ownCloud
-*
-* @author Jakob Sack
-* @copyright 2012 Jakob Sack owncloud@jakobsack.de
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-/**
- * This class manages our queued tasks.
- */
-class OC_BackgroundJob_QueuedTask{
-	/**
-	 * @brief Gets one queued task
-	 * @param $id ID of the task
-	 * @return associative array
-	 */
-	public static function find( $id ) {
-		$stmt = OC_DB::prepare( 'SELECT * FROM `*PREFIX*queuedtasks` WHERE `id` = ?' );
-		$result = $stmt->execute(array($id));
-		return $result->fetchRow();
-	}
-
-	/**
-	 * @brief Gets all queued tasks
-	 * @return array with associative arrays
-	 */
-	public static function all() {
-		// Array for objects
-		$return = array();
-
-		// Get Data
-		$stmt = OC_DB::prepare( 'SELECT * FROM `*PREFIX*queuedtasks`' );
-		$result = $stmt->execute(array());
-		while( $row = $result->fetchRow()) {
-			$return[] = $row;
-		}
-
-		return $return;
-	}
-
-	/**
-	 * @brief Gets all queued tasks of a specific app
-	 * @param $app app name
-	 * @return array with associative arrays
-	 */
-	public static function whereAppIs( $app ) {
-		// Array for objects
-		$return = array();
-
-		// Get Data
-		$stmt = OC_DB::prepare( 'SELECT * FROM `*PREFIX*queuedtasks` WHERE `app` = ?' );
-		$result = $stmt->execute(array($app));
-		while( $row = $result->fetchRow()) {
-			$return[] = $row;
-		}
-
-		// Und weg damit
-		return $return;
-	}
-
-	/**
-	 * @brief queues a task
-	 * @param $app app name
-	 * @param $klass class name
-	 * @param $method method name
-	 * @param $parameters all useful data as text
-	 * @return id of task
-	 */
-	public static function add( $app, $klass, $method, $parameters ) {
-		$stmt = OC_DB::prepare( 'INSERT INTO `*PREFIX*queuedtasks` (`app`, `klass`, `method`, `parameters`)'
-			.' VALUES(?,?,?,?)' );
-		$result = $stmt->execute(array($app, $klass, $method, $parameters ));
-
-		return OC_DB::insertid();
-	}
-
-	/**
-	 * @brief deletes a queued task
-	 * @param $id id of task
-	 * @return true/false
-	 *
-	 * Deletes a report
-	 */
-	public static function delete( $id ) {
-		$stmt = OC_DB::prepare( 'DELETE FROM `*PREFIX*queuedtasks` WHERE `id` = ?' );
-		$result = $stmt->execute(array($id));
-
-		return true;
-	}
-}
diff --git a/lib/backgroundjob/regulartask.php b/lib/backgroundjob/regulartask.php
deleted file mode 100644
index 9976872ee13f75f4005fb7bd8fc5a813c2f4715d..0000000000000000000000000000000000000000
--- a/lib/backgroundjob/regulartask.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
-* ownCloud
-*
-* @author Jakob Sack
-* @copyright 2012 Jakob Sack owncloud@jakobsack.de
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-/**
- * This class manages the regular tasks.
- */
-class OC_BackgroundJob_RegularTask{
-	static private $registered = array();
-
-	/**
-	 * @brief creates a regular task
-	 * @param $klass class name
-	 * @param $method method name
-	 * @return true
-	 */
-	static public function register( $klass, $method ) {
-		// Create the data structure
-		self::$registered["$klass-$method"] = array( $klass, $method );
-
-		// No chance for failure ;-)
-		return true;
-	}
-
-	/**
-	 * @brief gets all regular tasks
-	 * @return associative array
-	 *
-	 * key is string "$klass-$method", value is array( $klass, $method )
-	 */
-	static public function all() {
-		return self::$registered;
-	}
-}
diff --git a/lib/backgroundjob/timedjob.php b/lib/backgroundjob/timedjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..ae9f33505abe169a5d04472e6052476831d11d2b
--- /dev/null
+++ b/lib/backgroundjob/timedjob.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\BackgroundJob;
+
+/**
+ * Class QueuedJob
+ *
+ * create a background job that is to be executed at an interval
+ *
+ * @package OC\BackgroundJob
+ */
+abstract class TimedJob extends Job {
+	protected $interval = 0;
+
+	/**
+	 * set the interval for the job
+	 *
+	 * @param int $interval
+	 */
+	public function setInterval($interval) {
+		$this->interval = $interval;
+	}
+
+	/**
+	 * run the job if
+	 *
+	 * @param JobList $jobList
+	 */
+	public function execute($jobList) {
+		if ((time() - $this->lastRun) > $this->interval) {
+			$jobList->setLastRun($this);
+			$this->run($this->argument);
+		}
+	}
+}
diff --git a/lib/backgroundjob/worker.php b/lib/backgroundjob/worker.php
deleted file mode 100644
index e966ac9647c0fc90601bc58915c2e02ce0906d11..0000000000000000000000000000000000000000
--- a/lib/backgroundjob/worker.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
-* ownCloud
-*
-* @author Jakob Sack
-* @copyright 2012 Jakob Sack owncloud@jakobsack.de
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-/**
- * This class does the dirty work.
- *
- * TODO: locking in doAllSteps
- */
-class OC_BackgroundJob_Worker{
-	/**
-	 * @brief executes all tasks
-	 * @return boolean
-	 *
-	 * This method executes all regular tasks and then all queued tasks.
-	 * This method should be called by cli scripts that do not let the user
-	 * wait.
-	 */
-	public static function doAllSteps() {
-		// Do our regular work
-		$lasttask = OC_Appconfig::getValue( 'core', 'backgroundjobs_task', '' );
-
-		$regular_tasks = OC_BackgroundJob_RegularTask::all();
-		ksort( $regular_tasks );
-		foreach( $regular_tasks as $key => $value ) {
-			if( strcmp( $key, $lasttask ) > 0 ) {
-				// Set "restart here" config value
-				OC_Appconfig::setValue( 'core', 'backgroundjobs_task', $key );
-				call_user_func( $value );
-			}
-		}
-		// Reset "start here" config value
-		OC_Appconfig::setValue( 'core', 'backgroundjobs_task', '' );
-
-		// Do our queued tasks
-		$queued_tasks = OC_BackgroundJob_QueuedTask::all();
-		foreach( $queued_tasks as $task ) {
-			OC_BackgroundJob_QueuedTask::delete( $task['id'] );
-			call_user_func( array( $task['klass'], $task['method'] ), $task['parameters'] );
-		}
-
-		return true;
-	}
-
-	/**
-	 * @brief does a single task
-	 * @return boolean
-	 *
-	 * This method executes one task. It saves the last state and continues
-	 * with the next step. This method should be used by webcron and ajax
-	 * services.
-	 */
-	public static function doNextStep() {
-		$laststep = OC_Appconfig::getValue( 'core', 'backgroundjobs_step', 'regular_tasks' );
-
-		if( $laststep == 'regular_tasks' ) {
-			// get last app
-			$lasttask = OC_Appconfig::getValue( 'core', 'backgroundjobs_task', '' );
-
-			// What's the next step?
-			$regular_tasks = OC_BackgroundJob_RegularTask::all();
-			ksort( $regular_tasks );
-			$done = false;
-
-			// search for next background job
-			foreach( $regular_tasks as $key => $value ) {
-				if( strcmp( $key, $lasttask ) > 0 ) {
-					OC_Appconfig::setValue( 'core', 'backgroundjobs_task', $key );
-					$done = true;
-					call_user_func( $value );
-					break;
-				}
-			}
-
-			if( $done == false ) {
-				// Next time load queued tasks
-				OC_Appconfig::setValue( 'core', 'backgroundjobs_step', 'queued_tasks' );
-			}
-		}
-		else{
-			$tasks = OC_BackgroundJob_QueuedTask::all();
-			if( count( $tasks )) {
-				$task = $tasks[0];
-				// delete job before we execute it. This prevents endless loops
-				// of failing jobs.
-				OC_BackgroundJob_QueuedTask::delete($task['id']);
-
-				// execute job
-				call_user_func( array( $task['klass'], $task['method'] ), $task['parameters'] );
-			}
-			else{
-				// Next time load queued tasks
-				OC_Appconfig::setValue( 'core', 'backgroundjobs_step', 'regular_tasks' );
-				OC_Appconfig::setValue( 'core', 'backgroundjobs_task', '' );
-			}
-		}
-
-		return true;
-	}
-}
diff --git a/lib/base.php b/lib/base.php
index 5ea902e0f47b95377ce82a1436c8290b13318e2c..a990cb7c1f5b6eb722a38740faee0910fb11c79c 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -258,12 +258,14 @@ class OC {
 
 	public static function initTemplateEngine() {
 		// Add the stuff we need always
-		OC_Util::addScript("jquery-1.7.2.min");
+		OC_Util::addScript("jquery-1.10.0.min");
+		OC_Util::addScript("jquery-migrate-1.2.1.min");
 		OC_Util::addScript("jquery-ui-1.10.0.custom");
 		OC_Util::addScript("jquery-showpassword");
 		OC_Util::addScript("jquery.infieldlabel");
 		OC_Util::addScript("jquery-tipsy");
 		OC_Util::addScript("compatibility");
+		OC_Util::addScript("jquery.ocdialog");
 		OC_Util::addScript("oc-dialogs");
 		OC_Util::addScript("octemplate");
 		OC_Util::addScript("js");
@@ -277,6 +279,7 @@ class OC {
 		OC_Util::addStyle("multiselect");
 		OC_Util::addStyle("jquery-ui-1.10.0.custom");
 		OC_Util::addStyle("jquery-tipsy");
+		OC_Util::addStyle("jquery.ocdialog");
 		OC_Util::addScript("oc-requesttoken");
 	}
 
@@ -440,14 +443,14 @@ class OC {
 		stream_wrapper_register('oc', 'OC\Files\Stream\OC');
 
 		self::initTemplateEngine();
-		self::checkConfig();
-		self::checkInstalled();
-		self::checkSSL();
 		if ( !self::$CLI ) {
 			self::initSession();
 		} else {
 			self::$session = new \OC\Session\Memory('');
 		}
+		self::checkConfig();
+		self::checkInstalled();
+		self::checkSSL();
 
 		$errors = OC_Util::checkServer();
 		if (count($errors) > 0) {
@@ -537,9 +540,15 @@ class OC {
 	 * register hooks for the cache
 	 */
 	public static function registerCacheHooks() {
-		// register cache cleanup jobs
-		OC_BackgroundJob_RegularTask::register('OC_Cache_FileGlobal', 'gc');
-		OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener');
+		if (OC_Config::getValue('installed', false)) { //don't try to do this before we are properly setup
+			// register cache cleanup jobs
+			try { //if this is executed before the upgrade to the new backgroundjob system is completed it will throw an exception
+				\OCP\BackgroundJob::registerJob('OC_Cache_FileGlobalGC');
+			} catch (Exception $e) {
+
+			}
+			OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener');
+		}
 	}
 
 	/**
diff --git a/lib/cache/file.php b/lib/cache/file.php
index f9ecf41dcacf91f63da8f759434356f086e5574a..531e1d50f40490aa370d14a297cf3bb552cdf450 100644
--- a/lib/cache/file.php
+++ b/lib/cache/file.php
@@ -14,6 +14,7 @@ class OC_Cache_File{
 			return $this->storage;
 		}
 		if(OC_User::isLoggedIn()) {
+			\OC\Files\Filesystem::initMountPoints(OC_User::getUser());
 			$subdir = 'cache';
 			$view = new \OC\Files\View('/'.OC_User::getUser());
 			if(!$view->file_exists($subdir)) {
diff --git a/lib/cache/fileglobalgc.php b/lib/cache/fileglobalgc.php
new file mode 100644
index 0000000000000000000000000000000000000000..a29c31f9063087a49dd9d0d3c498d1e1fe23e68d
--- /dev/null
+++ b/lib/cache/fileglobalgc.php
@@ -0,0 +1,8 @@
+<?php
+
+
+class OC_Cache_FileGlobalGC extends \OC\BackgroundJob\Job{
+	public function run($argument){
+		OC_Cache_FileGlobal::gc();
+	}
+}
diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php
index 0210d5a73f17ce60e85a16e57062a6393cc41da7..cae2e63e4dc18746445e582b707bb7b142175560 100644
--- a/lib/files/cache/cache.php
+++ b/lib/files/cache/cache.php
@@ -100,6 +100,9 @@ class Cache {
 	 */
 	public function get($file) {
 		if (is_string($file) or $file == '') {
+			// normalize file
+			$file = $this->normalize($file);
+
 			$where = 'WHERE `storage` = ? AND `path_hash` = ?';
 			$params = array($this->getNumericStorageId(), md5($file));
 		} else { //file id
@@ -179,6 +182,9 @@ class Cache {
 			$this->update($id, $data);
 			return $id;
 		} else {
+			// normalize file
+			$file = $this->normalize($file);
+
 			if (isset($this->partial[$file])) { //add any saved partial data
 				$data = array_merge($this->partial[$file], $data);
 				unset($this->partial[$file]);
@@ -220,6 +226,17 @@ class Cache {
 	 * @param array $data
 	 */
 	public function update($id, array $data) {
+
+		if(isset($data['path'])) {
+			// normalize path
+			$data['path'] = $this->normalize($data['path']);
+		}
+
+		if(isset($data['name'])) {
+			// normalize path
+			$data['name'] = $this->normalize($data['name']);
+		}
+
 		list($queryParts, $params) = $this->buildParts($data);
 		$params[] = $id;
 
@@ -267,6 +284,9 @@ class Cache {
 	 * @return int
 	 */
 	public function getId($file) {
+		// normalize file
+		$file = $this->normalize($file);
+
 		$pathHash = md5($file);
 
 		$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
@@ -334,6 +354,10 @@ class Cache {
 	 * @param string $target
 	 */
 	public function move($source, $target) {
+		// normalize source and target
+		$source = $this->normalize($source);
+		$target = $this->normalize($target);
+
 		$sourceData = $this->get($source);
 		$sourceId = $sourceData['fileid'];
 		$newParentId = $this->getParentId($target);
@@ -374,6 +398,9 @@ class Cache {
 	 * @return int, Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE
 	 */
 	public function getStatus($file) {
+		// normalize file
+		$file = $this->normalize($file);
+
 		$pathHash = md5($file);
 		$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
 		$result = $query->execute(array($this->getNumericStorageId(), $pathHash));
@@ -402,6 +429,10 @@ class Cache {
 	 * @return array of file data
 	 */
 	public function search($pattern) {
+
+		// normalize pattern
+		$pattern = $this->normalize($pattern);
+
 		$query = \OC_DB::prepare('
 			SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
 			FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `storage` = ?'
@@ -551,4 +582,14 @@ class Cache {
 			return null;
 		}
 	}
+
+	/**
+	 * normalize the given path
+	 * @param $path
+	 * @return string
+	 */
+	public function normalize($path) {
+
+		return \OC_Util::normalizeUnicode($path);
+	}
 }
diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php
index faa5ff5eacc4a5ee938a1d71b12d582c803c2f8a..29c30b0f36c8cb657f4bd28ea8bba4576ec9dcd5 100644
--- a/lib/files/cache/permissions.php
+++ b/lib/files/cache/permissions.php
@@ -85,6 +85,26 @@ class Permissions {
 		return $filePermissions;
 	}
 
+	/**
+	 * get the permissions for all files in a folder
+	 *
+	 * @param int $parentId
+	 * @param string $user
+	 * @return int[]
+	 */
+	public function getDirectoryPermissions($parentId, $user) {
+		$query = \OC_DB::prepare('SELECT `*PREFIX*permissions`.`fileid`, `permissions`
+			FROM `*PREFIX*permissions` INNER JOIN `*PREFIX*filecache` ON `*PREFIX*permissions`.`fileid` = `*PREFIX*filecache`.`fileid`
+			WHERE `*PREFIX*filecache`.`parent` = ? AND `*PREFIX*permissions`.`user` = ?');
+
+		$result = $query->execute(array($parentId, $user));
+		$filePermissions = array();
+		while ($row = $result->fetchRow()) {
+			$filePermissions[$row['fileid']] = $row['permissions'];
+		}
+		return $filePermissions;
+	}
+
 	/**
 	 * remove the permissions for a file
 	 *
diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
index 46122221dc20376d85284ae61d98627670d5382c..8f9a7921956f6a4c3fbc9eab9d6ef70b8ee64caf 100644
--- a/lib/files/cache/scanner.php
+++ b/lib/files/cache/scanner.php
@@ -78,18 +78,21 @@ class Scanner {
 						$this->scanFile($parent);
 					}
 				}
-				if($cacheData = $this->cache->get($file)) {
+				$newData = $data;
+				if ($cacheData = $this->cache->get($file)) {
+					if ($checkExisting && $data['size'] === -1) {
+						$data['size'] = $cacheData['size'];
+					}
 					if ($data['mtime'] === $cacheData['mtime'] &&
 						$data['size'] === $cacheData['size']) {
 						$data['etag'] = $cacheData['etag'];
 					}
+					// Only update metadata that has changed
+					$newData = array_diff($data, $cacheData);
 				}
-				if ($checkExisting and $cacheData) {
-					if ($data['size'] === -1) {
-						$data['size'] = $cacheData['size'];
-					}
+				if (!empty($newData)) {
+					$this->cache->put($file, $newData);
 				}
-				$this->cache->put($file, $data);
 			}
 			return $data;
 		}
diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php
index b10625e20de0ad8f4d29c147374458ac67e0d7bf..d3fddf8c421ba73f19e0d172acef4e6cf15ff669 100644
--- a/lib/files/filesystem.php
+++ b/lib/files/filesystem.php
@@ -152,6 +152,9 @@ class Filesystem {
 	 * @return string
 	 */
 	static public function getMountPoint($path) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		$mount = self::$mounts->find($path);
 		if ($mount) {
 			return $mount->getMountPoint();
@@ -167,6 +170,9 @@ class Filesystem {
 	 * @return string[]
 	 */
 	static public function getMountPoints($path) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		$result = array();
 		$mounts = self::$mounts->findIn($path);
 		foreach ($mounts as $mount) {
@@ -182,6 +188,9 @@ class Filesystem {
 	 * @return \OC\Files\Storage\Storage
 	 */
 	public static function getStorage($mountPoint) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		$mount = self::$mounts->find($mountPoint);
 		return $mount->getStorage();
 	}
@@ -191,6 +200,9 @@ class Filesystem {
 	 * @return Mount\Mount[]
 	 */
 	public static function getMountByStorageId($id) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		return self::$mounts->findByStorageId($id);
 	}
 
@@ -199,6 +211,9 @@ class Filesystem {
 	 * @return Mount\Mount[]
 	 */
 	public static function getMountByNumericId($id) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		return self::$mounts->findByNumericId($id);
 	}
 
@@ -209,6 +224,9 @@ class Filesystem {
 	 * @return array consisting of the storage and the internal path
 	 */
 	static public function resolvePath($path) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		$mount = self::$mounts->find($path);
 		if ($mount) {
 			return array($mount->getStorage(), $mount->getInternalPath($path));
@@ -223,7 +241,7 @@ class Filesystem {
 		}
 		self::$defaultInstance = new View($root);
 
-		if(!self::$mounts) {
+		if (!self::$mounts) {
 			self::$mounts = new Mount\Manager();
 		}
 
@@ -235,8 +253,8 @@ class Filesystem {
 		return true;
 	}
 
-	static public function initMounts(){
-		if(!self::$mounts) {
+	static public function initMounts() {
+		if (!self::$mounts) {
 			self::$mounts = new Mount\Manager();
 		}
 	}
@@ -359,7 +377,9 @@ class Filesystem {
 	 * clear all mounts and storage backends
 	 */
 	public static function clearMounts() {
-		self::$mounts->clear();
+		if (self::$mounts) {
+			self::$mounts->clear();
+		}
 	}
 
 	/**
@@ -370,6 +390,9 @@ class Filesystem {
 	 * @param string $mountpoint
 	 */
 	static public function mount($class, $arguments, $mountpoint) {
+		if (!self::$mounts) {
+			\OC_Util::setupFS();
+		}
 		$mount = new Mount\Mount($class, $mountpoint, $arguments);
 		self::$mounts->addMount($mount);
 	}
@@ -631,9 +654,8 @@ class Filesystem {
 			$path = substr($path, 0, -1);
 		}
 		//normalize unicode if possible
-		if (class_exists('Normalizer')) {
-			$path = \Normalizer::normalize($path);
-		}
+		$path = \OC_Util::normalizeUnicode($path);
+
 		return $path;
 	}
 
diff --git a/lib/files/view.php b/lib/files/view.php
index 8e7727d335c873486473cad20cf8b6154676917a..ecb0f30400a43545a444cc86a402421bb6f619f8 100644
--- a/lib/files/view.php
+++ b/lib/files/view.php
@@ -267,7 +267,7 @@ class View {
 			$absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path));
 			if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data)
 				and Filesystem::isValidPath($path)
-				and ! Filesystem::isFileBlacklisted($path)
+					and !Filesystem::isFileBlacklisted($path)
 			) {
 				$path = $this->getRelativePath($absolutePath);
 				$exists = $this->file_exists($path);
@@ -344,7 +344,7 @@ class View {
 			\OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2)
 			and Filesystem::isValidPath($path2)
 			and Filesystem::isValidPath($path1)
-			and ! Filesystem::isFileBlacklisted($path2)
+			and !Filesystem::isFileBlacklisted($path2)
 		) {
 			$path1 = $this->getRelativePath($absolutePath1);
 			$path2 = $this->getRelativePath($absolutePath2);
@@ -371,7 +371,7 @@ class View {
 					list(, $internalPath2) = Filesystem::resolvePath($absolutePath2 . $postFix2);
 					if ($storage) {
 						$result = $storage->rename($internalPath1, $internalPath2);
-                        \OC_FileProxy::runPostProxies('rename', $absolutePath1, $absolutePath2);
+						\OC_FileProxy::runPostProxies('rename', $absolutePath1, $absolutePath2);
 					} else {
 						$result = false;
 					}
@@ -418,7 +418,7 @@ class View {
 			\OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2)
 			and Filesystem::isValidPath($path2)
 			and Filesystem::isValidPath($path1)
-			and ! Filesystem::isFileBlacklisted($path2)
+			and !Filesystem::isFileBlacklisted($path2)
 		) {
 			$path1 = $this->getRelativePath($absolutePath1);
 			$path2 = $this->getRelativePath($absolutePath2);
@@ -632,7 +632,7 @@ class View {
 		$absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path));
 		if (\OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam)
 			and Filesystem::isValidPath($path)
-			and ! Filesystem::isFileBlacklisted($path)
+				and !Filesystem::isFileBlacklisted($path)
 		) {
 			$path = $this->getRelativePath($absolutePath);
 			if ($path == null) {
@@ -760,7 +760,7 @@ class View {
 			}
 		}
 
-        $data = \OC_FileProxy::runPostProxies('getFileInfo', $path, $data);
+		$data = \OC_FileProxy::runPostProxies('getFileInfo', $path, $data);
 
 		return $data;
 	}
@@ -797,18 +797,18 @@ class View {
 			}
 
 			$files = $cache->getFolderContents($internalPath); //TODO: mimetype_filter
+			$permissions = $permissionsCache->getDirectoryPermissions($cache->getId($internalPath), $user);
 
 			$ids = array();
 			foreach ($files as $i => $file) {
 				$files[$i]['type'] = $file['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file';
 				$ids[] = $file['fileid'];
 
-				$permissions = $permissionsCache->get($file['fileid'], $user);
-				if ($permissions === -1) {
-					$permissions = $storage->getPermissions($file['path']);
-					$permissionsCache->set($file['fileid'], $user, $permissions);
+				if (!isset($permissions[$file['fileid']])) {
+					$permissions[$file['fileid']] = $storage->getPermissions($file['path']);
+					$permissionsCache->set($file['fileid'], $user, $permissions[$file['fileid']]);
 				}
-				$files[$i]['permissions'] = $permissions;
+				$files[$i]['permissions'] = $permissions[$file['fileid']];
 			}
 
 			//add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders
diff --git a/lib/helper.php b/lib/helper.php
index c69445ed78823cc9dae27ebd439e93c23b24ddcb..225e9fd2a9a439e7903d1e6bbc8ddf0c08206078 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -27,6 +27,7 @@
 class OC_Helper {
 	private static $mimetypes=array();
 	private static $tmpFiles=array();
+	private static $mimetypeIcons = array();
 
 	/**
 	 * @brief Creates an url using a defined route
@@ -187,31 +188,38 @@ class OC_Helper {
 	 *
 	 * Returns the path to the image of this file type.
 	 */
-	public static function mimetypeIcon( $mimetype ) {
-		$alias=array('application/xml'=>'code/xml');
-		if(isset($alias[$mimetype])) {
-			$mimetype=$alias[$mimetype];
+	public static function mimetypeIcon($mimetype) {
+		$alias = array('application/xml' => 'code/xml');
+		if (isset($alias[$mimetype])) {
+			$mimetype = $alias[$mimetype];
+		}
+		if (isset(self::$mimetypeIcons[$mimetype])) {
+			return self::$mimetypeIcons[$mimetype];
 		}
 		// Replace slash and backslash with a minus
-		$mimetype = str_replace( "/", "-", $mimetype );
-		$mimetype = str_replace( "\\", "-", $mimetype );
+		$icon = str_replace('/', '-', $mimetype);
+		$icon = str_replace( '\\', '-', $icon);
 
 		// Is it a dir?
-		if( $mimetype == "dir" ) {
-			return OC::$WEBROOT."/core/img/filetypes/folder.png";
+		if ($mimetype === 'dir') {
+			self::$mimetypeIcons[$mimetype] = OC::$WEBROOT.'/core/img/filetypes/folder.png';
+			return OC::$WEBROOT.'/core/img/filetypes/folder.png';
 		}
 
 		// Icon exists?
-		if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$mimetype.png" )) {
-			return OC::$WEBROOT."/core/img/filetypes/$mimetype.png";
-		}
-		//try only the first part of the filetype
-		$mimetype=substr($mimetype, 0, strpos($mimetype, '-'));
-		if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$mimetype.png" )) {
-			return OC::$WEBROOT."/core/img/filetypes/$mimetype.png";
+		if (file_exists(OC::$SERVERROOT.'/core/img/filetypes/'.$icon.'.png')) {
+			self::$mimetypeIcons[$mimetype] = OC::$WEBROOT.'/core/img/filetypes/'.$icon.'.png';
+			return OC::$WEBROOT.'/core/img/filetypes/'.$icon.'.png';
 		}
-		else{
-			return OC::$WEBROOT."/core/img/filetypes/file.png";
+
+		// Try only the first part of the filetype
+		$mimePart = substr($icon, 0, strpos($icon, '-'));
+		if (file_exists(OC::$SERVERROOT.'/core/img/filetypes/'.$mimePart.'.png')) {
+			self::$mimetypeIcons[$mimetype] = OC::$WEBROOT.'/core/img/filetypes/'.$mimePart.'.png';
+			return OC::$WEBROOT.'/core/img/filetypes/'.$mimePart.'.png';
+		} else {
+			self::$mimetypeIcons[$mimetype] = OC::$WEBROOT.'/core/img/filetypes/file.png';
+			return OC::$WEBROOT.'/core/img/filetypes/file.png';
 		}
 	}
 
diff --git a/lib/l10n/sk_SK.php b/lib/l10n/sk_SK.php
index 121b2405dcfb961a7ca9132e79c2dbb40c7a113d..c1ec2470b46c5bd08833f95338ccffe6efcd0fb2 100644
--- a/lib/l10n/sk_SK.php
+++ b/lib/l10n/sk_SK.php
@@ -24,6 +24,7 @@
 "%s set the database host." => "Zadajte názov počítača s databázou %s.",
 "PostgreSQL username and/or password not valid" => "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné",
 "You need to enter either an existing account or the administrator." => "Musíte zadať jestvujúci účet alebo administrátora.",
+"Oracle connection could not be established" => "Nie je možné pripojiť sa k Oracle",
 "MySQL username and/or password not valid" => "Používateľské meno a/alebo heslo pre MySQL databázu je neplatné",
 "DB Error: \"%s\"" => "Chyba DB: \"%s\"",
 "Offending command was: \"%s\"" => "Podozrivý príkaz bol: \"%s\"",
diff --git a/lib/mail.php b/lib/mail.php
index 61634632efce4c3bb2330b51fe422fc5c5085878..e15af277a640ee47962a3c070f789eb5e952d1c7 100644
--- a/lib/mail.php
+++ b/lib/mail.php
@@ -113,7 +113,7 @@ class OC_Mail {
 	 */
 	public static function getfooter() {
 
-		$txt="\n--\n";
+		$txt="\n-- \n";
 		$txt.="ownCloud\n";
 		$txt.="Your Cloud, Your Data, Your Way!\n";
 		return($txt);
diff --git a/lib/public/backgroundjob.php b/lib/public/backgroundjob.php
index 601046fe691dcf9146371699d060bb03f436b485..cc076a3a845ad2944721cc8346c686434475dc9c 100644
--- a/lib/public/backgroundjob.php
+++ b/lib/public/backgroundjob.php
@@ -1,49 +1,46 @@
 <?php
 /**
-* ownCloud
-*
-* @author Jakob Sack
-* @copyright 2012 Jakob Sack owncloud@jakobsack.de
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
+ * ownCloud
+ *
+ * @author Jakob Sack
+ * @copyright 2012 Jakob Sack owncloud@jakobsack.de
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 
 /**
- * Public interface of ownCloud forbackground jobs.
+ * Public interface of ownCloud for background jobs.
  */
 
 // use OCP namespace for all classes that are considered public.
 // This means that they should be used by apps instead of the internal ownCloud classes
 namespace OCP;
 
+use \OC\BackgroundJob\JobList;
+
 /**
- * This class provides functions to manage backgroundjobs in ownCloud
- *
- * There are two kind of background jobs in ownCloud: regular tasks and
- * queued tasks.
+ * This class provides functions to register backgroundjobs in ownCloud
  *
- * Regular tasks have to be registered in appinfo.php and
- * will run on a regular base. Fetching news could be a task that should run
- * frequently.
+ * To create a new backgroundjob create a new class that inharits from either \OC\BackgroundJob\Job,
+ * \OC\BackgroundJob\QueuedJob or \OC\BackgroundJob\TimedJob and register it using
+ * \OCP\BackgroundJob->registerJob($job, $argument), $argument will be passed to the run() function
+ * of the job when the job is executed.
  *
- * Queued tasks have to be registered each time you want to execute them.
- * An example of the queued task would be the creation of the thumbnail. As
- * soon as the user uploads a picture the gallery app registers the queued
- * task "create thumbnail" and saves the path in the parameter instead of doing
- * the work right away. This makes the app more responsive. As soon as the task
- * is done it will be deleted from the list.
+ * A regular Job will be executed every time cron.php is run, a QueuedJob will only run once and a TimedJob
+ * will only run at a specific interval which is to be specified in the constructor of the job by calling
+ * $this->setInterval($interval) with $interval in seconds.
  */
 class BackgroundJob {
 	/**
@@ -59,82 +56,136 @@ class BackgroundJob {
 
 	/**
 	 * @brief sets the background jobs execution type
-	 * @param $type execution type
+	 * @param string $type execution type
 	 * @return boolean
 	 *
 	 * This method sets the execution type of the background jobs. Possible types
 	 * are "none", "ajax", "webcron", "cron"
 	 */
-	public static function setExecutionType( $type ) {
-		return \OC_BackgroundJob::setExecutionType( $type );
+	public static function setExecutionType($type) {
+		return \OC_BackgroundJob::setExecutionType($type);
+	}
+
+	/**
+	 * @param \OC\BackgroundJob\Job|string $job
+	 * @param mixed $argument
+	 */
+	public static function registerJob($job, $argument = null) {
+		$jobList = new JobList();
+		$jobList->add($job, $argument);
 	}
 
 	/**
+	 * @deprecated
 	 * @brief creates a regular task
-	 * @param $klass class name
-	 * @param $method method name
+	 * @param string $klass class name
+	 * @param string $method method name
 	 * @return true
 	 */
-	public static function addRegularTask( $klass, $method ) {
-		return \OC_BackgroundJob_RegularTask::register( $klass, $method );
+	public static function addRegularTask($klass, $method) {
+		self::registerJob('OC\BackgroundJob\Legacy\RegularJob', array($klass, $method));
+		return true;
 	}
 
 	/**
+	 * @deprecated
 	 * @brief gets all regular tasks
 	 * @return associative array
 	 *
 	 * key is string "$klass-$method", value is array( $klass, $method )
 	 */
 	static public function allRegularTasks() {
-		return \OC_BackgroundJob_RegularTask::all();
+		$jobList = new JobList();
+		$allJobs = $jobList->getAll();
+		$regularJobs = array();
+		foreach ($allJobs as $job) {
+			if ($job instanceof RegularLegacyJob) {
+				$key = implode('-', $job->getArgument());
+				$regularJobs[$key] = $job->getArgument();
+			}
+		}
+		return $regularJobs;
 	}
 
 	/**
+	 * @deprecated
 	 * @brief Gets one queued task
-	 * @param $id ID of the task
+	 * @param int $id ID of the task
 	 * @return associative array
 	 */
-	public static function findQueuedTask( $id ) {
-		return \OC_BackgroundJob_QueuedTask::find( $id );
+	public static function findQueuedTask($id) {
+		$jobList = new JobList();
+		return $jobList->getById($id);
 	}
 
 	/**
+	 * @deprecated
 	 * @brief Gets all queued tasks
 	 * @return array with associative arrays
 	 */
 	public static function allQueuedTasks() {
-		return \OC_BackgroundJob_QueuedTask::all();
+		$jobList = new JobList();
+		$allJobs = $jobList->getAll();
+		$queuedJobs = array();
+		foreach ($allJobs as $job) {
+			if ($job instanceof QueuedLegacyJob) {
+				$queuedJob = $job->getArgument();
+				$queuedJob['id'] = $job->getId();
+				$queuedJobs[] = $queuedJob;
+			}
+		}
+		return $queuedJobs;
 	}
 
 	/**
+	 * @deprecated
 	 * @brief Gets all queued tasks of a specific app
-	 * @param $app app name
+	 * @param string $app app name
 	 * @return array with associative arrays
 	 */
-	public static function queuedTaskWhereAppIs( $app ) {
-		return \OC_BackgroundJob_QueuedTask::whereAppIs( $app );
+	public static function queuedTaskWhereAppIs($app) {
+		$jobList = new JobList();
+		$allJobs = $jobList->getAll();
+		$queuedJobs = array();
+		foreach ($allJobs as $job) {
+			if ($job instanceof QueuedLegacyJob) {
+				$queuedJob = $job->getArgument();
+				$queuedJob['id'] = $job->getId();
+				if ($queuedJob['app'] === $app) {
+					$queuedJobs[] = $queuedJob;
+				}
+			}
+		}
+		return $queuedJobs;
 	}
 
 	/**
+	 * @deprecated
 	 * @brief queues a task
-	 * @param $app app name
-	 * @param $klass class name
-	 * @param $method method name
-	 * @param $parameters all useful data as text
-	 * @return id of task
+	 * @param string $app app name
+	 * @param string $class class name
+	 * @param string $method method name
+	 * @param string $parameters all useful data as text
+	 * @return int id of task
 	 */
-	public static function addQueuedTask( $app, $klass, $method, $parameters ) {
-		return \OC_BackgroundJob_QueuedTask::add( $app, $klass, $method, $parameters );
+	public static function addQueuedTask($app, $class, $method, $parameters) {
+		self::registerJob('OC\BackgroundJob\Legacy\QueuedJob', array('app' => $app, 'klass' => $class, 'method' => $method, 'parameters' => $parameters));
+		return true;
 	}
 
 	/**
+	 * @deprecated
 	 * @brief deletes a queued task
-	 * @param $id id of task
-	 * @return true/false
+	 * @param int $id id of task
+	 * @return bool
 	 *
 	 * Deletes a report
 	 */
-	public static function deleteQueuedTask( $id ) {
-		return \OC_BackgroundJob_QueuedTask::delete( $id );
+	public static function deleteQueuedTask($id) {
+		$jobList = new JobList();
+		$job = $jobList->getById($id);
+		if ($job) {
+			$jobList->remove($job);
+		}
 	}
 }
diff --git a/lib/public/share.php b/lib/public/share.php
index 03d662676c62d8888f85c02a304b53c03baeb960..81f5515bb4ba1d50522d9a00a364c71aa69c3e7d 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -123,27 +123,32 @@ class Share {
 		return $path;
 	
 	}
-		
+
 	/**
 	* @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' 
+	* @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) {
 
-		$path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR));
-		$path = '';
 		$shares = array();
 		$publicShare = false;
+		$source = -1;
+		$cache = false;
+
 		$view = new \OC\Files\View('/' . $user . '/files/');
-		foreach ($path_parts as $p) {
-			$path .= '/' . $p;
-			$meta = $view->getFileInfo(\OC_Filesystem::normalizePath($path));
+		$meta = $view->getFileInfo(\OC\Files\Filesystem::normalizePath($path));
+
+		if($meta !== false) {
 			$source = $meta['fileid'];
+			$cache = new \OC\Files\Cache\Cache($meta['storage']);
+		}
+
+		while ($source !== -1) {
 
 			// Fetch all shares of this file path from DB
 			$query = \OC_DB::prepare(
@@ -156,14 +161,13 @@ class Share {
 
 			$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()) {
-				$shares[] = $row['share_with'];
+			if (\OCP\DB::isError($result)) {
+				\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
+			} else {
+				while ($row = $result->fetchRow()) {
+					$shares[] = $row['share_with'];
+				}
 			}
-
 			// We also need to take group shares into account
 
 			$query = \OC_DB::prepare(
@@ -176,32 +180,42 @@ class Share {
 
 			$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()) {
-				$usersInGroup = \OC_Group::usersInGroup($row['share_with']);
-				$shares = array_merge($shares, $usersInGroup);
+			if (\OCP\DB::isError($result)) {
+				\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
+			} else {
+				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 = ?'
-			);
+			if (!$publicShare) {
+				$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 (\OCP\DB::isError($result)) {
+					\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR);
+				} else {
+					if ($result->fetchRow()) {
+						$publicShare = true;
+					}
+				}
 			}
-
-			if ($result->fetchRow()) {
-				$publicShare = true;
+			
+			// let's get the parent for the next round
+			$meta = $cache->get((int)$source);
+			if($meta !== false) {
+				$source = (int)$meta['parent'];
+			} else {
+				$source = -1;
 			}
 		}
 		// Include owner in list of users, if requested
@@ -995,7 +1009,7 @@ class Share {
 					if (!isset($mounts[$row['storage']])) {
 						$mountPoints = \OC\Files\Filesystem::getMountByNumericId($row['storage']);
 						if (is_array($mountPoints)) {
-							$mounts[$row['storage']] = $mountPoints[key($mountPoints)];
+							$mounts[$row['storage']] = current($mountPoints);
 						}
 					}
 					if ($mounts[$row['storage']]) {
diff --git a/lib/user.php b/lib/user.php
index 1dde87a13395dabc331c597317ad25ad3038a2e7..503ac3f749327eea5328a34551e8940a5b9fc62e 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -30,35 +30,85 @@
  *   post_createUser(uid, password)
  *   pre_deleteUser(&run, uid)
  *   post_deleteUser(uid)
- *   pre_setPassword(&run, uid, password)
- *   post_setPassword(uid, password)
+ *   pre_setPassword(&run, uid, password, recoveryPassword)
+ *   post_setPassword(uid, password, recoveryPassword)
  *   pre_login(&run, uid, password)
  *   post_login(uid)
  *   logout()
  */
 class OC_User {
-	// The backend used for user management
-	private static $_usedBackends = array();
+	public static $userSession = null;
+
+	private static function getUserSession() {
+		if (!self::$userSession) {
+			$manager = new \OC\User\Manager();
+			self::$userSession = new \OC\User\Session($manager, \OC::$session);
+			self::$userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) {
+				\OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password));
+			});
+			self::$userSession->listen('\OC\User', 'postCreateUser', function ($user, $password) {
+				/** @var $user \OC\User\User */
+				\OC_Hook::emit('OC_User', 'post_createUser', array('uid' => $user->getUID(), 'password' => $password));
+			});
+			self::$userSession->listen('\OC\User', 'preDelete', function ($user) {
+				/** @var $user \OC\User\User */
+				\OC_Hook::emit('OC_User', 'pre_deleteUser', array('run' => true, 'uid' => $user->getUID()));
+			});
+			self::$userSession->listen('\OC\User', 'postDelete', function ($user) {
+				/** @var $user \OC\User\User */
+				\OC_Hook::emit('OC_User', 'post_deleteUser', array('uid' => $user->getUID()));
+			});
+			self::$userSession->listen('\OC\User', 'preSetPassword', function ($user, $password, $recoveryPassword) {
+				/** @var $user \OC\User\User */
+				OC_Hook::emit('OC_User', 'pre_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
+			});
+			self::$userSession->listen('\OC\User', 'postSetPassword', function ($user, $password, $recoveryPassword) {
+				/** @var $user \OC\User\User */
+				OC_Hook::emit('OC_User', 'post_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
+			});
+			self::$userSession->listen('\OC\User', 'preLogin', function ($uid, $password) {
+				\OC_Hook::emit('OC_User', 'pre_login', array('run' => true, 'uid' => $uid, 'password' => $password));
+			});
+			self::$userSession->listen('\OC\User', 'postLogin', function ($user, $password) {
+				/** @var $user \OC\User\User */
+				\OC_Hook::emit('OC_User', 'post_login', array('run' => true, 'uid' => $user->getUID(), 'password' => $password));
+			});
+			self::$userSession->listen('\OC\User', 'logout', function () {
+				\OC_Hook::emit('OC_User', 'logout', array());
+			});
+		}
+		return self::$userSession;
+	}
 
-	private static $_setupedBackends = array();
+	/**
+	 * @return \OC\User\Manager
+	 */
+	private static function getManager() {
+		return self::getUserSession()->getManager();
+	}
 
-	// Backends available (except database)
 	private static $_backends = array();
 
+	private static $_usedBackends = array();
+
+	private static $_setupedBackends = array();
+
 	/**
 	 * @brief registers backend
-	 * @param $name name of the backend
-	 * @returns true/false
+	 * @param string $backend name of the backend
+	 * @deprecated Add classes by calling useBackend with a class instance instead
+	 * @return bool
 	 *
 	 * Makes a list of backends that can be used by other modules
 	 */
-	public static function registerBackend( $backend ) {
+	public static function registerBackend($backend) {
 		self::$_backends[] = $backend;
 		return true;
 	}
 
 	/**
 	 * @brief gets available backends
+	 * @deprecated
 	 * @returns array of backends
 	 *
 	 * Returns the names of all backends.
@@ -69,6 +119,7 @@ class OC_User {
 
 	/**
 	 * @brief gets used backends
+	 * @deprecated
 	 * @returns array of backends
 	 *
 	 * Returns the names of all used backends.
@@ -79,33 +130,36 @@ class OC_User {
 
 	/**
 	 * @brief Adds the backend to the list of used backends
-	 * @param $backend default: database The backend to use for user managment
-	 * @returns true/false
+	 * @param string | OC_User_Backend $backend default: database The backend to use for user management
+	 * @return bool
 	 *
 	 * Set the User Authentication Module
 	 */
-	public static function useBackend( $backend = 'database' ) {
-		if($backend instanceof OC_User_Interface) {
-			OC_Log::write('core', 'Adding user backend instance of '.get_class($backend).'.', OC_Log::DEBUG);
-			self::$_usedBackends[get_class($backend)]=$backend;
+	public static function useBackend($backend = 'database') {
+		if ($backend instanceof OC_User_Interface) {
+			OC_Log::write('core', 'Adding user backend instance of ' . get_class($backend) . '.', OC_Log::DEBUG);
+			self::$_usedBackends[get_class($backend)] = $backend;
+			self::getManager()->registerBackend($backend);
 		} else {
 			// You'll never know what happens
-			if( null === $backend OR !is_string( $backend )) {
+			if (null === $backend OR !is_string($backend)) {
 				$backend = 'database';
 			}
 
 			// Load backend
-			switch( $backend ) {
+			switch ($backend) {
 				case 'database':
 				case 'mysql':
 				case 'sqlite':
-					OC_Log::write('core', 'Adding user backend '.$backend.'.', OC_Log::DEBUG);
+					OC_Log::write('core', 'Adding user backend ' . $backend . '.', OC_Log::DEBUG);
 					self::$_usedBackends[$backend] = new OC_User_Database();
+					self::getManager()->registerBackend(self::$_usedBackends[$backend]);
 					break;
 				default:
-					OC_Log::write('core', 'Adding default user backend '.$backend.'.', OC_Log::DEBUG);
+					OC_Log::write('core', 'Adding default user backend ' . $backend . '.', OC_Log::DEBUG);
 					$className = 'OC_USER_' . strToUpper($backend);
 					self::$_usedBackends[$backend] = new $className();
+					self::getManager()->registerBackend(self::$_usedBackends[$backend]);
 					break;
 			}
 		}
@@ -116,121 +170,73 @@ class OC_User {
 	 * remove all used backends
 	 */
 	public static function clearBackends() {
-		self::$_usedBackends=array();
+		self::$_usedBackends = array();
+		self::getManager()->clearBackends();
 	}
 
 	/**
 	 * setup the configured backends in config.php
 	 */
 	public static function setupBackends() {
-		$backends=OC_Config::getValue('user_backends', array());
-		foreach($backends as $i=>$config) {
-			$class=$config['class'];
-			$arguments=$config['arguments'];
-			if(class_exists($class)) {
-				if(array_search($i, self::$_setupedBackends)===false) {
+		$backends = OC_Config::getValue('user_backends', array());
+		foreach ($backends as $i => $config) {
+			$class = $config['class'];
+			$arguments = $config['arguments'];
+			if (class_exists($class)) {
+				if (array_search($i, self::$_setupedBackends) === false) {
 					// make a reflection object
 					$reflectionObj = new ReflectionClass($class);
 
 					// use Reflection to create a new instance, using the $args
 					$backend = $reflectionObj->newInstanceArgs($arguments);
 					self::useBackend($backend);
-					$_setupedBackends[]=$i;
+					$_setupedBackends[] = $i;
 				} else {
-					OC_Log::write('core', 'User backend '.$class.' already initialized.', OC_Log::DEBUG);
+					OC_Log::write('core', 'User backend ' . $class . ' already initialized.', OC_Log::DEBUG);
 				}
 			} else {
-				OC_Log::write('core', 'User backend '.$class.' not found.', OC_Log::ERROR);
+				OC_Log::write('core', 'User backend ' . $class . ' not found.', OC_Log::ERROR);
 			}
 		}
 	}
 
 	/**
 	 * @brief Create a new user
-	 * @param $uid The username of the user to create
-	 * @param $password The password of the new user
-	 * @returns true/false
+	 * @param string $uid The username of the user to create
+	 * @param string $password The password of the new user
+	 * @throws Exception
+	 * @return bool true/false
 	 *
 	 * Creates a new user. Basic checking of username is done in OC_User
 	 * itself, not in its subclasses.
 	 *
 	 * Allowed characters in the username are: "a-z", "A-Z", "0-9" and "_.@-"
 	 */
-	public static function createUser( $uid, $password ) {
-		// Check the name for bad characters
-		// Allowed are: "a-z", "A-Z", "0-9" and "_.@-"
-		if( preg_match( '/[^a-zA-Z0-9 _\.@\-]/', $uid )) {
-			throw new Exception('Only the following characters are allowed in a username:'
-				.' "a-z", "A-Z", "0-9", and "_.@-"');
-		}
-		// No empty username
-		if(trim($uid) == '') {
-			throw new Exception('A valid username must be provided');
-		}
-		// No empty password
-		if(trim($password) == '') {
-			throw new Exception('A valid password must be provided');
-		}
-
-		// Check if user already exists
-		if( self::userExistsForCreation($uid) ) {
-			throw new Exception('The username is already being used');
-		}
-
-
-		$run = true;
-		OC_Hook::emit( "OC_User", "pre_createUser", array( "run" => &$run, "uid" => $uid, "password" => $password ));
-
-		if( $run ) {
-			//create the user in the first backend that supports creating users
-			foreach(self::$_usedBackends as $backend) {
-				if(!$backend->implementsActions(OC_USER_BACKEND_CREATE_USER))
-					continue;
-
-				$backend->createUser($uid, $password);
-				OC_Hook::emit( "OC_User", "post_createUser", array( "uid" => $uid, "password" => $password ));
-
-				return self::userExists($uid);
-			}
-		}
-		return false;
+	public static function createUser($uid, $password) {
+		self::getManager()->createUser($uid, $password);
 	}
 
 	/**
 	 * @brief delete a user
-	 * @param $uid The username of the user to delete
-	 * @returns true/false
+	 * @param string $uid The username of the user to delete
+	 * @return bool
 	 *
 	 * Deletes a user
 	 */
-	public static function deleteUser( $uid ) {
-		$run = true;
-		OC_Hook::emit( "OC_User", "pre_deleteUser", array( "run" => &$run, "uid" => $uid ));
-
-		if( $run ) {
-			//delete the user from all backends
-			foreach(self::$_usedBackends as $backend) {
-				$backend->deleteUser($uid);
-			}
-			if (self::userExists($uid)) {
-				return false;
-			}
+	public static function deleteUser($uid) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			$user->delete();
+
 			// We have to delete the user from all groups
-			foreach( OC_Group::getUserGroups( $uid ) as $i ) {
-				OC_Group::removeFromGroup( $uid, $i );
+			foreach (OC_Group::getUserGroups($uid) as $i) {
+				OC_Group::removeFromGroup($uid, $i);
 			}
 			// Delete the user's keys in preferences
 			OC_Preferences::deleteUser($uid);
 
 			// Delete user files in /data/
-			OC_Helper::rmdirr(OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ) . '/'.$uid.'/');
-
-			// Emit and exit
-			OC_Hook::emit( "OC_User", "post_deleteUser", array( "uid" => $uid ));
-			return true;
-		}
-		else{
-			return false;
+			OC_Helper::rmdirr(OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid . '/');
 		}
 	}
 
@@ -238,75 +244,34 @@ class OC_User {
 	 * @brief Try to login a user
 	 * @param $uid The username of the user to log in
 	 * @param $password The password of the user
-	 * @returns true/false
+	 * @return bool
 	 *
 	 * Log in a user and regenerate a new session - if the password is ok
 	 */
-	public static function login( $uid, $password ) {
-		$run = true;
-		OC_Hook::emit( "OC_User", "pre_login", array( "run" => &$run, "uid" => $uid, "password" => $password));
-
-		if( $run ) {
-			$uid = self::checkPassword( $uid, $password );
-			$enabled = self::isEnabled($uid);
-			if($uid && $enabled) {
-				session_regenerate_id(true);
-				self::setUserId($uid);
-				self::setDisplayName($uid);
-				OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid, 'password'=>$password ));
-				return true;
-			}
-		}
-		return false;
+	public static function login($uid, $password) {
+		return self::getUserSession()->login($uid, $password);
 	}
 
 	/**
 	 * @brief Sets user id for session and triggers emit
 	 */
 	public static function setUserId($uid) {
-		\OC::$session->set('user_id', $uid);
+		OC::$session->set('user_id', $uid);
 	}
 
 	/**
 	 * @brief Sets user display name for session
 	 */
 	public static function setDisplayName($uid, $displayName = null) {
-		$result = false;
-		if ($displayName ) {
-			foreach(self::$_usedBackends as $backend) {
-				if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) {
-					if($backend->userExists($uid)) {
-						$result |= $backend->setDisplayName($uid, $displayName);
-					}
-				}
-			}
-		} else {
-			$displayName = self::determineDisplayName($uid);
-			$result = true;
-		}
-		if (OC_User::getUser() === $uid) {
-			\OC::$session->set('display_name', $displayName);
+		if (is_null($displayName)) {
+			$displayName = $uid;
 		}
-		return $result;
-	}
-
-
-	/**
-	 * @brief get display name
-	 * @param $uid The username
-	 * @returns string display name or uid if no display name is defined
-	 *
-	 */
-	private static function determineDisplayName( $uid ) {
-		foreach(self::$_usedBackends as $backend) {
-			if($backend->implementsActions(OC_USER_BACKEND_GET_DISPLAYNAME)) {
-				$result=$backend->getDisplayName( $uid );
-				if($result) {
-					return $result;
-				}
-			}
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->setDisplayName($displayName);
+		} else {
+			return false;
 		}
-		return $uid;
 	}
 
 	/**
@@ -315,36 +280,31 @@ class OC_User {
 	 * Logout, destroys session
 	 */
 	public static function logout() {
-		OC_Hook::emit( "OC_User", "logout", array());
-		session_unset();
-		session_destroy();
-		OC_User::unsetMagicInCookie();
+		self::getUserSession()->logout();
 	}
 
 	/**
 	 * @brief Check if the user is logged in
-	 * @returns true/false
+	 * @returns bool
 	 *
 	 * Checks if the user is logged in
 	 */
 	public static function isLoggedIn() {
-		if( \OC::$session->get('user_id')) {
+		if (\OC::$session->get('user_id')) {
 			OC_App::loadApps(array('authentication'));
 			self::setupBackends();
-			if (self::userExists(\OC::$session->get('user_id')) ) {
-				return true;
-			}
+			return self::userExists(\OC::$session->get('user_id'));
 		}
 		return false;
 	}
 
 	/**
 	 * @brief Check if the user is an admin user
-	 * @param $uid uid of the admin
-	 * @returns bool
+	 * @param string $uid uid of the admin
+	 * @return bool
 	 */
 	public static function isAdminUser($uid) {
-		if(OC_Group::inGroup($uid, 'admin' )) {
+		if (OC_Group::inGroup($uid, 'admin')) {
 			return true;
 		}
 		return false;
@@ -356,32 +316,40 @@ class OC_User {
 	 * @return string uid or false
 	 */
 	public static function getUser() {
-		if( \OC::$session->get('user_id') ) {
-			return \OC::$session->get('user_id');
-		}
-		else{
+		$uid = OC::$session->get('user_id');
+		if (!is_null($uid)) {
+			return $uid;
+		} else {
 			return false;
 		}
 	}
 
 	/**
 	 * @brief get the display name of the user currently logged in.
+	 * @param string $uid
 	 * @return string uid or false
 	 */
-	public static function getDisplayName($user=null) {
-		if ( $user ) {
-			return self::determineDisplayName($user);
-		} else if( \OC::$session->get('display_name') ) {
-			return \OC::$session->get('display_name');
-		}
-		else{
-			return false;
+	public static function getDisplayName($uid = null) {
+		if ($uid) {
+			$user = self::getManager()->get($uid);
+			if ($user) {
+				return $user->getDisplayName();
+			} else {
+				return $uid;
+			}
+		} else {
+			$user = self::getUserSession()->getUser();
+			if ($user) {
+				return $user->getDisplayName();
+			} else {
+				return false;
+			}
 		}
 	}
 
 	/**
 	 * @brief Autogenerate a password
-	 * @returns string
+	 * @return string
 	 *
 	 * generates a password
 	 */
@@ -391,112 +359,89 @@ 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
+	 * @param string $uid The username
+	 * @param string $password The new password
+	 * @param string $recoveryPassword for the encryption app to reset encryption keys
+	 * @return bool
 	 *
 	 * Change the password of a user
 	 */
-	public static function setPassword( $uid, $password, $recoveryPassword = null ) {
-		$run = true;
-		OC_Hook::emit( "OC_User", "pre_setPassword", array( "run" => &$run, "uid" => $uid, "password" => $password, "recoveryPassword" => $recoveryPassword ));
-
-		if( $run ) {
-			$success = false;
-			foreach(self::$_usedBackends as $backend) {
-				if($backend->implementsActions(OC_USER_BACKEND_SET_PASSWORD)) {
-					if($backend->userExists($uid)) {
-						$success |= $backend->setPassword($uid, $password);
-					}
-				}
-			}
-			// invalidate all login cookies
-			OC_Preferences::deleteApp($uid, 'login_token');
-			OC_Hook::emit( "OC_User", "post_setPassword", array( "uid" => $uid, "password" => $password, "recoveryPassword" => $recoveryPassword ));
-			return $success;
-		}
-		else{
+	public static function setPassword($uid, $password, $recoveryPassword = null) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->setPassword($password, $recoveryPassword);
+		} else {
 			return false;
 		}
 	}
 
 	/**
 	 * @brief Check whether user can change his password
-	 * @param $uid The username
-	 * @returns true/false
+	 * @param string $uid The username
+	 * @return bool
 	 *
 	 * Check whether a specified user can change his password
 	 */
 	public static function canUserChangePassword($uid) {
-		foreach(self::$_usedBackends as $backend) {
-			if($backend->implementsActions(OC_USER_BACKEND_SET_PASSWORD)) {
-				if($backend->userExists($uid)) {
-					return true;
-				}
-			}
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->canChangePassword();
+		} else {
+			return false;
 		}
-		return false;
 	}
 
 	/**
 	 * @brief Check whether user can change his display name
-	 * @param $uid The username
-	 * @returns true/false
+	 * @param string $uid The username
+	 * @return bool
 	 *
 	 * Check whether a specified user can change his display name
 	 */
 	public static function canUserChangeDisplayName($uid) {
-		if (OC_Config::getValue('allow_user_to_change_display_name', true)) {
-			foreach(self::$_usedBackends as $backend) {
-				if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) {
-					if($backend->userExists($uid)) {
-						return true;
-					}
-				}
-			}
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->canChangeDisplayName();
+		} else {
+			return false;
 		}
-		return false;
 	}
 
 	/**
 	 * @brief Check if the password is correct
-	 * @param $uid The username
-	 * @param $password The password
-	 * @returns string
+	 * @param string $uid The username
+	 * @param string $password The password
+	 * @return bool
 	 *
 	 * Check if the password is correct without logging in the user
 	 * returns the user id or false
 	 */
-	public static function checkPassword( $uid, $password ) {
-		foreach(self::$_usedBackends as $backend) {
-			if($backend->implementsActions(OC_USER_BACKEND_CHECK_PASSWORD)) {
-				$result=$backend->checkPassword( $uid, $password );
-				if($result) {
-					return $result;
-				}
+	public static function checkPassword($uid, $password) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			if ($user->checkPassword($password)) {
+				return $user->getUID();
+			} else {
+				return false;
 			}
+		} else {
+			return false;
 		}
 	}
 
 	/**
-	 * @brief Check if the password is correct
 	 * @param string $uid The username
-	 * @param string $password The password
-	 * @returns string
+	 * @return string
 	 *
 	 * returns the path to the users home directory
 	 */
 	public static function getHome($uid) {
-		foreach(self::$_usedBackends as $backend) {
-			if($backend->implementsActions(OC_USER_BACKEND_GET_HOME) && $backend->userExists($uid)) {
-				$result=$backend->getHome($uid);
-				if($result) {
-					return $result;
-				}
-			}
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->getHome();
+		} else {
+			return OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid;
 		}
-		return OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ) . '/' . $uid;
 	}
 
 	/**
@@ -506,152 +451,93 @@ class OC_User {
 	 * Get a list of all users.
 	 */
 	public static function getUsers($search = '', $limit = null, $offset = null) {
-		$users = array();
-		foreach (self::$_usedBackends as $backend) {
-			$backendUsers = $backend->getUsers($search, $limit, $offset);
-			if (is_array($backendUsers)) {
-				$users = array_merge($users, $backendUsers);
-			}
+		$users = self::getManager()->search($search, $limit, $offset);
+		$uids = array();
+		foreach ($users as $user) {
+			$uids[] = $user->getUID();
 		}
-		asort($users);
-		return $users;
+		return $uids;
 	}
 
 	/**
 	 * @brief Get a list of all users display name
-	 * @returns associative array with all display names (value) and corresponding uids (key)
+	 * @param string $search
+	 * @param int $limit
+	 * @param int $offset
+	 * @return array associative array with all display names (value) and corresponding uids (key)
 	 *
 	 * Get a list of all display names and user ids.
 	 */
 	public static function getDisplayNames($search = '', $limit = null, $offset = null) {
 		$displayNames = array();
-		foreach (self::$_usedBackends as $backend) {
-			$backendDisplayNames = $backend->getDisplayNames($search, $limit, $offset);
-			if (is_array($backendDisplayNames)) {
-				$displayNames = $displayNames + $backendDisplayNames;
-			}
+		$users = self::getManager()->searchDisplayName($search, $limit, $offset);
+		foreach ($users as $user) {
+			$displayNames[$user->getUID()] = $user->getDisplayName();
 		}
-		asort($displayNames);
 		return $displayNames;
 	}
 
 	/**
 	 * @brief check if a user exists
 	 * @param string $uid the username
-	 * @param string $excludingBackend (default none)
 	 * @return boolean
 	 */
-	public static function userExists($uid, $excludingBackend=null) {
-		foreach(self::$_usedBackends as $backend) {
-			if (!is_null($excludingBackend) && !strcmp(get_class($backend), $excludingBackend)) {
-				OC_Log::write('OC_User', $excludingBackend . 'excluded from user existance check.', OC_Log::DEBUG);
-				continue;
-			}
-			$result=$backend->userExists($uid);
-			if($result===true) {
-				return true;
-			}
-		}
-		return false;
+	public static function userExists($uid) {
+		return self::getManager()->userExists($uid);
 	}
 
-    public static function userExistsForCreation($uid) {
-        foreach(self::$_usedBackends as $backend) {
-            if(!$backend->hasUserListings())
-                continue;
-
-            $result=$backend->userExists($uid);
-            if($result===true) {
-                return true;
-            }
-        }
-        return false;
-    }
-
 	/**
 	 * disables a user
-	 * @param string $userid the user to disable
+	 *
+	 * @param string $uid the user to disable
 	 */
-	public static function disableUser($userid) {
-		$sql = "INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, `configkey`, `configvalue`) VALUES(?, ?, ?, ?)";
-		$stmt = OC_DB::prepare($sql);
-		if ( ! OC_DB::isError($stmt) ) {
-			$result = $stmt->execute(array($userid, 'core', 'enabled', 'false'));
-			if ( OC_DB::isError($result) ) {
-				OC_Log::write('OC_User', 'could not enable user: '. OC_DB::getErrorMessage($result), OC_Log::ERROR);
-			}
-		} else {
-			OC_Log::write('OC_User', 'could not disable user: '. OC_DB::getErrorMessage($stmt), OC_Log::ERROR);
+	public static function disableUser($uid) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			$user->setEnabled(false);
 		}
 	}
 
 	/**
 	 * enable a user
-	 * @param string $userid
+	 *
+	 * @param string $uid
 	 */
-	public static function enableUser($userid) {
-		$sql = 'DELETE FROM `*PREFIX*preferences`'
-			." WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?";
-		$stmt = OC_DB::prepare($sql);
-		if ( ! OC_DB::isError($stmt) ) {
-			$result = $stmt->execute(array($userid, 'core', 'enabled', 'false'));
-			if ( OC_DB::isError($result) ) {
-				OC_Log::write('OC_User', 'could not enable user: '. OC_DB::getErrorMessage($result), OC_Log::ERROR);
-			}
-		} else {
-			OC_Log::write('OC_User', 'could not enable user: '. OC_DB::getErrorMessage($stmt), OC_Log::ERROR);
+	public static function enableUser($uid) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			$user->setEnabled(true);
 		}
 	}
 
 	/**
 	 * checks if a user is enabled
-	 * @param string $userid
+	 *
+	 * @param string $uid
 	 * @return bool
 	 */
-	public static function isEnabled($userid) {
-		$sql = 'SELECT `userid` FROM `*PREFIX*preferences`'
-			.' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?';
-		if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') { //FIXME oracle hack
-			$sql = 'SELECT `userid` FROM `*PREFIX*preferences`'
-				.' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND to_char(`configvalue`) = ?';
-		}
-		$stmt = OC_DB::prepare($sql);
-		if ( ! OC_DB::isError($stmt) ) {
-			$result = $stmt->execute(array($userid, 'core', 'enabled', 'false'));
-			if ( ! OC_DB::isError($result) ) {
-				return $result->numRows() ? false : true;
-			} else {
-				OC_Log::write('OC_User',
-					'could not check if enabled: '. OC_DB::getErrorMessage($result),
-					OC_Log::ERROR);
-			}
+	public static function isEnabled($uid) {
+		$user = self::getManager()->get($uid);
+		if ($user) {
+			return $user->isEnabled();
 		} else {
-			OC_Log::write('OC_User', 'could not check if enabled: '. OC_DB::getErrorMessage($stmt), OC_Log::ERROR);
+			return false;
 		}
-		return false;
 	}
 
 	/**
 	 * @brief Set cookie value to use in next page load
 	 * @param string $username username to be set
+	 * @param string $token
 	 */
 	public static function setMagicInCookie($username, $token) {
-		$secure_cookie = OC_Config::getValue("forcessl", false);
-		$expires = time() + OC_Config::getValue('remember_login_cookie_lifetime', 60*60*24*15);
-		setcookie("oc_username", $username, $expires, OC::$WEBROOT, '', $secure_cookie);
-		setcookie("oc_token", $token, $expires, OC::$WEBROOT, '', $secure_cookie, true);
-		setcookie("oc_remember_login", true, $expires, OC::$WEBROOT, '', $secure_cookie);
+		self::getUserSession()->setMagicInCookie($username, $token);
 	}
 
 	/**
 	 * @brief Remove cookie for "remember username"
 	 */
 	public static function unsetMagicInCookie() {
-		unset($_COOKIE["oc_username"]);
-		unset($_COOKIE["oc_token"]);
-		unset($_COOKIE["oc_remember_login"]);
-		setcookie("oc_username", null, -1);
-		setcookie("oc_token", null, -1);
-		setcookie("oc_remember_login", null, -1);
+		self::getUserSession()->unsetMagicInCookie();
 	}
 }
diff --git a/lib/user/backend.php b/lib/user/backend.php
index 93e8f17ca98ab460d2531dd35a3531b31cab6fbe..e9be08e429cb12b5ea06bfb0133fca668f37ac63 100644
--- a/lib/user/backend.php
+++ b/lib/user/backend.php
@@ -58,7 +58,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
 
 	/**
 	* @brief Get all supported actions
-	* @returns bitwise-or'ed actions
+	* @return int bitwise-or'ed actions
 	*
 	* Returns the supported actions as int to be
 	* compared with OC_USER_BACKEND_CREATE_USER etc.
@@ -76,8 +76,8 @@ abstract class OC_User_Backend implements OC_User_Interface {
 
 	/**
 	* @brief Check if backend implements actions
-	* @param $actions bitwise-or'ed actions
-	* @returns boolean
+	* @param int $actions bitwise-or'ed actions
+	* @return boolean
 	*
 	* Returns the supported actions as int to be
 	* compared with OC_USER_BACKEND_CREATE_USER etc.
@@ -87,12 +87,12 @@ abstract class OC_User_Backend implements OC_User_Interface {
 	}
 
 	/**
-	* @brief delete a user
-	* @param $uid The username of the user to delete
-	* @returns true/false
-	*
-	* Deletes a user
-	*/
+	 * @brief delete a user
+	 * @param string $uid The username of the user to delete
+	 * @return bool
+	 *
+	 * Deletes a user
+	 */
 	public function deleteUser( $uid ) {
 		return false;
 	}
@@ -127,8 +127,8 @@ abstract class OC_User_Backend implements OC_User_Interface {
 
 	/**
 	 * @brief get display name of the user
-	 * @param $uid user ID of the user
-	 * @return display name
+	 * @param string $uid user ID of the user
+	 * @return string display name
 	 */
 	public function getDisplayName($uid) {
 		return $uid;
diff --git a/lib/user/dummy.php b/lib/user/dummy.php
index d63f60efbeb53c0a1adb61e6ce8c5df789672957..b5b7a6c3c7ac7b135cc5abc0520a7d2b4246f155 100644
--- a/lib/user/dummy.php
+++ b/lib/user/dummy.php
@@ -1,114 +1,118 @@
 <?php
 
 /**
-* ownCloud
-*
-* @author Frank Karlitschek
-* @copyright 2012 Frank Karlitschek frank@owncloud.org
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
+ * ownCloud
+ *
+ * @author Frank Karlitschek
+ * @copyright 2012 Frank Karlitschek frank@owncloud.org
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 
 /**
  * dummy user backend, does not keep state, only for testing use
  */
 class OC_User_Dummy extends OC_User_Backend {
-	private $users=array();
+	private $users = array();
+
 	/**
-		* @brief Create a new user
-		* @param $uid The username of the user to create
-		* @param $password The password of the new user
-		* @returns true/false
-		*
-		* Creates a new user. Basic checking of username is done in OC_User
-		* itself, not in its subclasses.
-		*/
+	 * @brief Create a new user
+	 * @param string $uid The username of the user to create
+	 * @param string $password The password of the new user
+	 * @return bool
+	 *
+	 * Creates a new user. Basic checking of username is done in OC_User
+	 * itself, not in its subclasses.
+	 */
 	public function createUser($uid, $password) {
-		if(isset($this->users[$uid])) {
+		if (isset($this->users[$uid])) {
 			return false;
-		}else{
-			$this->users[$uid]=$password;
+		} else {
+			$this->users[$uid] = $password;
 			return true;
 		}
 	}
 
 	/**
-		* @brief delete a user
-		* @param $uid The username of the user to delete
-		* @returns true/false
-		*
-		* Deletes a user
-		*/
-	public function deleteUser( $uid ) {
-		if(isset($this->users[$uid])) {
+	 * @brief delete a user
+	 * @param string $uid The username of the user to delete
+	 * @return bool
+	 *
+	 * Deletes a user
+	 */
+	public function deleteUser($uid) {
+		if (isset($this->users[$uid])) {
 			unset($this->users[$uid]);
 			return true;
-		}else{
+		} else {
 			return false;
 		}
 	}
 
 	/**
-		* @brief Set password
-		* @param $uid The username
-		* @param $password The new password
-		* @returns true/false
-		*
-		* Change the password of a user
-		*/
+	 * @brief Set password
+	 * @param string $uid The username
+	 * @param string $password The new password
+	 * @return bool
+	 *
+	 * Change the password of a user
+	 */
 	public function setPassword($uid, $password) {
-		if(isset($this->users[$uid])) {
-			$this->users[$uid]=$password;
+		if (isset($this->users[$uid])) {
+			$this->users[$uid] = $password;
 			return true;
-		}else{
+		} else {
 			return false;
 		}
 	}
 
 	/**
-		* @brief Check if the password is correct
-		* @param $uid The username
-		* @param $password The password
-		* @returns string
-		*
-		* Check if the password is correct without logging in the user
-		* returns the user id or false
-		*/
+	 * @brief Check if the password is correct
+	 * @param string $uid The username
+	 * @param string $password The password
+	 * @return string
+	 *
+	 * Check if the password is correct without logging in the user
+	 * returns the user id or false
+	 */
 	public function checkPassword($uid, $password) {
-		if(isset($this->users[$uid])) {
-			return ($this->users[$uid]==$password);
-		}else{
+		if (isset($this->users[$uid])) {
+			return ($this->users[$uid] == $password);
+		} else {
 			return false;
 		}
 	}
 
 	/**
-		* @brief Get a list of all users
-		* @returns array with all uids
-		*
-		* Get a list of all users.
-		*/
+	 * @brief Get a list of all users
+	 * @param string $search
+	 * @param int $limit
+	 * @param int $offset
+	 * @return array with all uids
+	 *
+	 * Get a list of all users.
+	 */
 	public function getUsers($search = '', $limit = null, $offset = null) {
 		return array_keys($this->users);
 	}
 
 	/**
-		* @brief check if a user exists
-		* @param string $uid the username
-		* @return boolean
-		*/
+	 * @brief check if a user exists
+	 * @param string $uid the username
+	 * @return boolean
+	 */
 	public function userExists($uid) {
 		return isset($this->users[$uid]);
 	}
diff --git a/lib/user/manager.php b/lib/user/manager.php
new file mode 100644
index 0000000000000000000000000000000000000000..d17cdf1a200790dcc815edfc1f231d1dcfd9e1d7
--- /dev/null
+++ b/lib/user/manager.php
@@ -0,0 +1,228 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\User;
+
+use OC\Hooks\PublicEmitter;
+
+/**
+ * Class Manager
+ *
+ * Hooks available in scope \OC\User:
+ * - preSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - postSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - preDelete(\OC\User\User $user)
+ * - postDelete(\OC\User\User $user)
+ * - preCreateUser(string $uid, string $password)
+ * - postCreateUser(\OC\User\User $user, string $password)
+ *
+ * @package OC\User
+ */
+class Manager extends PublicEmitter {
+	/**
+	 * @var \OC_User_Backend[] $backends
+	 */
+	private $backends = array();
+
+	private $cachedUsers = array();
+
+	public function __construct() {
+		$cachedUsers = $this->cachedUsers;
+		$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
+			$i = array_search($user, $cachedUsers);
+			if ($i !== false) {
+				unset($cachedUsers[$i]);
+			}
+		});
+	}
+
+	/**
+	 * register a user backend
+	 *
+	 * @param \OC_User_Backend $backend
+	 */
+	public function registerBackend($backend) {
+		$this->backends[] = $backend;
+	}
+
+	/**
+	 * remove a user backend
+	 *
+	 * @param \OC_User_Backend $backend
+	 */
+	public function removeBackend($backend) {
+		$this->cachedUsers = array();
+		if (($i = array_search($backend, $this->backends)) !== false) {
+			unset($this->backends[$i]);
+		}
+	}
+
+	/**
+	 * remove all user backends
+	 */
+	public function clearBackends() {
+		$this->cachedUsers = array();
+		$this->backends = array();
+	}
+
+	/**
+	 * get a user by user id
+	 *
+	 * @param string $uid
+	 * @return \OC\User\User
+	 */
+	public function get($uid) {
+		if (isset($this->cachedUsers[$uid])) { //check the cache first to prevent having to loop over the backends
+			return $this->cachedUsers[$uid];
+		}
+		foreach ($this->backends as $backend) {
+			if ($backend->userExists($uid)) {
+				return $this->getUserObject($uid, $backend);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * get or construct the user object
+	 *
+	 * @param string $uid
+	 * @param \OC_User_Backend $backend
+	 * @return \OC\User\User
+	 */
+	protected function getUserObject($uid, $backend) {
+		if (isset($this->cachedUsers[$uid])) {
+			return $this->cachedUsers[$uid];
+		}
+		$this->cachedUsers[$uid] = new User($uid, $backend, $this);
+		return $this->cachedUsers[$uid];
+	}
+
+	/**
+	 * check if a user exists
+	 *
+	 * @param string $uid
+	 * @return bool
+	 */
+	public function userExists($uid) {
+		$user = $this->get($uid);
+		return ($user !== null);
+	}
+
+	/**
+	 * search by user id
+	 *
+	 * @param string $pattern
+	 * @param int $limit
+	 * @param int $offset
+	 * @return \OC\User\User[]
+	 */
+	public function search($pattern, $limit = null, $offset = null) {
+		$users = array();
+		foreach ($this->backends as $backend) {
+			$backendUsers = $backend->getUsers($pattern, $limit, $offset);
+			if (is_array($backendUsers)) {
+				foreach ($backendUsers as $uid) {
+					$users[] = $this->getUserObject($uid, $backend);
+					if (!is_null($limit)) {
+						$limit--;
+					}
+					if (!is_null($offset) and $offset > 0) {
+						$offset--;
+					}
+
+				}
+			}
+		}
+
+		usort($users, function ($a, $b) {
+			/**
+			 * @var \OC\User\User $a
+			 * @var \OC\User\User $b
+			 */
+			return strcmp($a->getUID(), $b->getUID());
+		});
+		return $users;
+	}
+
+	/**
+	 * search by displayName
+	 *
+	 * @param string $pattern
+	 * @param int $limit
+	 * @param int $offset
+	 * @return \OC\User\User[]
+	 */
+	public function searchDisplayName($pattern, $limit = null, $offset = null) {
+		$users = array();
+		foreach ($this->backends as $backend) {
+			$backendUsers = $backend->getDisplayNames($pattern, $limit, $offset);
+			if (is_array($backendUsers)) {
+				foreach ($backendUsers as $uid => $displayName) {
+					$users[] = $this->getUserObject($uid, $backend);
+					if (!is_null($limit)) {
+						$limit--;
+					}
+					if (!is_null($offset) and $offset > 0) {
+						$offset--;
+					}
+
+				}
+			}
+		}
+
+		usort($users, function ($a, $b) {
+			/**
+			 * @var \OC\User\User $a
+			 * @var \OC\User\User $b
+			 */
+			return strcmp($a->getDisplayName(), $b->getDisplayName());
+		});
+		return $users;
+	}
+
+	/**
+	 * @param string $uid
+	 * @param string $password
+	 * @throws \Exception
+	 * @return bool | \OC\User\User the created user of false
+	 */
+	public function createUser($uid, $password) {
+		// Check the name for bad characters
+		// Allowed are: "a-z", "A-Z", "0-9" and "_.@-"
+		if (preg_match('/[^a-zA-Z0-9 _\.@\-]/', $uid)) {
+			throw new \Exception('Only the following characters are allowed in a username:'
+			. ' "a-z", "A-Z", "0-9", and "_.@-"');
+		}
+		// No empty username
+		if (trim($uid) == '') {
+			throw new \Exception('A valid username must be provided');
+		}
+		// No empty password
+		if (trim($password) == '') {
+			throw new \Exception('A valid password must be provided');
+		}
+
+		// Check if user already exists
+		if ($this->userExists($uid)) {
+			throw new \Exception('The username is already being used');
+		}
+
+		$this->emit('\OC\User', 'preCreateUser', array($uid, $password));
+		foreach ($this->backends as $backend) {
+			if ($backend->implementsActions(\OC_USER_BACKEND_CREATE_USER)) {
+				$backend->createUser($uid, $password);
+				$user = $this->getUserObject($uid, $backend);
+				$this->emit('\OC\User', 'postCreateUser', array($user, $password));
+				return $user;
+			}
+		}
+		return false;
+	}
+}
diff --git a/lib/user/session.php b/lib/user/session.php
new file mode 100644
index 0000000000000000000000000000000000000000..cf93d9593afa8f76e4f55a5b6aceb149f6653934
--- /dev/null
+++ b/lib/user/session.php
@@ -0,0 +1,173 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\User;
+
+use OC\Hooks\Emitter;
+
+/**
+ * Class Session
+ *
+ * Hooks available in scope \OC\User:
+ * - preSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - postSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - preDelete(\OC\User\User $user)
+ * - postDelete(\OC\User\User $user)
+ * - preCreateUser(string $uid, string $password)
+ * - postCreateUser(\OC\User\User $user)
+ * - preLogin(string $user, string $password)
+ * - postLogin(\OC\User\User $user)
+ * - logout()
+ *
+ * @package OC\User
+ */
+class Session implements Emitter {
+	/**
+	 * @var \OC\User\Manager $manager
+	 */
+	private $manager;
+
+	/**
+	 * @var \OC\Session\Session $session
+	 */
+	private $session;
+
+	/**
+	 * @var \OC\User\User $activeUser
+	 */
+	protected $activeUser;
+
+	/**
+	 * @param \OC\User\Manager $manager
+	 * @param \OC\Session\Session $session
+	 */
+	public function __construct($manager, $session) {
+		$this->manager = $manager;
+		$this->session = $session;
+	}
+
+	/**
+	 * @param string $scope
+	 * @param string $method
+	 * @param callable $callback
+	 */
+	public function listen($scope, $method, $callback) {
+		$this->manager->listen($scope, $method, $callback);
+	}
+
+	/**
+	 * @param string $scope optional
+	 * @param string $method optional
+	 * @param callable $callback optional
+	 */
+	public function removeListener($scope = null, $method = null, $callback = null) {
+		$this->manager->removeListener($scope, $method, $callback);
+	}
+
+	/**
+	 * get the manager object
+	 *
+	 * @return \OC\User\Manager
+	 */
+	public function getManager() {
+		return $this->manager;
+	}
+
+	/**
+	 * set the currently active user
+	 *
+	 * @param \OC\User\User $user
+	 */
+	public function setUser($user) {
+		if (is_null($user)) {
+			$this->session->remove('user_id');
+		} else {
+			$this->session->set('user_id', $user->getUID());
+		}
+		$this->activeUser = $user;
+	}
+
+	/**
+	 * get the current active user
+	 *
+	 * @return \OC\User\User
+	 */
+	public function getUser() {
+		if ($this->activeUser) {
+			return $this->activeUser;
+		} else {
+			$uid = $this->session->get('user_id');
+			if ($uid) {
+				$this->activeUser = $this->manager->get($uid);
+				return $this->activeUser;
+			} else {
+				return null;
+			}
+		}
+	}
+
+	/**
+	 * try to login with the provided credentials
+	 *
+	 * @param string $uid
+	 * @param string $password
+	 * @return bool
+	 */
+	public function login($uid, $password) {
+		$this->manager->emit('\OC\User', 'preLogin', array($uid, $password));
+		$user = $this->manager->get($uid);
+		if ($user) {
+			$result = $user->checkPassword($password);
+			if ($result and $user->isEnabled()) {
+				$this->setUser($user);
+				$this->manager->emit('\OC\User', 'postLogin', array($user, $password));
+				return true;
+			} else {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * logout the user from the session
+	 */
+	public function logout() {
+		$this->manager->emit('\OC\User', 'logout');
+		$this->setUser(null);
+		$this->unsetMagicInCookie();
+	}
+
+	/**
+	 * Set cookie value to use in next page load
+	 *
+	 * @param string $username username to be set
+	 * @param string $token
+	 */
+	public function setMagicInCookie($username, $token) {
+		$secure_cookie = \OC_Config::getValue("forcessl", false); //TODO: DI for cookies and OC_Config
+		$expires = time() + \OC_Config::getValue('remember_login_cookie_lifetime', 60 * 60 * 24 * 15);
+		setcookie("oc_username", $username, $expires, \OC::$WEBROOT, '', $secure_cookie);
+		setcookie("oc_token", $token, $expires, \OC::$WEBROOT, '', $secure_cookie, true);
+		setcookie("oc_remember_login", true, $expires, \OC::$WEBROOT, '', $secure_cookie);
+	}
+
+	/**
+	 * Remove cookie for "remember username"
+	 */
+	public function unsetMagicInCookie() {
+		unset($_COOKIE["oc_username"]); //TODO: DI
+		unset($_COOKIE["oc_token"]);
+		unset($_COOKIE["oc_remember_login"]);
+		setcookie("oc_username", null, -1);
+		setcookie("oc_token", null, -1);
+		setcookie("oc_remember_login", null, -1);
+	}
+}
diff --git a/lib/user/user.php b/lib/user/user.php
new file mode 100644
index 0000000000000000000000000000000000000000..f9466b71499ff638e8d10e9293839b8d8bc77983
--- /dev/null
+++ b/lib/user/user.php
@@ -0,0 +1,197 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\User;
+
+use OC\Hooks\Emitter;
+
+class User {
+	/**
+	 * @var string $uid
+	 */
+	private $uid;
+
+	/**
+	 * @var string $displayName
+	 */
+	private $displayName;
+
+	/**
+	 * @var \OC_User_Backend $backend
+	 */
+	private $backend;
+
+	/**
+	 * @var bool $enabled
+	 */
+	private $enabled;
+
+	/**
+	 * @var Emitter | Manager $emitter
+	 */
+	private $emitter;
+
+	/**
+	 * @param string $uid
+	 * @param \OC_User_Backend $backend
+	 * @param Emitter $emitter
+	 */
+	public function __construct($uid, $backend, $emitter = null) {
+		$this->uid = $uid;
+		if ($backend->implementsActions(OC_USER_BACKEND_GET_DISPLAYNAME)) {
+			$this->displayName = $backend->getDisplayName($uid);
+		} else {
+			$this->displayName = $uid;
+		}
+		$this->backend = $backend;
+		$this->emitter = $emitter;
+		$enabled = \OC_Preferences::getValue($uid, 'core', 'enabled', 'true'); //TODO: DI for OC_Preferences
+		$this->enabled = ($enabled === 'true');
+	}
+
+	/**
+	 * get the user id
+	 *
+	 * @return string
+	 */
+	public function getUID() {
+		return $this->uid;
+	}
+
+	/**
+	 * get the displayname for the user, if no specific displayname is set it will fallback to the user id
+	 *
+	 * @return string
+	 */
+	public function getDisplayName() {
+		return $this->displayName;
+	}
+
+	/**
+	 * set the displayname for the user
+	 *
+	 * @param string $displayName
+	 * @return bool
+	 */
+	public function setDisplayName($displayName) {
+		if ($this->canChangeDisplayName()) {
+			$this->displayName = $displayName;
+			$result = $this->backend->setDisplayName($this->uid, $displayName);
+			return $result !== false;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Delete the user
+	 *
+	 * @return bool
+	 */
+	public function delete() {
+		if ($this->emitter) {
+			$this->emitter->emit('\OC\User', 'preDelete', array($this));
+		}
+		$result = $this->backend->deleteUser($this->uid);
+		if ($this->emitter) {
+			$this->emitter->emit('\OC\User', 'postDelete', array($this));
+		}
+		return !($result === false);
+	}
+
+	/**
+	 * Check if the password is valid for the user
+	 *
+	 * @param $password
+	 * @return bool
+	 */
+	public function checkPassword($password) {
+		if ($this->backend->implementsActions(\OC_USER_BACKEND_CHECK_PASSWORD)) {
+			$result = $this->backend->checkPassword($this->uid, $password);
+			if ($result !== false) {
+				$this->uid = $result;
+			}
+			return !($result === false);
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * Set the password of the user
+	 *
+	 * @param string $password
+	 * @param string $recoveryPassword for the encryption app to reset encryption keys
+	 * @return bool
+	 */
+	public function setPassword($password, $recoveryPassword) {
+		if ($this->backend->implementsActions(\OC_USER_BACKEND_SET_PASSWORD)) {
+			if ($this->emitter) {
+				$this->emitter->emit('\OC\User', 'preSetPassword', array($this, $password, $recoveryPassword));
+			}
+			$result = $this->backend->setPassword($this->uid, $password);
+			if ($this->emitter) {
+				$this->emitter->emit('\OC\User', 'postSetPassword', array($this, $password, $recoveryPassword));
+			}
+			return !($result === false);
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * get the users home folder to mount
+	 *
+	 * @return string
+	 */
+	public function getHome() {
+		if ($this->backend->implementsActions(\OC_USER_BACKEND_GET_HOME) and $home = $this->backend->getHome($this->uid)) {
+			return $home;
+		}
+		return \OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data") . '/' . $this->uid; //TODO switch to Config object once implemented
+	}
+
+	/**
+	 * check if the backend supports changing passwords
+	 *
+	 * @return bool
+	 */
+	public function canChangePassword() {
+		return $this->backend->implementsActions(\OC_USER_BACKEND_SET_PASSWORD);
+	}
+
+	/**
+	 * check if the backend supports changing display names
+	 *
+	 * @return bool
+	 */
+	public function canChangeDisplayName() {
+		return $this->backend->implementsActions(\OC_USER_BACKEND_SET_DISPLAYNAME);
+	}
+
+	/**
+	 * check if the user is enabled
+	 *
+	 * @return bool
+	 */
+	public function isEnabled() {
+		return $this->enabled;
+	}
+
+	/**
+	 * set the enabled status for the user
+	 *
+	 * @param bool $enabled
+	 */
+	public function setEnabled($enabled) {
+		$this->enabled = $enabled;
+		$enabled = ($enabled) ? 'true' : 'false';
+		\OC_Preferences::setValue($this->uid, 'core', 'enabled', $enabled);
+	}
+}
diff --git a/lib/util.php b/lib/util.php
index 581f35bc0acb5c7ed27e5d1a2134c91a82102293..95af22ed0eedfa9481ae2f63b7caa997ba32a307 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -1,4 +1,7 @@
 <?php
+
+require_once 'Patchwork/PHP/Shim/Normalizer.php';
+
 /**
  * Class for utility functions
  *
@@ -77,7 +80,7 @@ class OC_Util {
 	public static function getVersion() {
 		// hint: We only can count up. Reset minor/patchlevel when
 		// updating major/minor version number.
-		return array(5, 80, 04);
+		return array(5, 80, 05);
 	}
 
 	/**
@@ -641,11 +644,10 @@ class OC_Util {
 	/**
 	 * Check if the ownCloud server can connect to the internet
 	 */
-	public static function isinternetconnectionworking() {
-
-		// in case there is no internet connection on purpose there is no need to display a warning
-		if (!\OC_Config::getValue("has_internet_connection", true)) {
-			return true;
+	public static function isInternetConnectionWorking() {
+		// in case there is no internet connection on purpose return false
+		if (self::isInternetConnectionEnabled() === false) {
+			return false;
 		}
 
 		// try to connect to owncloud.org to see if http connections to the internet are possible.
@@ -667,6 +669,13 @@ class OC_Util {
 		}
 
 	}
+	
+	/**
+	 * Check if the connection to the internet is disabled on purpose
+	 */
+	public static function isInternetConnectionEnabled(){
+		return \OC_Config::getValue("has_internet_connection", true);
+	}
 
 	/**
 	 * clear all levels of output buffering
@@ -823,5 +832,21 @@ class OC_Util {
 		return $theme;
 	}
 
+	/**
+	 * Normalize a unicode string
+	 * @param string $value a not normalized string
+	 * @return bool|string
+	 */
+	public static function normalizeUnicode($value) {
+		if(class_exists('Patchwork\PHP\Shim\Normalizer')) {
+			$normalizedValue = \Patchwork\PHP\Shim\Normalizer::normalize($value);
+			if($normalizedValue === false) {
+				\OC_Log::write( 'core', 'normalizing failed for "' . $value . '"', \OC_Log::WARN);
+			} else {
+				$value = $normalizedValue;
+			}
+		}
 
+		return $value;
+	}
 }
diff --git a/public.php b/public.php
index 759e8e91619276bc1f45e2f9913cd23654ea3e84..3d7fd378af402e0f739bd86eabf8a656ec43eec9 100644
--- a/public.php
+++ b/public.php
@@ -1,6 +1,7 @@
 <?php
 $RUNTIME_NOAPPS = true;
 require_once 'lib/base.php';
+OC::checkMaintenanceMode();
 if (!isset($_GET['service'])) {
 	header('HTTP/1.0 404 Not Found');
 	exit;
diff --git a/settings/admin.php b/settings/admin.php
index 035cef5bf95f8f809d81563c6251ec7a1edcdaf3..db041ef889c08e527fd9bdffc0b514e37b50c0ed 100755
--- a/settings/admin.php
+++ b/settings/admin.php
@@ -24,7 +24,7 @@ $tmpl->assign('loglevel', OC_Config::getValue( "loglevel", 2 ));
 $tmpl->assign('entries', $entries);
 $tmpl->assign('entriesremain', $entriesremain);
 $tmpl->assign('htaccessworking', $htaccessworking);
-$tmpl->assign('internetconnectionworking', OC_Util::isinternetconnectionworking());
+$tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false);
 $tmpl->assign('islocaleworking', OC_Util::issetlocaleworking());
 $tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking());
 $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded());
diff --git a/settings/l10n/et_EE.php b/settings/l10n/et_EE.php
index f4bf379b7ef2db7b86c9187feb2580a9332ecbe1..8a9e237e1208ae5c19f195eaff44846345f0c463 100644
--- a/settings/l10n/et_EE.php
+++ b/settings/l10n/et_EE.php
@@ -101,6 +101,7 @@
 "Use this address to connect to your ownCloud in your file manager" => "Kasuta seda aadressi ühendamaks oma ownCloudi failihalduriga",
 "Login Name" => "Kasutajanimi",
 "Create" => "Lisa",
+"Admin Recovery Password" => "Admin taasteparool",
 "Default Storage" => "Vaikimisi maht",
 "Unlimited" => "Piiramatult",
 "Other" => "Muu",
diff --git a/settings/l10n/sk_SK.php b/settings/l10n/sk_SK.php
index 377af0011d14be05001d1ac82fbbe316fbf8ed40..5d8445b4b3b85fc9462d26c6e40df25101c44926 100644
--- a/settings/l10n/sk_SK.php
+++ b/settings/l10n/sk_SK.php
@@ -101,6 +101,7 @@
 "Use this address to connect to your ownCloud in your file manager" => "Použite túto adresu pre pripojenie vášho ownCloud k súborovému správcovi",
 "Login Name" => "Prihlasovacie meno",
 "Create" => "Vytvoriť",
+"Admin Recovery Password" => "Obnovenie hesla administrátora",
 "Default Storage" => "Predvolené úložisko",
 "Unlimited" => "Nelimitované",
 "Other" => "Iné",
diff --git a/tests/lib/backgroundjob/dummyjoblist.php b/tests/lib/backgroundjob/dummyjoblist.php
new file mode 100644
index 0000000000000000000000000000000000000000..d91d6b344b5f05d2c8410675c0d15970b299a064
--- /dev/null
+++ b/tests/lib/backgroundjob/dummyjoblist.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\BackgroundJob;
+
+class JobRun extends \Exception {
+}
+
+/**
+ * Class DummyJobList
+ *
+ * in memory job list for testing purposes
+ */
+class DummyJobList extends \OC\BackgroundJob\JobList {
+	/**
+	 * @var \OC\BackgroundJob\Job[]
+	 */
+	private $jobs = array();
+
+	private $last = 0;
+
+	/**
+	 * @param \OC\BackgroundJob\Job|string $job
+	 * @param mixed $argument
+	 */
+	public function add($job, $argument = null) {
+		$job->setArgument($argument);
+		if (!$this->has($job, null)) {
+			$this->jobs[] = $job;
+		}
+	}
+
+	/**
+	 * @param \OC\BackgroundJob\Job|string $job
+	 * @param mixed $argument
+	 */
+	public function remove($job, $argument = null) {
+		$index = array_search($job, $this->jobs);
+		if ($index !== false) {
+			unset($this->jobs[$index]);
+		}
+	}
+
+	/**
+	 * check if a job is in the list
+	 *
+	 * @param $job
+	 * @param mixed $argument
+	 * @return bool
+	 */
+	public function has($job, $argument) {
+		return array_search($job, $this->jobs) !== false;
+	}
+
+	/**
+	 * get all jobs in the list
+	 *
+	 * @return \OC\BackgroundJob\Job[]
+	 */
+	public function getAll() {
+		return $this->jobs;
+	}
+
+	/**
+	 * get the next job in the list
+	 *
+	 * @return \OC\BackgroundJob\Job
+	 */
+	public function getNext() {
+		if (count($this->jobs) > 0) {
+			if ($this->last < (count($this->jobs) - 1)) {
+				$i = $this->last + 1;
+			} else {
+				$i = 0;
+			}
+			return $this->jobs[$i];
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * set the job that was last ran
+	 *
+	 * @param \OC\BackgroundJob\Job $job
+	 */
+	public function setLastJob($job) {
+		$i = array_search($job, $this->jobs);
+		if ($i !== false) {
+			$this->last = $i;
+		} else {
+			$this->last = 0;
+		}
+	}
+
+	/**
+	 * @param int $id
+	 * @return Job
+	 */
+	public function getById($id) {
+		foreach ($this->jobs as $job) {
+			if ($job->getId() === $id) {
+				return $job;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * get the id of the last ran job
+	 *
+	 * @return int
+	 */
+	public function getLastJob() {
+		return $this->last;
+	}
+
+	/**
+	 * set the lastRun of $job to now
+	 *
+	 * @param \OC\BackgroundJob\Job $job
+	 */
+	public function setLastRun($job) {
+		$job->setLastRun(time());
+	}
+}
diff --git a/tests/lib/backgroundjob/queuedjob.php b/tests/lib/backgroundjob/queuedjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..1d373473cd7ae1b7e5c0469363e7fbe519fa042c
--- /dev/null
+++ b/tests/lib/backgroundjob/queuedjob.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\BackgroundJob;
+
+class TestQueuedJob extends \OC\BackgroundJob\QueuedJob {
+	public function run($argument) {
+		throw new JobRun(); //throw an exception so we can detect if this function is called
+	}
+}
+
+class QueuedJob extends \PHPUnit_Framework_TestCase {
+	/**
+	 * @var DummyJobList $jobList
+	 */
+	private $jobList;
+	/**
+	 * @var \OC\BackgroundJob\TimedJob $job
+	 */
+	private $job;
+
+	public function setup() {
+		$this->jobList = new DummyJobList();
+		$this->job = new TestQueuedJob();
+		$this->jobList->add($this->job);
+	}
+
+	public function testJobShouldBeRemoved() {
+		try {
+			$this->assertTrue($this->jobList->has($this->job, null));
+			$this->job->execute($this->jobList);
+			$this->fail("job should have been run");
+		} catch (JobRun $e) {
+			$this->assertFalse($this->jobList->has($this->job, null));
+		}
+	}
+}
diff --git a/tests/lib/backgroundjob/timedjob.php b/tests/lib/backgroundjob/timedjob.php
new file mode 100644
index 0000000000000000000000000000000000000000..0af933afef873adea45a7e3bfb84557ccac433fa
--- /dev/null
+++ b/tests/lib/backgroundjob/timedjob.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\BackgroundJob;
+
+class TestTimedJob extends \OC\BackgroundJob\TimedJob {
+	public function __construct() {
+		$this->setInterval(10);
+	}
+
+	public function run($argument) {
+		throw new JobRun(); //throw an exception so we can detect if this function is called
+	}
+}
+
+class TimedJob extends \PHPUnit_Framework_TestCase {
+	/**
+	 * @var DummyJobList $jobList
+	 */
+	private $jobList;
+	/**
+	 * @var \OC\BackgroundJob\TimedJob $job
+	 */
+	private $job;
+
+	public function setup() {
+		$this->jobList = new DummyJobList();
+		$this->job = new TestTimedJob();
+		$this->jobList->add($this->job);
+	}
+
+	public function testShouldRunAfterInterval() {
+		$this->job->setLastRun(time() - 12);
+		try {
+			$this->job->execute($this->jobList);
+			$this->fail("job should have run");
+		} catch (JobRun $e) {
+		}
+	}
+
+	public function testShouldNotRunWithinInterval() {
+		$this->job->setLastRun(time() - 5);
+		try {
+			$this->job->execute($this->jobList);
+		} catch (JobRun $e) {
+			$this->fail("job should not have run");
+		}
+	}
+
+	public function testShouldNotTwice() {
+		$this->job->setLastRun(time() - 15);
+		try {
+			$this->job->execute($this->jobList);
+			$this->fail("job should have run the first time");
+		} catch (JobRun $e) {
+			try {
+				$this->job->execute($this->jobList);
+			} catch (JobRun $e) {
+				$this->fail("job should not have run the second time");
+			}
+		}
+	}
+}
diff --git a/tests/lib/cache/file.php b/tests/lib/cache/file.php
index 7da5a8b85c6ff23660dda6e4f9164787a131b89c..038cb21b2576a54ac1b76d635a3279951a0a94d5 100644
--- a/tests/lib/cache/file.php
+++ b/tests/lib/cache/file.php
@@ -22,7 +22,8 @@
 
 class Test_Cache_File extends Test_Cache {
 	private $user;
-	
+	private $datadir;
+
 	function skip() {
 		//$this->skipUnless(OC_User::isLoggedIn());
 	}
@@ -40,7 +41,11 @@ class Test_Cache_File extends Test_Cache {
 
 		//set up temporary storage
 		\OC\Files\Filesystem::clearMounts();
-		\OC\Files\Filesystem::mount('\OC\Files\Storage\Temporary',array(),'/');
+		$storage = new \OC\Files\Storage\Temporary(array());
+		\OC\Files\Filesystem::mount($storage,array(),'/');
+		$datadir = str_replace('local::', '', $storage->getId());
+		$this->datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data');
+		OC_Config::setValue('datadirectory', $datadir);
 
 		OC_User::clearBackends();
 		OC_User::useBackend(new OC_User_Dummy());
@@ -60,5 +65,6 @@ class Test_Cache_File extends Test_Cache {
 
 	public function tearDown() {
 		OC_User::setUserId($this->user);
+		OC_Config::setValue('datadirectory', $this->datadir);
 	}
 }
diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php
index d8b6541bd0cecc94120592db17e980c4bfe87ca8..f272655925b6633fdf7a4226f9f70140e8001c63 100644
--- a/tests/lib/files/cache/cache.php
+++ b/tests/lib/files/cache/cache.php
@@ -8,6 +8,8 @@
 
 namespace Test\Files\Cache;
 
+use PHPUnit_Framework_MockObject_MockObject;
+
 class LongId extends \OC\Files\Storage\Temporary {
 	public function getId() {
 		return 'long:' . str_repeat('foo', 50) . parent::getId();
@@ -262,6 +264,89 @@ class Cache extends \PHPUnit_Framework_TestCase {
 		$this->assertEquals(array(md5($storageId), 'foo'), \OC\Files\Cache\Cache::getById($id));
 	}
 
+	/**
+	 * @brief this test show the bug resulting if we have no normalizer installed
+	 */
+	public function testWithoutNormalizer() {
+		// folder name "Schön" with U+00F6 (normalized)
+		$folderWith00F6 = "\x53\x63\x68\xc3\xb6\x6e";
+
+		// folder name "Schön" with U+0308 (un-normalized)
+		$folderWith0308 = "\x53\x63\x68\x6f\xcc\x88\x6e";
+
+		/**
+		 * @var \OC\Files\Cache\Cache | PHPUnit_Framework_MockObject_MockObject $cacheMock
+		 */
+		$cacheMock = $this->getMock('\OC\Files\Cache\Cache', array('normalize'), array($this->storage), '', true);
+
+		$cacheMock->expects($this->any())
+			->method('normalize')
+			->will($this->returnArgument(0));
+
+		$data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory');
+
+		// put root folder
+		$this->assertFalse($cacheMock->get('folder'));
+		$this->assertGreaterThan(0, $cacheMock->put('folder', $data));
+
+		// put un-normalized folder
+		$this->assertFalse($cacheMock->get('folder/' .$folderWith0308));
+		$this->assertGreaterThan(0, $cacheMock->put('folder/' .$folderWith0308, $data));
+
+		// get un-normalized folder by name
+		$unNormalizedFolderName = $cacheMock->get('folder/' .$folderWith0308);
+
+		// check if database layer normalized the folder name (this should not happen)
+		$this->assertEquals($folderWith0308, $unNormalizedFolderName['name']);
+
+		// put normalized folder
+		$this->assertFalse($cacheMock->get('folder/' . $folderWith00F6));
+		$this->assertGreaterThan(0, $cacheMock->put('folder/' .$folderWith00F6, $data));
+
+		// this is our bug, we have two different hashes with the same name (Schön)
+		$this->assertEquals(2, count($cacheMock->getFolderContents('folder')));
+	}
+
+	/**
+	 * @brief this test shows that there is no bug if we use the normalizer
+	 */
+	public function testWithNormalizer() {
+
+		if(!class_exists('Patchwork\PHP\Shim\Normalizer')) {
+			$this->markTestSkipped('The 3rdparty Normalizer extension is not available.');
+			return;
+		}
+
+		// folder name "Schön" with U+00F6 (normalized)
+		$folderWith00F6 = "\x53\x63\x68\xc3\xb6\x6e";
+
+		// folder name "Schön" with U+0308 (un-normalized)
+		$folderWith0308 = "\x53\x63\x68\x6f\xcc\x88\x6e";
+
+		$data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory');
+
+		// put root folder
+		$this->assertFalse($this->cache->get('folder'));
+		$this->assertGreaterThan(0, $this->cache->put('folder', $data));
+
+		// put un-normalized folder
+		$this->assertFalse($this->cache->get('folder/' .$folderWith0308));
+		$this->assertGreaterThan(0, $this->cache->put('folder/' .$folderWith0308, $data));
+
+		// get un-normalized folder by name
+		$unNormalizedFolderName = $this->cache->get('folder/' .$folderWith0308);
+
+		// check if folder name was normalized
+		$this->assertEquals($folderWith00F6, $unNormalizedFolderName['name']);
+
+		// put normalized folder
+		$this->assertTrue(is_array($this->cache->get('folder/' . $folderWith00F6)));
+		$this->assertGreaterThan(0, $this->cache->put('folder/' .$folderWith00F6, $data));
+
+		// at this point we should have only one folder named "Schön"
+		$this->assertEquals(1, count($this->cache->getFolderContents('folder')));
+	}
+
 	public function tearDown() {
 		$this->cache->clear();
 	}
diff --git a/tests/lib/files/filesystem.php b/tests/lib/files/filesystem.php
index 6ce45e6178a7c15c9c43d9e1163a4484a702ef4a..bef70cc725b167c4ced0495c31638d8571f1a88c 100644
--- a/tests/lib/files/filesystem.php
+++ b/tests/lib/files/filesystem.php
@@ -72,7 +72,7 @@ class Filesystem extends \PHPUnit_Framework_TestCase {
 		$this->assertEquals('/path', \OC\Files\Filesystem::normalizePath('\path'));
 		$this->assertEquals('/foo/bar', \OC\Files\Filesystem::normalizePath('/foo//bar/'));
 		$this->assertEquals('/foo/bar', \OC\Files\Filesystem::normalizePath('/foo////bar'));
-		if (class_exists('Normalizer')) {
+		if (class_exists('Patchwork\PHP\Shim\Normalizer')) {
 			$this->assertEquals("/foo/bar\xC3\xBC", \OC\Files\Filesystem::normalizePath("/foo/baru\xCC\x88"));
 		}
 	}
diff --git a/tests/lib/user/backend.php b/tests/lib/user/backend.php
new file mode 100644
index 0000000000000000000000000000000000000000..40674424c96efb918f0c518532566122a4c60e80
--- /dev/null
+++ b/tests/lib/user/backend.php
@@ -0,0 +1,99 @@
+<?php
+/**
+* ownCloud
+*
+* @author Robin Appelman
+* @copyright 2012 Robin Appelman icewind@owncloud.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+/**
+ * Abstract class to provide the basis of backend-specific unit test classes.
+ *
+ * All subclasses MUST assign a backend property in setUp() which implements
+ * user operations (add, remove, etc.). Test methods in this class will then be
+ * run on each separate subclass and backend therein.
+ *
+ * For an example see /tests/lib/user/dummy.php
+ */
+
+abstract class Test_User_Backend extends PHPUnit_Framework_TestCase {
+	/**
+	 * @var OC_User_Backend $backend
+	 */
+	protected $backend;
+
+	/**
+	 * get a new unique user name
+	 * test cases can override this in order to clean up created user
+	 * @return array
+	 */
+	public function getUser() {
+		return uniqid('test_');
+	}
+
+	public function testAddRemove() {
+		//get the number of groups we start with, in case there are exising groups
+		$startCount=count($this->backend->getUsers());
+
+		$name1=$this->getUser();
+		$name2=$this->getUser();
+		$this->backend->createUser($name1, '');
+		$count=count($this->backend->getUsers())-$startCount;
+		$this->assertEquals(1, $count);
+		$this->assertTrue((array_search($name1, $this->backend->getUsers())!==false));
+		$this->assertFalse((array_search($name2, $this->backend->getUsers())!==false));
+		$this->backend->createUser($name2, '');
+		$count=count($this->backend->getUsers())-$startCount;
+		$this->assertEquals(2, $count);
+		$this->assertTrue((array_search($name1, $this->backend->getUsers())!==false));
+		$this->assertTrue((array_search($name2, $this->backend->getUsers())!==false));
+
+		$this->backend->deleteUser($name2);
+		$count=count($this->backend->getUsers())-$startCount;
+		$this->assertEquals(1, $count);
+		$this->assertTrue((array_search($name1, $this->backend->getUsers())!==false));
+		$this->assertFalse((array_search($name2, $this->backend->getUsers())!==false));
+	}
+	
+	public function testLogin() {
+		$name1=$this->getUser();
+		$name2=$this->getUser();
+		
+		$this->assertFalse($this->backend->userExists($name1));
+		$this->assertFalse($this->backend->userExists($name2));
+		
+		$this->backend->createUser($name1, 'pass1');
+		$this->backend->createUser($name2, 'pass2');
+		
+		$this->assertTrue($this->backend->userExists($name1));
+		$this->assertTrue($this->backend->userExists($name2));
+		
+		$this->assertTrue($this->backend->checkPassword($name1, 'pass1'));
+		$this->assertTrue($this->backend->checkPassword($name2, 'pass2'));
+		
+		$this->assertFalse($this->backend->checkPassword($name1, 'pass2'));
+		$this->assertFalse($this->backend->checkPassword($name2, 'pass1'));
+		
+		$this->assertFalse($this->backend->checkPassword($name1, 'dummy'));
+		$this->assertFalse($this->backend->checkPassword($name2, 'foobar'));
+		
+		$this->backend->setPassword($name1, 'newpass1');
+		$this->assertFalse($this->backend->checkPassword($name1, 'pass1'));
+		$this->assertTrue($this->backend->checkPassword($name1, 'newpass1'));
+		$this->assertFalse($this->backend->checkPassword($name2, 'newpass1'));
+	}
+}
diff --git a/tests/lib/user/database.php b/tests/lib/user/database.php
new file mode 100644
index 0000000000000000000000000000000000000000..fe7d87c44de2bc9a2cd564e8993ae3f25a6728dd
--- /dev/null
+++ b/tests/lib/user/database.php
@@ -0,0 +1,44 @@
+<?php
+/**
+* ownCloud
+*
+* @author Robin Appelman
+* @copyright 2012 Robin Appelman icewind@owncloud.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+class Test_User_Database extends Test_User_Backend {
+	/**
+	 * get a new unique user name
+	 * test cases can override this in order to clean up created user
+	 * @return array
+	 */
+	public function getUser() {
+		$user=uniqid('test_');
+		$this->users[]=$user;
+		return $user;
+	}
+	
+	public function setUp() {
+		$this->backend=new OC_User_Dummy();
+	}
+	
+	public function tearDown() {
+		foreach($this->users as $user) {
+			$this->backend->deleteUser($user);
+		}
+	}
+}
diff --git a/tests/lib/user/dummy.php b/tests/lib/user/dummy.php
new file mode 100644
index 0000000000000000000000000000000000000000..e417fd97603677b5ee36cdd3e4533973b75bcad3
--- /dev/null
+++ b/tests/lib/user/dummy.php
@@ -0,0 +1,27 @@
+<?php
+/**
+* ownCloud
+*
+* @author Robin Appelman
+* @copyright 2012 Robin Appelman icewind@owncloud.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+class Test_User_Dummy extends Test_User_Backend {
+	public function setUp() {
+		$this->backend=new OC_User_Dummy();
+	}
+}
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
new file mode 100644
index 0000000000000000000000000000000000000000..bc49f6db4b281e3c58b2d9051c923c06a04f1d30
--- /dev/null
+++ b/tests/lib/user/manager.php
@@ -0,0 +1,304 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\User;
+
+class Manager extends \PHPUnit_Framework_TestCase {
+	public function testUserExistsSingleBackendExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$this->assertTrue($manager->userExists('foo'));
+	}
+
+	public function testUserExistsSingleBackendNotExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$this->assertFalse($manager->userExists('foo'));
+	}
+
+	public function testUserExistsNoBackends() {
+		$manager = new \OC\User\Manager();
+
+		$this->assertFalse($manager->userExists('foo'));
+	}
+
+	public function testUserExistsTwoBackendsSecondExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend1
+		 */
+		$backend1 = $this->getMock('\OC_User_Dummy');
+		$backend1->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend2
+		 */
+		$backend2 = $this->getMock('\OC_User_Dummy');
+		$backend2->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend1);
+		$manager->registerBackend($backend2);
+
+		$this->assertTrue($manager->userExists('foo'));
+	}
+
+	public function testUserExistsTwoBackendsFirstExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend1
+		 */
+		$backend1 = $this->getMock('\OC_User_Dummy');
+		$backend1->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend2
+		 */
+		$backend2 = $this->getMock('\OC_User_Dummy');
+		$backend2->expects($this->never())
+			->method('userExists');
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend1);
+		$manager->registerBackend($backend2);
+
+		$this->assertTrue($manager->userExists('foo'));
+	}
+
+	public function testGetOneBackendExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$this->assertEquals('foo', $manager->get('foo')->getUID());
+	}
+
+	public function testGetOneBackendNotExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$this->assertEquals(null, $manager->get('foo'));
+	}
+
+	public function testSearchOneBackend() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('getUsers')
+			->with($this->equalTo('fo'))
+			->will($this->returnValue(array('foo', 'afoo')));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$result = $manager->search('fo');
+		$this->assertEquals(2, count($result));
+		$this->assertEquals('afoo', $result[0]->getUID());
+		$this->assertEquals('foo', $result[1]->getUID());
+	}
+
+	public function testSearchTwoBackendLimitOffset() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend1
+		 */
+		$backend1 = $this->getMock('\OC_User_Dummy');
+		$backend1->expects($this->once())
+			->method('getUsers')
+			->with($this->equalTo('fo'), $this->equalTo(3), $this->equalTo(1))
+			->will($this->returnValue(array('foo1', 'foo2')));
+
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend2
+		 */
+		$backend2 = $this->getMock('\OC_User_Dummy');
+		$backend2->expects($this->once())
+			->method('getUsers')
+			->with($this->equalTo('fo'), $this->equalTo(1), $this->equalTo(0))
+			->will($this->returnValue(array('foo3')));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend1);
+		$manager->registerBackend($backend2);
+
+		$result = $manager->search('fo', 3, 1);
+		$this->assertEquals(3, count($result));
+		$this->assertEquals('foo1', $result[0]->getUID());
+		$this->assertEquals('foo2', $result[1]->getUID());
+		$this->assertEquals('foo3', $result[2]->getUID());
+	}
+
+	public function testCreateUserSingleBackendNotExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(true));
+
+		$backend->expects($this->once())
+			->method('createUser')
+			->with($this->equalTo('foo'), $this->equalTo('bar'));
+
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$user = $manager->createUser('foo', 'bar');
+		$this->assertEquals('foo', $user->getUID());
+	}
+
+	/**
+	 * @expectedException \Exception
+	 */
+	public function testCreateUserSingleBackendExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(true));
+
+		$backend->expects($this->never())
+			->method('createUser');
+
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$manager->createUser('foo', 'bar');
+	}
+
+	public function testCreateUserSingleBackendNotSupported() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$backend->expects($this->never())
+			->method('createUser');
+
+		$backend->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$this->assertFalse($manager->createUser('foo', 'bar'));
+	}
+
+	public function testCreateUserNoBackends() {
+		$manager = new \OC\User\Manager();
+
+		$this->assertFalse($manager->createUser('foo', 'bar'));
+	}
+
+	/**
+	 * @expectedException \Exception
+	 */
+	public function testCreateUserTwoBackendExists() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend1
+		 */
+		$backend1 = $this->getMock('\OC_User_Dummy');
+		$backend1->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(true));
+
+		$backend1->expects($this->never())
+			->method('createUser');
+
+		$backend1->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(false));
+
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend2
+		 */
+		$backend2 = $this->getMock('\OC_User_Dummy');
+		$backend2->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(true));
+
+		$backend2->expects($this->never())
+			->method('createUser');
+
+		$backend2->expects($this->once())
+			->method('userExists')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend1);
+		$manager->registerBackend($backend2);
+
+		$manager->createUser('foo', 'bar');
+	}
+}
diff --git a/tests/lib/user/session.php b/tests/lib/user/session.php
new file mode 100644
index 0000000000000000000000000000000000000000..274e9e2831eea8bce10721625458fb5d9f85a442
--- /dev/null
+++ b/tests/lib/user/session.php
@@ -0,0 +1,155 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\User;
+
+class Session extends \PHPUnit_Framework_TestCase {
+	public function testGetUser() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->once())
+			->method('get')
+			->with('user_id')
+			->will($this->returnValue('foo'));
+
+		$backend = $this->getMock('OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('userExists')
+			->with('foo')
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$user = $userSession->getUser();
+		$this->assertEquals('foo', $user->getUID());
+	}
+
+	public function testSetUser() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->once())
+			->method('set')
+			->with('user_id', 'foo');
+
+		$manager = $this->getMock('\OC\User\Manager');
+
+		$backend = $this->getMock('OC_User_Dummy');
+
+		$user = $this->getMock('\OC\User\User', array(), array('foo', $backend));
+		$user->expects($this->once())
+			->method('getUID')
+			->will($this->returnValue('foo'));
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$userSession->setUser($user);
+	}
+
+	public function testLoginValidPasswordEnabled() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->once())
+			->method('set')
+			->with('user_id', 'foo');
+
+		$manager = $this->getMock('\OC\User\Manager');
+
+		$backend = $this->getMock('OC_User_Dummy');
+
+		$user = $this->getMock('\OC\User\User', array(), array('foo', $backend));
+		$user->expects($this->once())
+			->method('checkPassword')
+			->with('bar')
+			->will($this->returnValue(true));
+		$user->expects($this->once())
+			->method('isEnabled')
+			->will($this->returnValue(true));
+		$user->expects($this->any())
+			->method('getUID')
+			->will($this->returnValue('foo'));
+
+		$manager->expects($this->once())
+			->method('get')
+			->with('foo')
+			->will($this->returnValue($user));
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$userSession->login('foo', 'bar');
+		$this->assertEquals($user, $userSession->getUser());
+	}
+
+	public function testLoginValidPasswordDisabled() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->never())
+			->method('set');
+
+		$manager = $this->getMock('\OC\User\Manager');
+
+		$backend = $this->getMock('OC_User_Dummy');
+
+		$user = $this->getMock('\OC\User\User', array(), array('foo', $backend));
+		$user->expects($this->once())
+			->method('checkPassword')
+			->with('bar')
+			->will($this->returnValue(true));
+		$user->expects($this->once())
+			->method('isEnabled')
+			->will($this->returnValue(false));
+
+		$manager->expects($this->once())
+			->method('get')
+			->with('foo')
+			->will($this->returnValue($user));
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$userSession->login('foo', 'bar');
+	}
+
+	public function testLoginInValidPassword() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->never())
+			->method('set');
+
+		$manager = $this->getMock('\OC\User\Manager');
+
+		$backend = $this->getMock('OC_User_Dummy');
+
+		$user = $this->getMock('\OC\User\User', array(), array('foo', $backend));
+		$user->expects($this->once())
+			->method('checkPassword')
+			->with('bar')
+			->will($this->returnValue(false));
+		$user->expects($this->never())
+			->method('isEnabled');
+
+		$manager->expects($this->once())
+			->method('get')
+			->with('foo')
+			->will($this->returnValue($user));
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$userSession->login('foo', 'bar');
+	}
+
+	public function testLoginNonExisting() {
+		$session = $this->getMock('\OC\Session\Memory', array(), array(''));
+		$session->expects($this->never())
+			->method('set');
+
+		$manager = $this->getMock('\OC\User\Manager');
+
+		$backend = $this->getMock('OC_User_Dummy');
+
+		$manager->expects($this->once())
+			->method('get')
+			->with('foo')
+			->will($this->returnValue(null));
+
+		$userSession = new \OC\User\Session($manager, $session);
+		$userSession->login('foo', 'bar');
+	}
+}
diff --git a/tests/lib/user/user.php b/tests/lib/user/user.php
new file mode 100644
index 0000000000000000000000000000000000000000..b0d170cbfc56db3016e1859084d1dd8f6c64cdae
--- /dev/null
+++ b/tests/lib/user/user.php
@@ -0,0 +1,364 @@
+<?php
+
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\User;
+
+use OC\Hooks\PublicEmitter;
+
+class User extends \PHPUnit_Framework_TestCase {
+	public function testDisplayName() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Backend');
+		$backend->expects($this->once())
+			->method('getDisplayName')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue('Foo'));
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->with($this->equalTo(\OC_USER_BACKEND_GET_DISPLAYNAME))
+			->will($this->returnValue(true));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertEquals('Foo', $user->getDisplayName());
+	}
+
+	public function testDisplayNameNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Backend');
+		$backend->expects($this->never())
+			->method('getDisplayName');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->with($this->equalTo(\OC_USER_BACKEND_GET_DISPLAYNAME))
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertEquals('foo', $user->getDisplayName());
+	}
+
+	public function testSetPassword() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('setPassword')
+			->with($this->equalTo('foo'), $this->equalTo('bar'));
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_SET_PASSWORD) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->setPassword('bar',''));
+	}
+
+	public function testSetPasswordNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->never())
+			->method('setPassword');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertFalse($user->setPassword('bar',''));
+	}
+
+	public function testDelete() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('deleteUser')
+			->with($this->equalTo('foo'));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->delete());
+	}
+
+	public function testCheckPassword() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('checkPassword')
+			->with($this->equalTo('foo'), $this->equalTo('bar'))
+			->will($this->returnValue(true));
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_CHECK_PASSWORD) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->checkPassword('bar'));
+	}
+
+	public function testCheckPasswordNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->never())
+			->method('checkPassword');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertFalse($user->checkPassword('bar'));
+	}
+
+	public function testGetHome() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('getHome')
+			->with($this->equalTo('foo'))
+			->will($this->returnValue('/home/foo'));
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_GET_HOME) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertEquals('/home/foo', $user->getHome());
+	}
+
+	public function testGetHomeNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->never())
+			->method('getHome');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertEquals(\OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data") . '/foo', $user->getHome());
+	}
+
+	public function testCanChangePassword() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_SET_PASSWORD) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->canChangePassword());
+	}
+
+	public function testCanChangePasswordNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertFalse($user->canChangePassword());
+	}
+
+	public function testCanChangeDisplayName() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_SET_DISPLAYNAME) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->canChangeDisplayName());
+	}
+
+	public function testCanChangeDisplayNameNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnValue(false));
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertFalse($user->canChangeDisplayName());
+	}
+
+	public function testSetDisplayNameSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Database');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_SET_DISPLAYNAME) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$backend->expects($this->once())
+			->method('setDisplayName')
+			->with('foo','Foo');
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertTrue($user->setDisplayName('Foo'));
+		$this->assertEquals('Foo',$user->getDisplayName());
+	}
+
+	public function testSetDisplayNameNotSupported() {
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Database');
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+					return false;
+			}));
+
+		$backend->expects($this->never())
+			->method('setDisplayName');
+
+		$user = new \OC\User\User('foo', $backend);
+		$this->assertFalse($user->setDisplayName('Foo'));
+		$this->assertEquals('foo',$user->getDisplayName());
+	}
+
+	public function testSetPasswordHooks() {
+		$hooksCalled = 0;
+		$test = $this;
+
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('setPassword');
+
+		/**
+		 * @param \OC\User\User $user
+		 * @param string $password
+		 */
+		$hook = function ($user, $password) use ($test, &$hooksCalled) {
+			$hooksCalled++;
+			$test->assertEquals('foo', $user->getUID());
+			$test->assertEquals('bar', $password);
+		};
+
+		$emitter = new PublicEmitter();
+		$emitter->listen('\OC\User', 'preSetPassword', $hook);
+		$emitter->listen('\OC\User', 'postSetPassword', $hook);
+
+		$backend->expects($this->any())
+			->method('implementsActions')
+			->will($this->returnCallback(function ($actions) {
+				if ($actions === \OC_USER_BACKEND_SET_PASSWORD) {
+					return true;
+				} else {
+					return false;
+				}
+			}));
+
+		$user = new \OC\User\User('foo', $backend, $emitter);
+
+		$user->setPassword('bar','');
+		$this->assertEquals(2, $hooksCalled);
+	}
+
+	public function testDeleteHooks() {
+		$hooksCalled = 0;
+		$test = $this;
+
+		/**
+		 * @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('deleteUser');
+
+		/**
+		 * @param \OC\User\User $user
+		 */
+		$hook = function ($user) use ($test, &$hooksCalled) {
+			$hooksCalled++;
+			$test->assertEquals('foo', $user->getUID());
+		};
+
+		$emitter = new PublicEmitter();
+		$emitter->listen('\OC\User', 'preDelete', $hook);
+		$emitter->listen('\OC\User', 'postDelete', $hook);
+
+		$user = new \OC\User\User('foo', $backend, $emitter);
+		$this->assertTrue($user->delete());
+		$this->assertEquals(2, $hooksCalled);
+	}
+}
diff --git a/tests/phpunit-autotest.xml b/tests/phpunit-autotest.xml
index 23cd123edc67cabcf26882e400aca784144fd37d..577e1f0d490c2918842bfedb3743a85443e47713 100644
--- a/tests/phpunit-autotest.xml
+++ b/tests/phpunit-autotest.xml
@@ -5,10 +5,23 @@
 		<file>apps.php</file>
 	</testsuite>
 	<!-- filters for code coverage -->
-	<whitelist processUncoveredFilesFromWhitelist="true">
-		<directory suffix=".php">..</directory>
-		<exclude>
-			<directory suffix=".php">../3rdparty</directory>
-		</exclude>
-	</whitelist>
+	<filter>
+		<!-- whitelist processUncoveredFilesFromWhitelist="true" -->
+		<whitelist>
+			<directory suffix=".php">..</directory>
+			<exclude>
+				<directory suffix=".php">../3rdparty</directory>
+				<directory suffix=".php">../apps/files/l10n</directory>
+				<directory suffix=".php">../apps/files_external/l10n</directory>
+				<directory suffix=".php">../apps/files_versions/l10n</directory>
+				<directory suffix=".php">../apps/files_encryption/l10n</directory>
+				<directory suffix=".php">../apps/files_sharing/l10n</directory>
+				<directory suffix=".php">../apps/files_trashbin/l10n</directory>
+				<directory suffix=".php">../apps/user_ldap/l10n</directory>
+				<directory suffix=".php">../apps/user_webdavauth/l10n</directory>
+				<directory suffix=".php">../lib/MDB2</directory>
+			</exclude>
+		</whitelist>
+	</filter>
 </phpunit>
+
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index f5a686c3020688512d2dc84bd0094088f472c2ad..510c38a3c8bf3bfcf5f87c52b52ce34465df655d 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -5,12 +5,16 @@
 		<file>apps.php</file>
 	</testsuite>
 	<!-- filters for code coverage -->
-	<whitelist processUncoveredFilesFromWhitelist="true">
-		<directory suffix=".php">..</directory>
-		<exclude>
-			<directory suffix=".php">../3rdparty</directory>
-		</exclude>
-	</whitelist>
+	<filter>
+		<!-- whitelist processUncoveredFilesFromWhitelist="true" -->
+		<whitelist>
+			<directory suffix=".php">..</directory>
+			<exclude>
+				<directory suffix=".php">../3rdparty</directory>
+				<directory suffix=".php">../lib/MDB2</directory>
+			</exclude>
+		</whitelist>
+	</filter>
 	<listeners>
 		<listener class="PHPUnit_Util_Log_JSON"></listener>
 	</listeners>