diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php
index c2d65d718c5206a026a1b11ea6c5546ad1d143eb..77d866979c3cfc61921b77fd66314d03f6aca15f 100644
--- a/apps/files/ajax/newfile.php
+++ b/apps/files/ajax/newfile.php
@@ -8,12 +8,11 @@ if(!OC_User::isLoggedIn()) {
 }
 
 session_write_close();
-
 // Get the params
-$dir = isset( $_REQUEST['dir'] ) ? stripslashes($_REQUEST['dir']) : '';
-$filename = isset( $_REQUEST['filename'] ) ? stripslashes($_REQUEST['filename']) : '';
+$dir = isset( $_REQUEST['dir'] ) ? trim($_REQUEST['dir'], '/\\') : '';
+$filename = isset( $_REQUEST['filename'] ) ? trim($_REQUEST['filename'], '/\\') : '';
 $content = isset( $_REQUEST['content'] ) ? $_REQUEST['content'] : '';
-$source = isset( $_REQUEST['source'] ) ? stripslashes($_REQUEST['source']) : '';
+$source = isset( $_REQUEST['source'] ) ? trim($_REQUEST['source'], '/\\') : '';
 
 if($source) {
 	$eventSource=new OC_EventSource();
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 0c00fe8c922ed8e1e108c142c7dcecb052d785cf..e403745452078a8020c61ea8ef0a6efc56029479 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -178,7 +178,12 @@ $(document).ready(function() {
 		var dir=$('#dir').val()||'/';
 		$('#notification').text(t('files','generating ZIP-file, it may take some time.'));
 		$('#notification').fadeIn();
-		window.location=OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: files });
+		// use special download URL if provided, e.g. for public shared files
+		if ( (downloadURL = document.getElementById("downloadURL")) ) {
+			window.location=downloadURL.value+"&download&files="+files;
+		} else {
+			window.location=OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: files });
+		}
 		return false;
 	});
 
@@ -195,6 +200,8 @@ $(document).ready(function() {
 			e.preventDefault(); // prevent browser from doing anything, if file isn't dropped in dropZone
 	});
 
+	if ( document.getElementById("file_upload_start") ) {
+	
 	$(function() {
 		$('.file_upload_start').fileupload({
 			dropZone: $('#content'), // restrict dropZone to content div
@@ -408,7 +415,8 @@ $(document).ready(function() {
 			}
 		})
 	});
-
+	}
+	
 	$.assocArraySize = function(obj) {
 		// http://stackoverflow.com/a/6700/11236
 		var size = 0, key;
@@ -592,7 +600,10 @@ $(document).ready(function() {
 
 	var lastWidth = 0;
 	var breadcrumbs = [];
-	var breadcrumbsWidth = $('#navigation').get(0).offsetWidth;
+	var breadcrumbsWidth = 0;
+	if ( document.getElementById("navigation") ) {
+		breadcrumbsWidth = $('#navigation').get(0).offsetWidth;
+	}
 	var hiddenBreadcrumbs = 0;
 
 	$.each($('.crumb'), function(index, breadcrumb) {
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index 9c5048800082ab8ca9e5a0ab7cd07efca358a934..94212afe8c22f32eb6965fe851143ad7367fc928 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -9,6 +9,7 @@
 "Files" => "Fitxategiak",
 "Unshare" => "Ez partekatu",
 "Delete" => "Ezabatu",
+"Rename" => "Berrizendatu",
 "already exists" => "dagoeneko existitzen da",
 "replace" => "ordeztu",
 "suggest name" => "aholkatu izena",
@@ -22,6 +23,8 @@
 "Unable to upload your file as it is a directory or has 0 bytes" => "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu",
 "Upload Error" => "Igotzean errore bat suertatu da",
 "Pending" => "Zain",
+"1 file uploading" => "fitxategi 1 igotzen",
+"files uploading" => "fitxategiak igotzen",
 "Upload cancelled." => "Igoera ezeztatuta",
 "File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.",
 "Invalid name, '/' is not allowed." => "Baliogabeko izena, '/' ezin da erabili. ",
@@ -34,6 +37,16 @@
 "folders" => "Karpetak",
 "file" => "fitxategia",
 "files" => "fitxategiak",
+"seconds ago" => "segundu",
+"minute ago" => "minutu",
+"minutes ago" => "minutu",
+"today" => "gaur",
+"yesterday" => "atzo",
+"days ago" => "egun",
+"last month" => "joan den hilabetean",
+"months ago" => "hilabete",
+"last year" => "joan den urtean",
+"years ago" => "urte",
 "File handling" => "Fitxategien kudeaketa",
 "Maximum upload size" => "Igo daitekeen gehienezko tamaina",
 "max. possible: " => "max, posiblea:",
diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php
index 875fc747bb774f41711492a249fb7c95dd296bee..71b695f65f8198e57b2b15d8d486391ff3862b84 100644
--- a/apps/files/templates/part.breadcrumb.php
+++ b/apps/files/templates/part.breadcrumb.php
@@ -1,6 +1,6 @@
 	<?php for($i=0; $i<count($_["breadcrumb"]); $i++):
         $crumb = $_["breadcrumb"][$i]; ?>
-		<div class="crumb <?php if($i == count($_["breadcrumb"])-1) echo 'last';?> svg" data-dir='<?php echo $crumb["dir"];?>' style='background-image:url("<?php echo OCP\image_path('core','breadcrumb.png');?>")'>
-		<a href="<?php echo $_['baseURL'].$crumb["dir"]; ?>"><?php echo OCP\Util::sanitizeHTML($crumb["name"]); ?></a>
+		<div class="crumb <?php if($i == count($_["breadcrumb"])-1) echo 'last';?> svg" data-dir='<?php echo urlencode($crumb["dir"]);?>' style='background-image:url("<?php echo OCP\image_path('core','breadcrumb.png');?>")'>
+		<a href="<?php echo $_['baseURL'].urlencode($crumb["dir"]); ?>"><?php echo OCP\Util::sanitizeHTML($crumb["name"]); ?></a>
 		</div>
 	<?php endfor;?>
diff --git a/apps/files_external/l10n/ca.php b/apps/files_external/l10n/ca.php
index 43163ce953bf6d9a03bcb431fa9a11ba612a5dc9..fc6706381b742cf9d1b296ee6c8e0a10241f506b 100644
--- a/apps/files_external/l10n/ca.php
+++ b/apps/files_external/l10n/ca.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "S'ha concedit l'accés",
+"Error configuring Dropbox storage" => "Error en configurar l'emmagatzemament Dropbox",
+"Grant access" => "Concedeix accés",
+"Fill out all required fields" => "Ompliu els camps requerits",
+"Please provide a valid Dropbox app key and secret." => "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox",
+"Error configuring Google Drive storage" => "Error en configurar l'emmagatzemament Google Drive",
 "External Storage" => "Emmagatzemament extern",
 "Mount point" => "Punt de muntatge",
 "Backend" => "Dorsal",
diff --git a/apps/files_external/l10n/cs_CZ.php b/apps/files_external/l10n/cs_CZ.php
index 13263b9b5507f0b03f79b36bcf643f89c3250306..51951c19bfd96fa8fec49d230e6a5c7e741d6968 100644
--- a/apps/files_external/l10n/cs_CZ.php
+++ b/apps/files_external/l10n/cs_CZ.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "Přístup povolen",
+"Error configuring Dropbox storage" => "Chyba při nastavení úložiště Dropbox",
+"Grant access" => "Povolit přístup",
+"Fill out all required fields" => "Vyplňte všechna povinná pole",
+"Please provide a valid Dropbox app key and secret." => "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox.",
+"Error configuring Google Drive storage" => "Chyba při nastavení úložiště Google Drive",
 "External Storage" => "Externí úložiště",
 "Mount point" => "Přípojný bod",
 "Backend" => "Podpůrná vrstva",
diff --git a/apps/files_external/l10n/eu.php b/apps/files_external/l10n/eu.php
index 9d6f833ffc2a06fabbae5da8e667e903ced02e06..8ec6d40563b9081ebe858b0e5febe5c2ddd7104f 100644
--- a/apps/files_external/l10n/eu.php
+++ b/apps/files_external/l10n/eu.php
@@ -1,4 +1,8 @@
 <?php $TRANSLATIONS = array(
+"Error configuring Dropbox storage" => "Errore bat egon da Dropbox biltegiratzea konfiguratzean",
+"Fill out all required fields" => "Bete eskatutako eremu guztiak",
+"Please provide a valid Dropbox app key and secret." => "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua",
+"Error configuring Google Drive storage" => "Errore bat egon da Google Drive biltegiratzea konfiguratzean",
 "External Storage" => "Kanpoko Biltegiratzea",
 "Mount point" => "Montatze puntua",
 "Backend" => "Motorra",
diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php
index 409c66031e93095752dc20500aaee3ede8c86d21..90007aafaaf02b8ccb6647ebbbbf0437ad46a4a0 100644
--- a/apps/files_external/l10n/fr.php
+++ b/apps/files_external/l10n/fr.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "Accès autorisé",
+"Error configuring Dropbox storage" => "Erreur lors de la configuration du support de stockage Dropbox",
+"Grant access" => "Autoriser l'accès",
+"Fill out all required fields" => "Veuillez remplir tous les champs requis",
+"Please provide a valid Dropbox app key and secret." => "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.",
+"Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive",
 "External Storage" => "Stockage externe",
 "Mount point" => "Point de montage",
 "Backend" => "Infrastructure",
diff --git a/apps/files_external/l10n/it.php b/apps/files_external/l10n/it.php
index 7f467c02c567c18225dec33e32e87d4375f76a94..49effebdfc379948eb60d187a21d9e7d041d3419 100644
--- a/apps/files_external/l10n/it.php
+++ b/apps/files_external/l10n/it.php
@@ -3,6 +3,7 @@
 "Error configuring Dropbox storage" => "Errore durante la configurazione dell'archivio Dropbox",
 "Grant access" => "Concedi l'accesso",
 "Fill out all required fields" => "Compila tutti i campi richiesti",
+"Please provide a valid Dropbox app key and secret." => "Fornisci chiave di applicazione e segreto di Dropbox validi.",
 "Error configuring Google Drive storage" => "Errore durante la configurazione dell'archivio Google Drive",
 "External Storage" => "Archiviazione esterna",
 "Mount point" => "Punto di mount",
diff --git a/apps/files_external/l10n/ja_JP.php b/apps/files_external/l10n/ja_JP.php
index 81c6207775b233600ed9ae1365f5ce630797f99a..92f74ce9f723e78db5420fae5fa30a61dacfc360 100644
--- a/apps/files_external/l10n/ja_JP.php
+++ b/apps/files_external/l10n/ja_JP.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "アクセスは許可されました",
+"Error configuring Dropbox storage" => "Dropboxストレージの設定エラー",
+"Grant access" => "アクセスを許可",
+"Fill out all required fields" => "すべての必須フィールドを埋めて下さい",
+"Please provide a valid Dropbox app key and secret." => "有効なDropboxアプリのキーとパスワードを入力して下さい。",
+"Error configuring Google Drive storage" => "Googleドライブストレージの設定エラー",
 "External Storage" => "外部ストレージ",
 "Mount point" => "マウントポイント",
 "Backend" => "バックエンド",
diff --git a/apps/files_external/l10n/pt_PT.php b/apps/files_external/l10n/pt_PT.php
index f2618a14cee844738134be4b0de37c89ddd87e9e..4795a51a6b7f78fdfc30ff9f6d40e89ff56dd6f6 100644
--- a/apps/files_external/l10n/pt_PT.php
+++ b/apps/files_external/l10n/pt_PT.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "Acesso autorizado",
+"Error configuring Dropbox storage" => "Erro ao configurar o armazenamento do Dropbox",
+"Grant access" => "Conceder acesso",
+"Fill out all required fields" => "Preencha todos os campos obrigatórios",
+"Please provide a valid Dropbox app key and secret." => "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas.",
+"Error configuring Google Drive storage" => "Erro ao configurar o armazenamento do Google Drive",
 "External Storage" => "Armazenamento Externo",
 "Mount point" => "Ponto de montagem",
 "Backend" => "Backend",
diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php
index 43a93961d551fc7392d2bd986050b4be0f6e3b72..0a5e1c66d99b13f91465b722f8e36132898e6de4 100644
--- a/apps/files_external/l10n/sv.php
+++ b/apps/files_external/l10n/sv.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "Ã…tkomst beviljad",
+"Error configuring Dropbox storage" => "Fel vid konfigurering av Dropbox",
+"Grant access" => "Bevilja åtkomst",
+"Fill out all required fields" => "Fyll i alla obligatoriska fält",
+"Please provide a valid Dropbox app key and secret." => "Ange en giltig Dropbox nyckel och hemlighet.",
+"Error configuring Google Drive storage" => "Fel vid konfigurering av Google Drive",
 "External Storage" => "Extern lagring",
 "Mount point" => "Monteringspunkt",
 "Backend" => "Källa",
diff --git a/apps/files_external/l10n/th_TH.php b/apps/files_external/l10n/th_TH.php
index 322345a88ae18e26d9244ddb1b4b84cec14d0721..70ab8d3348566df40a632bebbaf8ed809db220ee 100644
--- a/apps/files_external/l10n/th_TH.php
+++ b/apps/files_external/l10n/th_TH.php
@@ -1,4 +1,10 @@
 <?php $TRANSLATIONS = array(
+"Access granted" => "การเข้าถึงได้รับอนุญาตแล้ว",
+"Error configuring Dropbox storage" => "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox",
+"Grant access" => "อนุญาตให้เข้าถึงได้",
+"Fill out all required fields" => "กรอกข้อมูลในช่องข้อมูลที่จำเป็นต้องกรอกทั้งหมด",
+"Please provide a valid Dropbox app key and secret." => "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ",
+"Error configuring Google Drive storage" => "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive",
 "External Storage" => "พื้นทีจัดเก็บข้อมูลจากภายนอก",
 "Mount point" => "จุดชี้ตำแหน่ง",
 "Backend" => "ด้านหลังระบบ",
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index def023748043223823550dc84f49cc2d2f3d8bfd..916e35419c1b4aec563d8ba070d3fde7f3408cf7 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -32,6 +32,18 @@ $(document).ready(function() {
 				window.location = $(tr).find('a.name').attr('href');
 			}
 		});
+		FileActions.register('file', 'Download', OC.PERMISSION_READ, '', function(filename) {
+			var tr = $('tr').filterAttr('data-file', filename)
+			if (tr.length > 0) {
+				window.location = $(tr).find('a.name').attr('href');
+			}
+		});
+		FileActions.register('dir', 'Download', OC.PERMISSION_READ, '', function(filename) {
+			var tr = $('tr').filterAttr('data-file', filename)
+			if (tr.length > 0) {
+				window.location = $(tr).find('a.name').attr('href')+'&download';
+			}
+		});
 	}
 
 });
\ No newline at end of file
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 15377680ab8034e71e34fd39a242a2ba4fc38e49..34340102a9e9b18aa0221122d8b5ef5ae2254e82 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -25,7 +25,7 @@ if (isset($_GET['file']) || isset($_GET['dir'])) {
 	if (isset($_GET['dir'])) {
 		$type = 'folder';
 		$path = $_GET['dir'];
-		$baseDir = basename($path);
+		$baseDir = $path;
 		$dir = $baseDir;
 	} else {
 		$type = 'file';
@@ -36,6 +36,13 @@ if (isset($_GET['file']) || isset($_GET['dir'])) {
 		OC_Util::setupFS($uidOwner);
 		$fileSource = OC_Filecache::getId($path, '');
 		if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) {
+			// TODO Fix in the getItems
+			if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) {
+				header('HTTP/1.0 404 Not Found');
+				$tmpl = new OCP\Template('', '404', 'guest');
+				$tmpl->printPage();
+				exit();
+			}
 			if (isset($linkItem['share_with'])) {
 				// Check password
 				if (isset($_POST['password'])) {
@@ -75,14 +82,18 @@ if (isset($_GET['file']) || isset($_GET['dir'])) {
 			}
 			// Download the file
 			if (isset($_GET['download'])) {
-				$mimetype = OC_Filesystem::getMimeType($path);
-				header('Content-Transfer-Encoding: binary');
-				header('Content-Disposition: attachment; filename="'.basename($path).'"');
-				header('Content-Type: '.$mimetype);
-				header('Content-Length: '.OC_Filesystem::filesize($path));
-				OCP\Response::disableCaching();
-				@ob_clean();
-				OC_Filesystem::readfile($path);
+				if (isset($_GET['dir'])) {
+					if ( isset($_GET['files']) ) { // download selected files
+						OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+					} else 	if (isset($_GET['path']) &&  $_GET['path'] != '' ) { // download a file from a shared directory
+						OC_Files::get('', $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+					} else { // download the whole shared directory
+						OC_Files::get($path, '', $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+					}
+				} else { // download a single shared file
+					OC_Files::get("", $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
+				}
+				
 			} else {
 				OCP\Util::addStyle('files_sharing', 'public');
 				OCP\Util::addScript('files_sharing', 'public');
@@ -103,7 +114,7 @@ if (isset($_GET['file']) || isset($_GET['dir'])) {
 							$i['basename'] = $fileinfo['filename'];
 							$i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : '';
 						}
-						$i['directory'] = substr($i['directory'], $rootLength);
+						$i['directory'] = '/'.substr('/'.$uidOwner.'/files'.$i['directory'], $rootLength);
 						if ($i['directory'] == '/') {
 							$i['directory'] = '';
 						}
@@ -113,12 +124,16 @@ if (isset($_GET['file']) || isset($_GET['dir'])) {
 					// Make breadcrumb
 					$breadcrumb = array();
 					$pathtohere = '';
+					$count = 1;
 					foreach (explode('/', $dir) as $i) {
 						if ($i != '') {
 							if ($i != $baseDir) {
 								$pathtohere .= '/'.$i;
+							}						
+							if ( strlen($pathtohere) <  strlen($_GET['dir'])) {
+								continue;
 							}
-							$breadcrumb[] = array('dir' => $pathtohere, 'name' => $i);
+							$breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i);
 						}
 					}
 					$list = new OCP\Template('files', 'part.list', '');
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index fd9b79e6f17c9c4953210b85af0c0a85f1777029..ef81e296d822f9a3a3770d54293e315ce9350cc2 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -31,7 +31,5 @@
 			</li>
 		</ul>
 	<?php endif; ?>
-	<div id="content"></div>
-	<table></table>
 </div>
 <footer><p class="info"><a href="http://owncloud.org/">ownCloud</a> &ndash; <?php echo $l->t('web services under your control'); ?></p></footer>
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
new file mode 100644
index 0000000000000000000000000000000000000000..fe276f9fabd7b19b43156e5fdb4864696a30c7f0
--- /dev/null
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Host" => "Anfitrião",
+"Password" => "Palavra-passe",
+"Group Filter" => "Filtrar por grupo",
+"Port" => "Porto",
+"in bytes" => "em bytes",
+"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.",
+"Help" => "Ajuda"
+);
diff --git a/core/js/share.js b/core/js/share.js
index e67b333dfc113f95b80a45d0ac496310b6d2485b..75448bfe20831efe9bd75b413f83e4e4d5e7c345 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -166,7 +166,7 @@ OC.Share={
 							OC.Share.addShareWith(share.share_type, share.share_with, share.permissions, possiblePermissions, false);
 						}
 					}
-					if (share.expiration.length > 0) {
+					if (share.expiration != null) {
 						OC.Share.showExpirationDate(share.expiration);
 					}
 				});
@@ -306,13 +306,14 @@ OC.Share={
 		OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = true;
 		$('#linkCheckbox').attr('checked', true);
 		var filename = $('tr').filterAttr('data-id', String(itemSource)).data('file');
+		var type = $('tr').filterAttr('data-id', String(itemSource)).data('type');
 		if ($('#dir').val() == '/') {
 			var file = $('#dir').val() + filename;
 		} else {
 			var file = $('#dir').val() + '/' + filename;
 		}
 		file = '/'+OC.currentUser+'/files'+file;
-		var link = parent.location.protocol+'//'+location.host+OC.linkTo('', 'public.php')+'?service=files&file='+file;
+		var link = parent.location.protocol+'//'+location.host+OC.linkTo('', 'public.php')+'?service=files&'+type+'='+file;
 		$('#linkText').val(link);
 		$('#linkText').show('blind');
 		$('#showPassword').show();
diff --git a/core/l10n/eu.php b/core/l10n/eu.php
index a5f5d3a62100e888c4192a135cd3b6066d08810b..d60ddfa7349cd4dc306b0a13b148d7727d8a5b20 100644
--- a/core/l10n/eu.php
+++ b/core/l10n/eu.php
@@ -25,14 +25,19 @@
 "Error while sharing" => "Errore bat egon da elkarbanatzean",
 "Error while unsharing" => "Errore bat egon da elkarbanaketa desegitean",
 "Error while changing permissions" => "Errore bat egon da baimenak aldatzean",
+"Shared with you and the group" => "Zurekin eta taldearekin elkarbanatuta",
+"Shared with you by" => "Honek zurekin elkarbanatuta:",
 "Share with" => "Elkarbanatu honekin",
 "Share with link" => "Elkarbanatu lotura batekin",
 "Password protect" => "Babestu pasahitzarekin",
 "Password" => "Pasahitza",
 "Set expiration date" => "Ezarri muga data",
 "Expiration date" => "Muga data",
+"Share via email:" => "Elkarbanatu eposta bidez:",
 "No people found" => "Ez da inor aurkitu",
 "Resharing is not allowed" => "Berriz elkarbanatzea ez dago baimendua",
+"Shared in" => "Elkarbanatua hemen:",
+"with" => "honekin",
 "Unshare" => "Ez elkarbanatu",
 "can edit" => "editatu dezake",
 "access control" => "sarrera kontrola",
@@ -41,6 +46,7 @@
 "delete" => "ezabatu",
 "share" => "elkarbanatu",
 "Password protected" => "Pasahitzarekin babestuta",
+"Error unsetting expiration date" => "Errorea izan da muga data kentzean",
 "Error setting expiration date" => "Errore bat egon da muga data ezartzean",
 "ownCloud password reset" => "ownCloud-en pasahitza berrezarri",
 "Use the following link to reset your password: {link}" => "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}",
diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php
index c113a4db24e0570e39ec6b8354ae0eb2b1c62f5b..f78b6ff8bbd47eb0f815d771eb3264900b0a295c 100644
--- a/core/templates/layout.base.php
+++ b/core/templates/layout.base.php
@@ -10,6 +10,8 @@
 		<script type="text/javascript">
 			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
 			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
+			var oc_requesttoken = '<?php echo $_['requesttoken']; ?>';
+			var oc_requestlifespan = '<?php echo $_['requestlifespan']; ?>';
 		</script>
 		<?php foreach ($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php
index 0d2e71c180f24b6f25bfbcb6f18ed7982c157746..6f59e18a8e1bc9509435dd45fa47d08911fe6b2d 100644
--- a/core/templates/layout.guest.php
+++ b/core/templates/layout.guest.php
@@ -10,6 +10,8 @@
 		<script type="text/javascript">
 			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
 			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
+			var oc_requesttoken = '<?php echo $_['requesttoken']; ?>';
+			var oc_requestlifespan = '<?php echo $_['requestlifespan']; ?>';
 		</script>
 		<?php foreach($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
diff --git a/l10n/ca/files_external.po b/l10n/ca/files_external.po
index 9756e656c8f6f1bd4ee205efba9675693899a713..2b4c767cdecc9a01eabc04cd202223a95e9c04ef 100644
--- a/l10n/ca/files_external.po
+++ b/l10n/ca/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 06:09+0000\n"
+"Last-Translator: rogerc <rcalvoi@yahoo.com>\n"
 "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "S'ha concedit l'accés"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Error en configurar l'emmagatzemament Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "Concedeix accés"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Ompliu els camps requerits"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox"
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Error en configurar l'emmagatzemament Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/cs_CZ/files_external.po b/l10n/cs_CZ/files_external.po
index df08fa0cc88f3fd62d2237495b5bc311d06db86a..0f20d9e72e1e35ddaa6979940459ba9a0c21b2df 100644
--- a/l10n/cs_CZ/files_external.po
+++ b/l10n/cs_CZ/files_external.po
@@ -11,9 +11,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 08:09+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"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,27 +23,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "Přístup povolen"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Chyba při nastavení úložiště Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "Povolit přístup"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Vyplňte všechna povinná pole"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbox."
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Chyba při nastavení úložiště Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/eu/core.po b/l10n/eu/core.po
index edfc25de8346a0954c4f9b6a889acc6f1598eb21..8eef5491204b451867640abca3857ff2a1f8dcf3 100644
--- a/l10n/eu/core.po
+++ b/l10n/eu/core.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 08:35+0000\n"
+"Last-Translator: asieriko <asieriko@gmail.com>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -107,8 +107,8 @@ msgstr "Ados"
 msgid "No categories selected for deletion."
 msgstr "Ez da ezabatzeko kategoriarik hautatu."
 
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:494
+#: js/share.js:506
 msgid "Error"
 msgstr "Errorea"
 
@@ -126,7 +126,7 @@ msgstr "Errore bat egon da baimenak aldatzean"
 
 #: js/share.js:130
 msgid "Shared with you and the group"
-msgstr ""
+msgstr "Zurekin eta taldearekin elkarbanatuta"
 
 #: js/share.js:130
 msgid "by"
@@ -134,7 +134,7 @@ msgstr ""
 
 #: js/share.js:132
 msgid "Shared with you by"
-msgstr ""
+msgstr "Honek zurekin elkarbanatuta:"
 
 #: js/share.js:137
 msgid "Share with"
@@ -162,7 +162,7 @@ msgstr "Muga data"
 
 #: js/share.js:185
 msgid "Share via email:"
-msgstr ""
+msgstr "Elkarbanatu eposta bidez:"
 
 #: js/share.js:187
 msgid "No people found"
@@ -174,49 +174,49 @@ msgstr "Berriz elkarbanatzea ez dago baimendua"
 
 #: js/share.js:250
 msgid "Shared in"
-msgstr ""
+msgstr "Elkarbanatua hemen:"
 
 #: js/share.js:250
 msgid "with"
-msgstr ""
+msgstr "honekin"
 
 #: js/share.js:271
 msgid "Unshare"
 msgstr "Ez elkarbanatu"
 
-#: js/share.js:279
+#: js/share.js:283
 msgid "can edit"
 msgstr "editatu dezake"
 
-#: js/share.js:281
+#: js/share.js:285
 msgid "access control"
 msgstr "sarrera kontrola"
 
-#: js/share.js:284
+#: js/share.js:288
 msgid "create"
 msgstr "sortu"
 
-#: js/share.js:287
+#: js/share.js:291
 msgid "update"
 msgstr "eguneratu"
 
-#: js/share.js:290
+#: js/share.js:294
 msgid "delete"
 msgstr "ezabatu"
 
-#: js/share.js:293
+#: js/share.js:297
 msgid "share"
 msgstr "elkarbanatu"
 
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:481
 msgid "Password protected"
 msgstr "Pasahitzarekin babestuta"
 
-#: js/share.js:489
+#: js/share.js:494
 msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "Errorea izan da muga data kentzean"
 
-#: js/share.js:501
+#: js/share.js:506
 msgid "Error setting expiration date"
 msgstr "Errore bat egon da muga data ezartzean"
 
@@ -245,7 +245,7 @@ msgstr "Saio hasierak huts egin du!"
 msgid "Username"
 msgstr "Erabiltzaile izena"
 
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
 msgid "Request reset"
 msgstr "Eskaera berrezarri da"
 
@@ -358,11 +358,11 @@ msgstr "Saioa bukatu"
 msgid "Lost your password?"
 msgstr "Galdu duzu pasahitza?"
 
-#: templates/login.php:17
+#: templates/login.php:16
 msgid "remember"
 msgstr "gogoratu"
 
-#: templates/login.php:18
+#: templates/login.php:17
 msgid "Log in"
 msgstr "Hasi saioa"
 
diff --git a/l10n/eu/files.po b/l10n/eu/files.po
index b0f6fdddb2c199dff58958abc3980a4957eba9c8..47d4c288f1a34cfb69e59b00d0f6334c5912ca47 100644
--- a/l10n/eu/files.po
+++ b/l10n/eu/files.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-26 13:19+0200\n"
-"PO-Revision-Date: 2012-09-26 11:20+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 07:58+0000\n"
+"Last-Translator: asieriko <asieriko@gmail.com>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -63,41 +63,41 @@ msgstr "Ezabatu"
 
 #: js/fileactions.js:182
 msgid "Rename"
-msgstr ""
+msgstr "Berrizendatu"
 
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:189 js/filelist.js:191
 msgid "already exists"
 msgstr "dagoeneko existitzen da"
 
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:189 js/filelist.js:191
 msgid "replace"
 msgstr "ordeztu"
 
-#: js/filelist.js:190
+#: js/filelist.js:189
 msgid "suggest name"
 msgstr "aholkatu izena"
 
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:189 js/filelist.js:191
 msgid "cancel"
 msgstr "ezeztatu"
 
-#: js/filelist.js:239 js/filelist.js:241
+#: js/filelist.js:238 js/filelist.js:240
 msgid "replaced"
 msgstr "ordeztua"
 
-#: js/filelist.js:239 js/filelist.js:241 js/filelist.js:273 js/filelist.js:275
+#: js/filelist.js:238 js/filelist.js:240 js/filelist.js:272 js/filelist.js:274
 msgid "undo"
 msgstr "desegin"
 
-#: js/filelist.js:241
+#: js/filelist.js:240
 msgid "with"
 msgstr "honekin"
 
-#: js/filelist.js:273
+#: js/filelist.js:272
 msgid "unshared"
 msgstr "Ez partekatuta"
 
-#: js/filelist.js:275
+#: js/filelist.js:274
 msgid "deleted"
 msgstr "ezabatuta"
 
@@ -119,11 +119,11 @@ msgstr "Zain"
 
 #: js/files.js:256
 msgid "1 file uploading"
-msgstr ""
+msgstr "fitxategi 1 igotzen"
 
 #: js/files.js:259 js/files.js:304 js/files.js:319
 msgid "files uploading"
-msgstr ""
+msgstr "fitxategiak igotzen"
 
 #: js/files.js:322 js/files.js:355
 msgid "Upload cancelled."
@@ -138,81 +138,81 @@ msgstr "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.
 msgid "Invalid name, '/' is not allowed."
 msgstr "Baliogabeko izena, '/' ezin da erabili. "
 
-#: js/files.js:667
+#: js/files.js:668
 msgid "files scanned"
 msgstr "fitxategiak eskaneatuta"
 
-#: js/files.js:675
+#: js/files.js:676
 msgid "error while scanning"
 msgstr "errore bat egon da eskaneatzen zen bitartean"
 
-#: js/files.js:748 templates/index.php:48
+#: js/files.js:749 templates/index.php:48
 msgid "Name"
 msgstr "Izena"
 
-#: js/files.js:749 templates/index.php:56
+#: js/files.js:750 templates/index.php:56
 msgid "Size"
 msgstr "Tamaina"
 
-#: js/files.js:750 templates/index.php:58
+#: js/files.js:751 templates/index.php:58
 msgid "Modified"
 msgstr "Aldatuta"
 
-#: js/files.js:777
+#: js/files.js:778
 msgid "folder"
 msgstr "karpeta"
 
-#: js/files.js:779
+#: js/files.js:780
 msgid "folders"
 msgstr "Karpetak"
 
-#: js/files.js:787
+#: js/files.js:788
 msgid "file"
 msgstr "fitxategia"
 
-#: js/files.js:789
+#: js/files.js:790
 msgid "files"
 msgstr "fitxategiak"
 
-#: js/files.js:833
+#: js/files.js:834
 msgid "seconds ago"
-msgstr ""
+msgstr "segundu"
 
-#: js/files.js:834
+#: js/files.js:835
 msgid "minute ago"
-msgstr ""
+msgstr "minutu"
 
-#: js/files.js:835
+#: js/files.js:836
 msgid "minutes ago"
-msgstr ""
+msgstr "minutu"
 
-#: js/files.js:838
+#: js/files.js:839
 msgid "today"
-msgstr ""
+msgstr "gaur"
 
-#: js/files.js:839
+#: js/files.js:840
 msgid "yesterday"
-msgstr ""
+msgstr "atzo"
 
-#: js/files.js:840
+#: js/files.js:841
 msgid "days ago"
-msgstr ""
+msgstr "egun"
 
-#: js/files.js:841
+#: js/files.js:842
 msgid "last month"
-msgstr ""
+msgstr "joan den hilabetean"
 
-#: js/files.js:843
+#: js/files.js:844
 msgid "months ago"
-msgstr ""
+msgstr "hilabete"
 
-#: js/files.js:844
+#: js/files.js:845
 msgid "last year"
-msgstr ""
+msgstr "joan den urtean"
 
-#: js/files.js:845
+#: js/files.js:846
 msgid "years ago"
-msgstr ""
+msgstr "urte"
 
 #: templates/admin.php:5
 msgid "File handling"
diff --git a/l10n/eu/files_external.po b/l10n/eu/files_external.po
index fa501c421a34c8620ea9a21f9d43b4ccfa537312..34e7dc8799493ca469b469c03a23810ccd495f28 100644
--- a/l10n/eu/files_external.po
+++ b/l10n/eu/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 07:31+0000\n"
+"Last-Translator: asieriko <asieriko@gmail.com>\n"
 "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +24,7 @@ msgstr ""
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Errore bat egon da Dropbox biltegiratzea konfiguratzean"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
@@ -32,15 +32,15 @@ msgstr ""
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Bete eskatutako eremu guztiak"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua"
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Errore bat egon da Google Drive biltegiratzea konfiguratzean"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/fr/files_external.po b/l10n/fr/files_external.po
index 963258516fcf95f797d44bfcf6626da836c34d37..f7d30e969a98c339a27c566b0a2d92d2b2b6ca10 100644
--- a/l10n/fr/files_external.po
+++ b/l10n/fr/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 19:39+0000\n"
+"Last-Translator: Romain DEP. <rom1dep@gmail.com>\n"
 "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "Accès autorisé"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Erreur lors de la configuration du support de stockage Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "Autoriser l'accès"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Veuillez remplir tous les champs requis"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides."
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Erreur lors de la configuration du support de stockage Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/it/files_external.po b/l10n/it/files_external.po
index 828b945317d7d2551bc87c8a070164ff3c82fa61..bcae09b3e0f3de1a3a5d41eb5314d237713a0a21 100644
--- a/l10n/it/files_external.po
+++ b/l10n/it/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: 2012-10-03 02:01+0200\n"
-"PO-Revision-Date: 2012-10-02 21:34+0000\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 05:50+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"
@@ -37,7 +37,7 @@ msgstr "Compila tutti i campi richiesti"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Fornisci chiave di applicazione e segreto di Dropbox validi."
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
diff --git a/l10n/ja_JP/files_external.po b/l10n/ja_JP/files_external.po
index 91487015dcfce81389c853200032a724db9ea2b5..c857478540bfe96722e69508f87d7c247031a52e 100644
--- a/l10n/ja_JP/files_external.po
+++ b/l10n/ja_JP/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 02:12+0000\n"
+"Last-Translator: Daisuke Deguchi <ddeguchi@is.nagoya-u.ac.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"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "アクセスは許可されました"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Dropboxストレージの設定エラー"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "アクセスを許可"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "すべての必須フィールドを埋めて下さい"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "有効なDropboxアプリのキーとパスワードを入力して下さい。"
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Googleドライブストレージの設定エラー"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/pt_PT/files_external.po b/l10n/pt_PT/files_external.po
index b2410ff7239d8506161beb093fd0e4413029c337..775748e5e55957738bef536d94f33a7708577f58 100644
--- a/l10n/pt_PT/files_external.po
+++ b/l10n/pt_PT/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 12:53+0000\n"
+"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\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"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "Acesso autorizado"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Erro ao configurar o armazenamento do Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "Conceder acesso"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Preencha todos os campos obrigatórios"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas."
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Erro ao configurar o armazenamento do Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/pt_PT/lib.po b/l10n/pt_PT/lib.po
index c2f8bf858d1b2d2d96cc019a7755bdd025d5749c..2b38acfb08a69da25ce7d018ffd4ff1e395a9976 100644
--- a/l10n/pt_PT/lib.po
+++ b/l10n/pt_PT/lib.po
@@ -3,123 +3,124 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Duarte Velez Grilo <duartegrilo@gmail.com>, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-01 02:01+0200\n"
-"PO-Revision-Date: 2012-09-01 00:02+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 13:28+0000\n"
+"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\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"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_PT\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: app.php:288
+#: app.php:285
 msgid "Help"
-msgstr ""
+msgstr "Ajuda"
 
-#: app.php:295
+#: app.php:292
 msgid "Personal"
-msgstr ""
+msgstr "Pessoal"
 
-#: app.php:300
+#: app.php:297
 msgid "Settings"
-msgstr ""
+msgstr "Configurações"
 
-#: app.php:305
+#: app.php:302
 msgid "Users"
-msgstr ""
+msgstr "Utilizadores"
 
-#: app.php:312
+#: app.php:309
 msgid "Apps"
-msgstr ""
+msgstr "Aplicações"
 
-#: app.php:314
+#: app.php:311
 msgid "Admin"
-msgstr ""
+msgstr "Admin"
 
-#: files.php:280
+#: files.php:327
 msgid "ZIP download is turned off."
-msgstr ""
+msgstr "Descarregamento em ZIP está desligado."
 
-#: files.php:281
+#: files.php:328
 msgid "Files need to be downloaded one by one."
-msgstr ""
+msgstr "Os ficheiros precisam de ser descarregados um por um."
 
-#: files.php:281 files.php:306
+#: files.php:328 files.php:353
 msgid "Back to Files"
-msgstr ""
+msgstr "Voltar a Ficheiros"
 
-#: files.php:305
+#: files.php:352
 msgid "Selected files too large to generate zip file."
-msgstr ""
+msgstr "Os ficheiros seleccionados são grandes demais para gerar um ficheiro zip."
 
 #: json.php:28
 msgid "Application is not enabled"
-msgstr ""
+msgstr "A aplicação não está activada"
 
 #: json.php:39 json.php:63 json.php:75
 msgid "Authentication error"
-msgstr ""
+msgstr "Erro na autenticação"
 
 #: json.php:51
 msgid "Token expired. Please reload page."
-msgstr ""
+msgstr "O token expirou. Por favor recarregue a página."
 
-#: template.php:86
+#: template.php:87
 msgid "seconds ago"
-msgstr ""
+msgstr "há alguns segundos"
 
-#: template.php:87
+#: template.php:88
 msgid "1 minute ago"
-msgstr ""
+msgstr "há 1 minuto"
 
-#: template.php:88
+#: template.php:89
 #, php-format
 msgid "%d minutes ago"
-msgstr ""
+msgstr "há %d minutos"
 
-#: template.php:91
+#: template.php:92
 msgid "today"
-msgstr ""
+msgstr "hoje"
 
-#: template.php:92
+#: template.php:93
 msgid "yesterday"
-msgstr ""
+msgstr "ontem"
 
-#: template.php:93
+#: template.php:94
 #, php-format
 msgid "%d days ago"
-msgstr ""
+msgstr "há %d dias"
 
-#: template.php:94
+#: template.php:95
 msgid "last month"
-msgstr ""
+msgstr "mês passado"
 
-#: template.php:95
+#: template.php:96
 msgid "months ago"
-msgstr ""
+msgstr "há meses"
 
-#: template.php:96
+#: template.php:97
 msgid "last year"
-msgstr ""
+msgstr "ano passado"
 
-#: template.php:97
+#: template.php:98
 msgid "years ago"
-msgstr ""
+msgstr "há anos"
 
 #: updater.php:66
 #, php-format
 msgid "%s is available. Get <a href=\"%s\">more information</a>"
-msgstr ""
+msgstr "%s está disponível. Obtenha <a href=\"%s\">mais informação</a>"
 
 #: updater.php:68
 msgid "up to date"
-msgstr ""
+msgstr "actualizado"
 
 #: updater.php:71
 msgid "updates check is disabled"
-msgstr ""
+msgstr "a verificação de actualizações está desligada"
diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po
index 98768f2191d25f6a3773d8cae35281c789cac264..ace3286d8cbfe36fd816efb7f2e5cf5adc100698 100644
--- a/l10n/pt_PT/settings.po
+++ b/l10n/pt_PT/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: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 11:15+0000\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 13:10+0000\n"
 "Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n"
 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
 "MIME-Version: 1.0\n"
@@ -40,7 +40,7 @@ msgstr "Impossível acrescentar o grupo"
 
 #: ajax/enableapp.php:14
 msgid "Could not enable app. "
-msgstr ""
+msgstr "Não foi possível activar a app."
 
 #: ajax/lostpassword.php:14
 msgid "Email saved"
@@ -64,7 +64,7 @@ msgstr "Impossível apagar grupo"
 
 #: ajax/removeuser.php:22
 msgid "Unable to delete user"
-msgstr ""
+msgstr "Impossível apagar utilizador"
 
 #: ajax/setlanguage.php:18
 msgid "Language changed"
@@ -73,12 +73,12 @@ msgstr "Idioma alterado"
 #: ajax/togglegroups.php:25
 #, php-format
 msgid "Unable to add user to group %s"
-msgstr ""
+msgstr "Impossível acrescentar utilizador ao grupo %s"
 
 #: ajax/togglegroups.php:31
 #, php-format
 msgid "Unable to remove user from group %s"
-msgstr ""
+msgstr "Impossível apagar utilizador do grupo %s"
 
 #: js/apps.js:27 js/apps.js:61
 msgid "Disable"
@@ -107,7 +107,7 @@ msgid ""
 "strongly suggest that you configure your webserver in a way that the data "
 "directory is no longer accessible or you move the data directory outside the"
 " webserver document root."
-msgstr ""
+msgstr "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir das internet. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web."
 
 #: templates/admin.php:31
 msgid "Cron"
@@ -115,31 +115,31 @@ msgstr "Cron"
 
 #: templates/admin.php:37
 msgid "Execute one task with each page loaded"
-msgstr ""
+msgstr "Executar uma tarefa ao carregar cada página"
 
 #: templates/admin.php:43
 msgid ""
 "cron.php is registered at a webcron service. Call the cron.php page in the "
 "owncloud root once a minute over http."
-msgstr ""
+msgstr "cron.php está registado num serviço webcron. Chame a página cron.php na raiz owncloud por http uma vez por minuto."
 
 #: templates/admin.php:49
 msgid ""
 "Use systems cron service. Call the cron.php file in the owncloud folder via "
 "a system cronjob once a minute."
-msgstr ""
+msgstr "Usar o serviço cron do sistema. Chame a página cron.php na pasta owncloud via um cronjob do sistema uma vez por minuto."
 
 #: templates/admin.php:56
 msgid "Sharing"
-msgstr ""
+msgstr "Partilhando"
 
 #: templates/admin.php:61
 msgid "Enable Share API"
-msgstr ""
+msgstr "Activar API de partilha"
 
 #: templates/admin.php:62
 msgid "Allow apps to use the Share API"
-msgstr ""
+msgstr "Permitir que apps usem a API de partilha"
 
 #: templates/admin.php:67
 msgid "Allow links"
@@ -147,7 +147,7 @@ msgstr "Permitir ligações"
 
 #: templates/admin.php:68
 msgid "Allow users to share items to the public with links"
-msgstr ""
+msgstr "Permitir que os utilizadores partilhem itens com o público com ligações"
 
 #: templates/admin.php:73
 msgid "Allow resharing"
@@ -155,15 +155,15 @@ msgstr "Permitir voltar a partilhar"
 
 #: templates/admin.php:74
 msgid "Allow users to share items shared with them again"
-msgstr ""
+msgstr "Permitir que os utilizadores partilhem itens que foram partilhados com eles"
 
 #: templates/admin.php:79
 msgid "Allow users to share with anyone"
-msgstr ""
+msgstr "Permitir que os utilizadores partilhem com toda a gente"
 
 #: templates/admin.php:81
 msgid "Allow users to only share with users in their groups"
-msgstr ""
+msgstr "Permitir que os utilizadores apenas partilhem com utilizadores do seu grupo"
 
 #: templates/admin.php:88
 msgid "Log"
@@ -181,7 +181,7 @@ msgid ""
 "licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" "
 "target=\"_blank\"><abbr title=\"Affero General Public "
 "License\">AGPL</abbr></a>."
-msgstr ""
+msgstr "Desenvolvido pela <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o<a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está licenciado sob a <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>."
 
 #: templates/apps.php:10
 msgid "Add your App"
@@ -197,7 +197,7 @@ msgstr "Ver a página da aplicação em apps.owncloud.com"
 
 #: templates/apps.php:30
 msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>"
-msgstr ""
+msgstr "<span class=\"licence\"></span>-licenciado por <span class=\"author\"></span>"
 
 #: templates/help.php:9
 msgid "Documentation"
@@ -226,7 +226,7 @@ msgstr "Resposta"
 #: templates/personal.php:8
 #, php-format
 msgid "You have used <strong>%s</strong> of the available <strong>%s<strong>"
-msgstr ""
+msgstr "Usou <strong>%s</strong> dos <strong>%s<strong> disponíveis."
 
 #: templates/personal.php:12
 msgid "Desktop and Mobile Syncing Clients"
diff --git a/l10n/pt_PT/user_ldap.po b/l10n/pt_PT/user_ldap.po
index c3ee262c51e0ec9e8ab69e22c0eb9b68d32930f1..1d18160531149d504afe630dec544d81ca6e2795 100644
--- a/l10n/pt_PT/user_ldap.po
+++ b/l10n/pt_PT/user_ldap.po
@@ -3,23 +3,24 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Duarte Velez Grilo <duartegrilo@gmail.com>, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-08-29 02:01+0200\n"
-"PO-Revision-Date: 2012-08-29 00:03+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 13:31+0000\n"
+"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\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"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_PT\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: templates/settings.php:8
 msgid "Host"
-msgstr ""
+msgstr "Anfitrião"
 
 #: templates/settings.php:8
 msgid ""
@@ -47,7 +48,7 @@ msgstr ""
 
 #: templates/settings.php:11
 msgid "Password"
-msgstr ""
+msgstr "Palavra-passe"
 
 #: templates/settings.php:11
 msgid "For anonymous access, leave DN and Password empty."
@@ -83,7 +84,7 @@ msgstr ""
 
 #: templates/settings.php:14
 msgid "Group Filter"
-msgstr ""
+msgstr "Filtrar por grupo"
 
 #: templates/settings.php:14
 msgid "Defines the filter to apply, when retrieving groups."
@@ -95,7 +96,7 @@ msgstr ""
 
 #: templates/settings.php:17
 msgid "Port"
-msgstr ""
+msgstr "Porto"
 
 #: templates/settings.php:18
 msgid "Base User Tree"
@@ -153,11 +154,11 @@ msgstr ""
 
 #: templates/settings.php:27
 msgid "in bytes"
-msgstr ""
+msgstr "em bytes"
 
 #: templates/settings.php:29
 msgid "in seconds. A change empties the cache."
-msgstr ""
+msgstr "em segundos. Uma alteração esvazia a cache."
 
 #: templates/settings.php:30
 msgid ""
@@ -167,4 +168,4 @@ msgstr ""
 
 #: templates/settings.php:32
 msgid "Help"
-msgstr ""
+msgstr "Ajuda"
diff --git a/l10n/sv/files_external.po b/l10n/sv/files_external.po
index 17588e54b714395a92e44521bc93e98f92b1a3b1..74d585ed4b590e474ba709a4477e107d2b700d36 100644
--- a/l10n/sv/files_external.po
+++ b/l10n/sv/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-05 02:02+0200\n"
+"PO-Revision-Date: 2012-10-04 09:48+0000\n"
+"Last-Translator: Magnus Höglund <magnus@linux.com>\n"
 "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "Ã…tkomst beviljad"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Fel vid konfigurering av Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "Bevilja åtkomst"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "Fyll i alla obligatoriska fält"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Ange en giltig Dropbox nyckel och hemlighet."
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Fel vid konfigurering av Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot
index ae38a8b2315f841478177421b2320b6f7d35011e..539cfcbb7e730191c4dbf71d423885bf0a10e8b8 100644
--- a/l10n/templates/core.pot
+++ b/l10n/templates/core.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:02+0200\n"
+"POT-Creation-Date: 2012-10-05 02:03+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"
@@ -105,8 +105,8 @@ msgstr ""
 msgid "No categories selected for deletion."
 msgstr ""
 
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493
-#: js/share.js:505
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:494
+#: js/share.js:506
 msgid "Error"
 msgstr ""
 
@@ -206,15 +206,15 @@ msgstr ""
 msgid "share"
 msgstr ""
 
-#: js/share.js:321 js/share.js:480
+#: js/share.js:322 js/share.js:481
 msgid "Password protected"
 msgstr ""
 
-#: js/share.js:493
+#: js/share.js:494
 msgid "Error unsetting expiration date"
 msgstr ""
 
-#: js/share.js:505
+#: js/share.js:506
 msgid "Error setting expiration date"
 msgstr ""
 
diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot
index ffece0a0d4b60424729aba47839e22cb656d8f58..33b3a24b1283c410db4bce19409ebb6bf11cbf49 100644
--- a/l10n/templates/files.pot
+++ b/l10n/templates/files.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
+"POT-Creation-Date: 2012-10-05 02:02+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 ae4a2869cea05b8d6ae2d74ac54243bfd8e244c7..5e96e8163eea978f2775ab1ddf6d510cbda20657 100644
--- a/l10n/templates/files_encryption.pot
+++ b/l10n/templates/files_encryption.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
+"POT-Creation-Date: 2012-10-05 02:02+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_external.pot b/l10n/templates/files_external.pot
index 794fcee27ec3807cc23836b678a1f17ab5bd139d..8906a13da4ab5a1f195df2668800aeac14ce124e 100644
--- a/l10n/templates/files_external.pot
+++ b/l10n/templates/files_external.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
+"POT-Creation-Date: 2012-10-05 02:02+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 446a91c720de1f4527582696e98c6038c0a74a1f..785b8c68d04994c9b0a5d73a3490a54479638c27 100644
--- a/l10n/templates/files_sharing.pot
+++ b/l10n/templates/files_sharing.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
+"POT-Creation-Date: 2012-10-05 02:02+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 ad2e2fc68aa1f2d2fbec6e2ea95e48c76e172954..e9a24ee0f38a6125d9a814963783ccd0ddedf0bf 100644
--- a/l10n/templates/files_versions.pot
+++ b/l10n/templates/files_versions.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
+"POT-Creation-Date: 2012-10-05 02:02+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 54eb1bf1e7abf1fd43345c2d6f4993e3102e8007..f4c9b23aa7764d82358aca9c2be5e32f6d6361f8 100644
--- a/l10n/templates/lib.pot
+++ b/l10n/templates/lib.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:02+0200\n"
+"POT-Creation-Date: 2012-10-05 02:03+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/settings.pot b/l10n/templates/settings.pot
index 5055a0e54c3e304a97e109444c098aef369021ae..4695424a7b3a09a0d20bc4b9e6183afcab58b5d7 100644
--- a/l10n/templates/settings.pot
+++ b/l10n/templates/settings.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:02+0200\n"
+"POT-Creation-Date: 2012-10-05 02:03+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"
@@ -88,7 +88,7 @@ msgstr ""
 msgid "Saving..."
 msgstr ""
 
-#: personal.php:46 personal.php:47
+#: personal.php:47 personal.php:48
 msgid "__language_name__"
 msgstr ""
 
diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot
index 633bd61c0db3c179ff9384daf0ee99389c141647..d7c7bff1663877fdeb84913661d359a712c2303b 100644
--- a/l10n/templates/user_ldap.pot
+++ b/l10n/templates/user_ldap.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-03 02:02+0200\n"
+"POT-Creation-Date: 2012-10-05 02:03+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/files_external.po b/l10n/th_TH/files_external.po
index cb9f2fc34ba406c03392278557f79baa03f9510e..352e137fc48c80ce996f03c37d229d69ffc18562 100644
--- a/l10n/th_TH/files_external.po
+++ b/l10n/th_TH/files_external.po
@@ -8,9 +8,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ownCloud\n"
 "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-04 02:04+0200\n"
+"PO-Revision-Date: 2012-10-03 22:20+0000\n"
+"Last-Translator: AriesAnywhere Anywhere <ariesanywhere@gmail.com>\n"
 "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
 
 #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
 msgid "Access granted"
-msgstr ""
+msgstr "การเข้าถึงได้รับอนุญาตแล้ว"
 
 #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
 msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox"
 
 #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
 msgid "Grant access"
-msgstr ""
+msgstr "อนุญาตให้เข้าถึงได้"
 
 #: js/dropbox.js:73 js/google.js:72
 msgid "Fill out all required fields"
-msgstr ""
+msgstr "กรอกข้อมูลในช่องข้อมูลที่จำเป็นต้องกรอกทั้งหมด"
 
 #: js/dropbox.js:85
 msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ"
 
 #: js/google.js:26 js/google.js:73 js/google.js:78
 msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive"
 
 #: templates/settings.php:3
 msgid "External Storage"
diff --git a/lib/archive.php b/lib/archive.php
index b4459c2b6ce121b25c10339fd98903699abcc1d4..a9c245eaf433d0db1d9cc8e806d057b61f1b2d57 100644
--- a/lib/archive.php
+++ b/lib/archive.php
@@ -13,14 +13,14 @@ abstract class OC_Archive{
 	 * @return OC_Archive
 	 */
 	public static function open($path) {
-		$ext=substr($path,strrpos($path,'.'));
+		$ext=substr($path, strrpos($path, '.'));
 		switch($ext) {
 			case '.zip':
 				return new OC_Archive_ZIP($path);
 			case '.gz':
 			case '.bz':
 			case '.bz2':
-				if(strpos($path,'.tar.')) {
+				if(strpos($path, '.tar.')) {
 					return new OC_Archive_TAR($path);
 				}
 				break;
@@ -126,9 +126,9 @@ abstract class OC_Archive{
 					continue;
 				}
 				if(is_dir($source.'/'.$file)) {
-					$this->addRecursive($path.'/'.$file,$source.'/'.$file);
+					$this->addRecursive($path.'/'.$file, $source.'/'.$file);
 				}else{
-					$this->addFile($path.'/'.$file,$source.'/'.$file);
+					$this->addFile($path.'/'.$file, $source.'/'.$file);
 				}
 			}
 		}
diff --git a/lib/archive/tar.php b/lib/archive/tar.php
index 639d2392b63829e342b0ef62659e7181279881f7..7a47802bc347833bfcce039f1dd8cf549044a78b 100644
--- a/lib/archive/tar.php
+++ b/lib/archive/tar.php
@@ -14,6 +14,7 @@ class OC_Archive_TAR extends OC_Archive{
 	const BZIP=2;
 
 	private $fileList;
+	private $cachedHeaders;
 
 	/**
 	 * @var Archive_Tar tar
@@ -74,6 +75,7 @@ class OC_Archive_TAR extends OC_Archive{
 		$result=$this->tar->addModify(array($tmpBase.$path), '', $tmpBase);
 		rmdir($tmpBase.$path);
 		$this->fileList=false;
+		$this->cachedHeaders=false;
 		return $result;
 	}
 	/**
@@ -95,6 +97,7 @@ class OC_Archive_TAR extends OC_Archive{
 			$result=$this->tar->addString($path, $source);
 		}
 		$this->fileList=false;
+		$this->cachedHeaders=false;
 		return $result;
 	}
 
@@ -115,13 +118,20 @@ class OC_Archive_TAR extends OC_Archive{
 		$this->tar=new Archive_Tar($this->path, $types[self::getTarType($this->path)]);
 		$this->tar->createModify(array($tmp), '', $tmp.'/');
 		$this->fileList=false;
+		$this->cachedHeaders=false;
 		return true;
 	}
 
 	private function getHeader($file) {
-		$headers=$this->tar->listContent();
-		foreach($headers as $header) {
-			if($file==$header['filename'] or $file.'/'==$header['filename'] or '/'.$file.'/'==$header['filename'] or '/'.$file==$header['filename']) {
+		if ( ! $this->cachedHeaders ) {
+			$this->cachedHeaders = $this->tar->listContent();
+		}
+		foreach($this->cachedHeaders as $header) {
+			if(        $file     == $header['filename']
+				or     $file.'/' == $header['filename']
+				or '/'.$file.'/' == $header['filename']
+				or '/'.$file     == $header['filename'])
+			{
 				return $header;
 			}
 		}
@@ -180,9 +190,11 @@ class OC_Archive_TAR extends OC_Archive{
 		if($this->fileList) {
 			return $this->fileList;
 		}
-		$headers=$this->tar->listContent();
+		if ( ! $this->cachedHeaders ) {
+			$this->cachedHeaders = $this->tar->listContent();
+		}
 		$files=array();
-		foreach($headers as $header) {
+		foreach($this->cachedHeaders as $header) {
 			$files[]=$header['filename'];
 		}
 		$this->fileList=$files;
@@ -265,6 +277,7 @@ class OC_Archive_TAR extends OC_Archive{
 			return false;
 		}
 		$this->fileList=false;
+		$this->cachedHeaders=false;
 		//no proper way to delete, extract entire archive, delete file and remake archive
 		$tmp=OCP\Files::tmpFolder();
 		$this->tar->extract($tmp);
diff --git a/lib/archive/zip.php b/lib/archive/zip.php
index a2b07f1a35d530c180b29a6b93b15b0bbf016d3d..d016c692e357d6e9721f5c0ec62333a1860430a1 100644
--- a/lib/archive/zip.php
+++ b/lib/archive/zip.php
@@ -86,7 +86,7 @@ class OC_Archive_ZIP extends OC_Archive{
 		$pathLength=strlen($path);
 		foreach($files as $file) {
 			if(substr($file, 0, $pathLength)==$path and $file!=$path) {
-				if(strrpos(substr($file, 0, -1),'/')<=$pathLength) {
+				if(strrpos(substr($file, 0, -1), '/')<=$pathLength) {
 					$folderContent[]=substr($file, $pathLength);
 				}
 			}
@@ -161,7 +161,10 @@ class OC_Archive_ZIP extends OC_Archive{
 	function getStream($path,$mode) {
 		if($mode=='r' or $mode=='rb') {
 			return $this->zip->getStream($path);
-		}else{//since we cant directly get a writable stream, make a temp copy of the file and put it back in the archive when the stream is closed
+		} else {
+			//since we cant directly get a writable stream,
+			//make a temp copy of the file and put it back
+			//in the archive when the stream is closed
 			if(strrpos($path, '.')!==false) {
 				$ext=substr($path, strrpos($path, '.'));
 			}else{
diff --git a/lib/l10n/pt_PT.php b/lib/l10n/pt_PT.php
new file mode 100644
index 0000000000000000000000000000000000000000..c3cee207a16f64299ff6b790a778dd2a8e95ab2a
--- /dev/null
+++ b/lib/l10n/pt_PT.php
@@ -0,0 +1,28 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Ajuda",
+"Personal" => "Pessoal",
+"Settings" => "Configurações",
+"Users" => "Utilizadores",
+"Apps" => "Aplicações",
+"Admin" => "Admin",
+"ZIP download is turned off." => "Descarregamento em ZIP está desligado.",
+"Files need to be downloaded one by one." => "Os ficheiros precisam de ser descarregados um por um.",
+"Back to Files" => "Voltar a Ficheiros",
+"Selected files too large to generate zip file." => "Os ficheiros seleccionados são grandes demais para gerar um ficheiro zip.",
+"Application is not enabled" => "A aplicação não está activada",
+"Authentication error" => "Erro na autenticação",
+"Token expired. Please reload page." => "O token expirou. Por favor recarregue a página.",
+"seconds ago" => "há alguns segundos",
+"1 minute ago" => "há 1 minuto",
+"%d minutes ago" => "há %d minutos",
+"today" => "hoje",
+"yesterday" => "ontem",
+"%d days ago" => "há %d dias",
+"last month" => "mês passado",
+"months ago" => "há meses",
+"last year" => "ano passado",
+"years ago" => "há anos",
+"%s is available. Get <a href=\"%s\">more information</a>" => "%s está disponível. Obtenha <a href=\"%s\">mais informação</a>",
+"up to date" => "actualizado",
+"updates check is disabled" => "a verificação de actualizações está desligada"
+);
diff --git a/lib/template.php b/lib/template.php
index 681b3f0b1404f727debb1c5a766dc9e8326d896e..fb81ec62519c8c9d0e5fdaaa02a61f3621dde898 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -155,10 +155,8 @@ class OC_Template{
 		$this->renderas = $renderas;
 		$this->application = $app;
 		$this->vars = array();
-		if($renderas == 'user') {
-			$this->vars['requesttoken'] = OC_Util::callRegister();
-			$this->vars['requestlifespan'] = OC_Util::$callLifespan;
-		}
+		$this->vars['requesttoken'] = OC_Util::callRegister();
+		$this->vars['requestlifespan'] = OC_Util::$callLifespan;
 		$parts = explode('/', $app); // fix translation when app is something like core/lostpassword
 		$this->l10n = OC_L10N::get($parts[0]);
                 header('X-Frame-Options: Sameorigin');
diff --git a/settings/l10n/pt_PT.php b/settings/l10n/pt_PT.php
index afbf55ca2dce2955f66609f9600c34d259078af0..2a3ec92f7692695133c06d5bedf54deacf92b240 100644
--- a/settings/l10n/pt_PT.php
+++ b/settings/l10n/pt_PT.php
@@ -3,31 +3,49 @@
 "Authentication error" => "Erro de autenticação",
 "Group already exists" => "O grupo já existe",
 "Unable to add group" => "Impossível acrescentar o grupo",
+"Could not enable app. " => "Não foi possível activar a app.",
 "Email saved" => "Email guardado",
 "Invalid email" => "Email inválido",
 "OpenID Changed" => "OpenID alterado",
 "Invalid request" => "Pedido inválido",
 "Unable to delete group" => "Impossível apagar grupo",
+"Unable to delete user" => "Impossível apagar utilizador",
 "Language changed" => "Idioma alterado",
+"Unable to add user to group %s" => "Impossível acrescentar utilizador ao grupo %s",
+"Unable to remove user from group %s" => "Impossível apagar utilizador do grupo %s",
 "Disable" => "Desativar",
 "Enable" => "Ativar",
 "Saving..." => "A guardar...",
 "__language_name__" => "__language_name__",
 "Security Warning" => "Aviso de Segurança",
+"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir das internet. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web.",
 "Cron" => "Cron",
+"Execute one task with each page loaded" => "Executar uma tarefa ao carregar cada página",
+"cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php está registado num serviço webcron. Chame a página cron.php na raiz owncloud por http uma vez por minuto.",
+"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Usar o serviço cron do sistema. Chame a página cron.php na pasta owncloud via um cronjob do sistema uma vez por minuto.",
+"Sharing" => "Partilhando",
+"Enable Share API" => "Activar API de partilha",
+"Allow apps to use the Share API" => "Permitir que apps usem a API de partilha",
 "Allow links" => "Permitir ligações",
+"Allow users to share items to the public with links" => "Permitir que os utilizadores partilhem itens com o público com ligações",
 "Allow resharing" => "Permitir voltar a partilhar",
+"Allow users to share items shared with them again" => "Permitir que os utilizadores partilhem itens que foram partilhados com eles",
+"Allow users to share with anyone" => "Permitir que os utilizadores partilhem com toda a gente",
+"Allow users to only share with users in their groups" => "Permitir que os utilizadores apenas partilhem com utilizadores do seu grupo",
 "Log" => "Log",
 "More" => "Mais",
+"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Desenvolvido pela <a href=\"http://ownCloud.org/contact\" target=\"_blank\">comunidade ownCloud</a>, o<a href=\"https://github.com/owncloud\" target=\"_blank\">código fonte</a> está licenciado sob a <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
 "Add your App" => "Adicione a sua aplicação",
 "Select an App" => "Selecione uma aplicação",
 "See application page at apps.owncloud.com" => "Ver a página da aplicação em apps.owncloud.com",
+"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-licenciado por <span class=\"author\"></span>",
 "Documentation" => "Documentação",
 "Managing Big Files" => "Gestão de ficheiros grandes",
 "Ask a question" => "Coloque uma questão",
 "Problems connecting to help database." => "Problemas ao conectar à base de dados de ajuda",
 "Go there manually." => "Vá lá manualmente",
 "Answer" => "Resposta",
+"You have used <strong>%s</strong> of the available <strong>%s<strong>" => "Usou <strong>%s</strong> dos <strong>%s<strong> disponíveis.",
 "Desktop and Mobile Syncing Clients" => "Clientes de sincronização desktop e movel",
 "Download" => "Transferir",
 "Your password was changed" => "A sua palavra-passe foi alterada",
diff --git a/settings/personal.php b/settings/personal.php
index 4f92985c7977956476c55e4629f4601966e70fe2..9297f5d91cc4f542709e794672c0a15523b544a8 100644
--- a/settings/personal.php
+++ b/settings/personal.php
@@ -24,6 +24,7 @@ if (!isset($sharedInfo['size'])) {
 	$sharedSize = $sharedInfo['size'];
 }
 $used=$rootInfo['size']-$sharedSize;
+if($used<0) $used=0;
 $free=OC_Filesystem::free_space();
 $total=$free+$used;
 if($total==0) $total=1;  // prevent division by zero