merge master into webdav-injection

This commit is contained in:
Robin Appelman 2014-04-22 12:25:49 +02:00
commit 3821a09689
538 changed files with 8064 additions and 7400 deletions

View File

@ -111,22 +111,32 @@ if ($maxUploadFileSize >= 0 and $totalSize > $maxUploadFileSize) {
}
$result = array();
$directory = '';
if (strpos($dir, '..') === false) {
$fileCount = count($files['name']);
for ($i = 0; $i < $fileCount; $i++) {
// Get the files directory
if(isset($_POST['file_directory']) === true) {
$directory = '/'.$_POST['file_directory'];
}
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') {
// append a number in brackets like 'filename (2).ext'
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]);
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir.$directory), $files['name'][$i]);
} else {
$target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]);
$target = \OC\Files\Filesystem::normalizePath(stripslashes($dir.$directory).'/'.$files['name'][$i]);
}
$directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
if (isset($public_directory)) {
// If we are uploading from the public app,
// we want to send the relative path in the ajax request.
$directory = $public_directory;
if(empty($directory) === true)
{
$directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
if (isset($public_directory)) {
// If we are uploading from the public app,
// we want to send the relative path in the ajax request.
$directory = $public_directory;
}
}
if ( ! \OC\Files\Filesystem::file_exists($target)
@ -186,7 +196,6 @@ if (strpos($dir, '..') === false) {
if ($error === false) {
OCP\JSON::encodedPrint($result);
exit();
} else {
OCP\JSON::error(array(array('data' => array_merge(array('message' => $error, 'code' => $errorCode), $storageStats))));
}

View File

@ -242,11 +242,19 @@ OC.Upload = {
data.errorThrown = errorMessage;
}
if (file.type === '' && file.size === 4096) {
data.textStatus = 'dirorzero';
data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
{filename: file.name}
);
// in case folder drag and drop is not supported file will point to a directory
// http://stackoverflow.com/a/20448357
if (!file.type && file.size%4096 === 0 && file.size <= 102400) {
try {
reader = new FileReader();
reader.readAsBinaryString(f);
} catch (NS_ERROR_FILE_ACCESS_DENIED) {
//file is a directory
data.textStatus = 'dirorzero';
data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
{filename: file.name}
);
}
}
// add size
@ -326,10 +334,15 @@ OC.Upload = {
submit: function(e, data) {
OC.Upload.rememberUpload(data);
if ( ! data.formData ) {
var fileDirectory = '';
if(typeof data.files[0].relativePath !== 'undefined') {
fileDirectory = data.files[0].relativePath;
}
// noone set update parameters, we set the minimum
data.formData = {
requesttoken: oc_requesttoken,
dir: $('#dir').val()
dir: $('#dir').val(),
file_directory: fileDirectory
};
}
},
@ -683,3 +696,4 @@ $(document).ready(function() {
OC.Upload.init();
});

View File

@ -9,7 +9,7 @@
*/
/* global OC, t, n, FileList, FileActions, Files, BreadCrumb */
/* global procesSelection, dragOptions */
/* global procesSelection, dragOptions, folderDropOptions */
window.FileList = {
appName: t('files', 'Files'),
isEmpty: true,
@ -212,7 +212,7 @@ window.FileList = {
linkUrl = Files.getDownloadUrl(name, FileList.getCurrentDirectory());
}
td.append('<input id="select-' + fileData.id + '" type="checkbox" /><label for="select-' + fileData.id + '"></label>');
var link_elem = $('<a></a>').attr({
var linkElem = $('<a></a>').attr({
"class": "name",
"href": linkUrl
});
@ -228,19 +228,19 @@ window.FileList = {
basename = name;
extension = false;
}
var name_span=$('<span></span>').addClass('nametext').text(basename);
link_elem.append(name_span);
var nameSpan=$('<span></span>').addClass('nametext').text(basename);
linkElem.append(nameSpan);
if (extension) {
name_span.append($('<span></span>').addClass('extension').text(extension));
nameSpan.append($('<span></span>').addClass('extension').text(extension));
}
// dirs can show the number of uploaded files
if (type === 'dir') {
link_elem.append($('<span></span>').attr({
linkElem.append($('<span></span>').attr({
'class': 'uploadtext',
'currentUploads': 0
}));
}
td.append(link_elem);
td.append(linkElem);
tr.append(td);
// size column
@ -250,7 +250,7 @@ window.FileList = {
} else {
simpleSize = t('files', 'Pending');
}
var lastModifiedTime = Math.round(mtime / 1000);
td = $('<td></td>').attr({
"class": "filesize",
"style": 'color:rgb(' + sizeColor + ',' + sizeColor + ',' + sizeColor + ')'
@ -437,8 +437,6 @@ window.FileList = {
});
},
reloadCallback: function(result) {
var $controls = $('#controls');
delete this._reloadCall;
this.hideMask();
@ -810,10 +808,9 @@ window.FileList = {
var info = t('files', '{dirs} and {files}', infoVars);
// don't show the filesize column, if filesize is NaN (e.g. in trashbin)
if (isNaN(summary.totalSize)) {
var fileSize = '';
} else {
var fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
var fileSize = '';
if (!isNaN(summary.totalSize)) {
fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
}
var $summary = $('<tr class="summary" data-file="undefined"><td><span class="info">'+info+'</span></td>'+fileSize+'<td></td></tr>');
@ -899,7 +896,6 @@ window.FileList = {
}
},
updateEmptyContent: function() {
var $fileList = $('#fileList');
var permissions = $('#permissions').val();
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
$('#emptycontent').toggleClass('hidden', !isCreatable || !FileList.isEmpty);
@ -937,13 +933,13 @@ window.FileList = {
},
scrollTo:function(file) {
//scroll to and highlight preselected file
var $scrolltorow = FileList.findFileEl(file);
if ($scrolltorow.exists()) {
$scrolltorow.addClass('searchresult');
$(window).scrollTop($scrolltorow.position().top);
var $scrollToRow = FileList.findFileEl(file);
if ($scrollToRow.exists()) {
$scrollToRow.addClass('searchresult');
$(window).scrollTop($scrollToRow.position().top);
//remove highlight when hovered over
$scrolltorow.one('hover', function() {
$scrolltorow.removeClass('searchresult');
$scrollToRow.one('hover', function() {
$scrollToRow.removeClass('searchresult');
});
}
},
@ -979,9 +975,9 @@ $(document).ready(function() {
FileList.initialize();
// handle upload events
var file_upload_start = $('#file_upload_start');
var fileUploadStart = $('#file_upload_start');
file_upload_start.on('fileuploaddrop', function(e, data) {
fileUploadStart.on('fileuploaddrop', function(e, data) {
OC.Upload.log('filelist handle fileuploaddrop', e, data);
var dropTarget = $(e.originalEvent.target).closest('tr, .crumb');
@ -1008,7 +1004,8 @@ $(document).ready(function() {
data.formData = function(form) {
return [
{name: 'dir', value: dir},
{name: 'requesttoken', value: oc_requesttoken}
{name: 'requesttoken', value: oc_requesttoken},
{name: 'file_directory', value: data.files[0].relativePath}
];
};
} else {
@ -1019,7 +1016,7 @@ $(document).ready(function() {
}
}
});
file_upload_start.on('fileuploadadd', function(e, data) {
fileUploadStart.on('fileuploadadd', function(e, data) {
OC.Upload.log('filelist handle fileuploadadd', e, data);
//finish delete if we are uploading a deleted file
@ -1032,19 +1029,19 @@ $(document).ready(function() {
// add to existing folder
// update upload counter ui
var uploadtext = data.context.find('.uploadtext');
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
var uploadText = data.context.find('.uploadtext');
var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
currentUploads += 1;
uploadtext.attr('currentUploads', currentUploads);
uploadText.attr('currentUploads', currentUploads);
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 1) {
var img = OC.imagePath('core', 'loading.gif');
data.context.find('td.filename').attr('style','background-image:url('+img+')');
uploadtext.text(translatedText);
uploadtext.show();
uploadText.text(translatedText);
uploadText.show();
} else {
uploadtext.text(translatedText);
uploadText.text(translatedText);
}
}
@ -1053,7 +1050,7 @@ $(document).ready(function() {
* when file upload done successfully add row to filelist
* update counter when uploading to sub folder
*/
file_upload_start.on('fileuploaddone', function(e, data) {
fileUploadStart.on('fileuploaddone', function(e, data) {
OC.Upload.log('filelist handle fileuploaddone', e, data);
var response;
@ -1067,38 +1064,69 @@ $(document).ready(function() {
if (typeof result[0] !== 'undefined' && result[0].status === 'success') {
var file = result[0];
var size = 0;
if (data.context && data.context.data('type') === 'dir') {
// update upload counter ui
var uploadtext = data.context.find('.uploadtext');
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
var uploadText = data.context.find('.uploadtext');
var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
currentUploads -= 1;
uploadtext.attr('currentUploads', currentUploads);
uploadText.attr('currentUploads', currentUploads);
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 0) {
var img = OC.imagePath('core', 'filetypes/folder');
data.context.find('td.filename').attr('style','background-image:url('+img+')');
uploadtext.text(translatedText);
uploadtext.hide();
uploadText.text(translatedText);
uploadText.hide();
} else {
uploadtext.text(translatedText);
uploadText.text(translatedText);
}
// update folder size
var size = parseInt(data.context.data('size'));
size += parseInt(file.size);
size = parseInt(data.context.data('size'), 10);
size += parseInt(file.size, 10);
data.context.attr('data-size', size);
data.context.find('td.filesize').text(humanFileSize(size));
} else {
// only append new file if uploaded into the current folder
if (file.directory !== FileList.getCurrentDirectory()) {
if (file.directory !== '/' && file.directory !== FileList.getCurrentDirectory()) {
var fileDirectory = file.directory.replace('/','').replace(/\/$/, "").split('/');
if (fileDirectory.length === 1) {
fileDirectory = fileDirectory[0];
// Get the directory
var fd = FileList.findFileEl(fileDirectory);
if (fd.length === 0) {
var dir = {
name: fileDirectory,
type: 'dir',
mimetype: 'httpd/unix-directory',
permissions: file.permissions,
size: 0,
id: file.parentId
};
FileList.add(dir, {insert: true});
}
} else {
fileDirectory = fileDirectory[0];
}
fileDirectory = FileList.findFileEl(fileDirectory);
// update folder size
size = parseInt(fileDirectory.attr('data-size'), 10);
size += parseInt(file.size, 10);
fileDirectory.attr('data-size', size);
fileDirectory.find('td.filesize').text(humanFileSize(size));
return;
}
// add as stand-alone row to filelist
var size=t('files', 'Pending');
size = t('files', 'Pending');
if (data.files[0].size>=0) {
size=data.files[0].size;
}
@ -1110,37 +1138,40 @@ $(document).ready(function() {
}
}
});
file_upload_start.on('fileuploadstop', function(e, data) {
fileUploadStart.on('fileuploadstop', function(e, data) {
OC.Upload.log('filelist handle fileuploadstop', e, data);
//if user pressed cancel hide upload chrome
if (data.errorThrown === 'abort') {
//cleanup uploading to a dir
var uploadtext = $('tr .uploadtext');
var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
uploadtext.fadeOut();
uploadtext.attr('currentUploads', 0);
uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
uploadText.fadeOut();
uploadText.attr('currentUploads', 0);
}
});
file_upload_start.on('fileuploadfail', function(e, data) {
fileUploadStart.on('fileuploadfail', function(e, data) {
OC.Upload.log('filelist handle fileuploadfail', e, data);
//if user pressed cancel hide upload chrome
if (data.errorThrown === 'abort') {
//cleanup uploading to a dir
var uploadtext = $('tr .uploadtext');
var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
uploadtext.fadeOut();
uploadtext.attr('currentUploads', 0);
uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
uploadText.fadeOut();
uploadText.attr('currentUploads', 0);
}
});
$('#notification').hide();
$('#notification:first-child').on('click', '.replace', function() {
OC.Notification.hide(function() {
FileList.replace($('#notification > span').attr('data-oldName'), $('#notification > span').attr('data-newName'), $('#notification > span').attr('data-isNewFile'));
FileList.replace(
$('#notification > span').attr('data-oldName'),
$('#notification > span').attr('data-newName'),
$('#notification > span').attr('data-isNewFile'));
});
});
$('#notification:first-child').on('click', '.suggest', function() {
@ -1170,8 +1201,7 @@ $(document).ready(function() {
function parseHashQuery() {
var hash = window.location.hash,
pos = hash.indexOf('?'),
query;
pos = hash.indexOf('?');
if (pos >= 0) {
return hash.substr(pos + 1);
}
@ -1180,8 +1210,7 @@ $(document).ready(function() {
function parseCurrentDirFromUrl() {
var query = parseHashQuery(),
params,
dir = '/';
params;
// try and parse from URL hash first
if (query) {
params = OC.parseQueryString(decodeQuery(query));

View File

@ -135,7 +135,7 @@ var Files = {
return;
}
if (initStatus === '1') { // encryption tried to init but failed
OC.Notification.showHtml(t('files', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
OC.Notification.show(t('files', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
return;
}
if (encryptedFiles === '1') {

View File

@ -22,6 +22,7 @@ $TRANSLATIONS = array(
"Upload" => "Xubir",
"Save" => "Guardar",
"New folder" => "Nueva carpeta",
"Folder" => "Carpeta",
"Cancel upload" => "Encaboxar xuba",
"Download" => "Descargar",
"Delete" => "Desaniciar"

View File

@ -69,7 +69,7 @@ $TRANSLATIONS = array(
"Maximum upload size" => "Μέγιστο μέγεθος αποστολής",
"max. possible: " => "μέγιστο δυνατό:",
"Needed for multi-file and folder downloads." => "Απαραίτητο για κατέβασμα πολλαπλών αρχείων και φακέλων",
"Enable ZIP-download" => "Ενεργοποίηση κατεβάσματος ZIP",
"Enable ZIP-download" => "Επιτρέπεται η λήψη ZIP",
"0 is unlimited" => "0 για απεριόριστο",
"Maximum input size for ZIP files" => "Μέγιστο μέγεθος για αρχεία ZIP",
"Save" => "Αποθήκευση",

View File

@ -1,6 +1,6 @@
<?php
$TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "%s taşınamadı - Bu isimde dosya zaten var",
"Could not move %s - File with this name already exists" => "%s taşınamadı. Bu isimde dosya zaten mevcut",
"Could not move %s" => "%s taşınamadı",
"File name cannot be empty." => "Dosya adı boş olamaz.",
"\"%s\" is an invalid file name." => "'%s' geçersiz bir dosya adı.",

View File

@ -11,7 +11,7 @@ class Helper
$l = new \OC_L10N('files');
$maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir, $storageInfo['free']);
$maxHumanFilesize = \OCP\Util::humanFileSize($maxUploadFilesize);
$maxHumanFilesize = $l->t('Upload') . ' max. ' . $maxHumanFilesize;
$maxHumanFilesize = $l->t('Upload (max. %s)', array($maxHumanFilesize));
return array('uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize,
@ -73,13 +73,14 @@ class Helper
/**
* Formats the file info to be returned as JSON to the client.
*
* @param \OCP\Files\FileInfo file info
* @param \OCP\Files\FileInfo $i
* @return array formatted file info
*/
public static function formatFileInfo($i) {
$entry = array();
$entry['id'] = $i['fileid'];
$entry['parentId'] = $i['parent'];
$entry['date'] = \OCP\Util::formatDate($i['mtime']);
$entry['mtime'] = $i['mtime'] * 1000;
// only pick out the needed attributes

View File

@ -19,7 +19,7 @@
</div>
<?php endif;?>
<div id="upload" class="button"
title="<?php p($l->t('Upload') . ' max. '.$_['uploadMaxHumanFilesize']) ?>">
title="<?php p($l->t('Upload (max. %s)', array($_['uploadMaxHumanFilesize']))) ?>">
<?php if($_['uploadMaxFilesize'] >= 0):?>
<input type="hidden" id="max_upload" name="MAX_FILE_SIZE" value="<?php p($_['uploadMaxFilesize']) ?>">
<?php endif;?>

View File

@ -6,12 +6,19 @@ $TRANSLATIONS = array(
"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",
"Saved" => "Desat",
"<b>Note:</b> " => "<b>Nota:</b> ",
" and " => "i",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"External Storage" => "Emmagatzemament extern",
"Folder name" => "Nom de la carpeta",
"External storage" => "Emmagatzemament extern",
"Configuration" => "Configuració",
"Options" => "Options",
"Available for" => "Disponible per",
"Add storage" => "Afegeix emmagatzemament",
"No user or group" => "Sense usuaris o grups",
"All Users" => "Tots els usuaris",
"Groups" => "Grups",
"Users" => "Usuaris",

View File

@ -6,12 +6,19 @@ $TRANSLATIONS = array(
"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",
"Saved" => "Uloženo",
"<b>Note:</b> " => "<b>Poznámka:</b>",
" and " => "a",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> cURL podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> FTP podpora v PHP není povolena nebo nainstalována. Není možné připojení %s. Prosím požádejte svého správce systému ať ji nainstaluje.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Poznámka:</b> \"%s\" není instalováno. Není možné připojení %s. Prosím požádejte svého správce systému o instalaci.",
"External Storage" => "Externí úložiště",
"Folder name" => "Název složky",
"External storage" => "Externí úložiště",
"Configuration" => "Nastavení",
"Options" => "Možnosti",
"Available for" => "Dostupné pro",
"Add storage" => "Přidat úložiště",
"No user or group" => "Žádný uživatel nebo skupina.",
"All Users" => "Všichni uživatelé",
"Groups" => "Skupiny",
"Users" => "Uživatelé",

View File

@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Vpisati je treba veljaven ključ programa in kodo za Dropbox",
"Error configuring Google Drive storage" => "Napaka nastavljanja shrambe Google Drive",
"Saved" => "Shranjeno",
"<b>Note:</b> " => "<b>Opomba:</b> ",
" and " => "in",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Podpora za naslove cURL v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Podpora za protokol FTP v PHP ni omogočena, ali pa ni ustrezno nameščenih programov. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Opomba:</b> Program \"%s\" ni nameščen. Priklapljanje %s ni mogoče. Za pomoč pri namestitvi se obrnite na sistemskega skrbnika.",
"External Storage" => "Zunanja podatkovna shramba",
"Folder name" => "Ime mape",
"External storage" => "Zunanja shramba",

View File

@ -1,32 +1,3 @@
body {
height: auto;
}
#header {
background-color: #1d2d44;
height:32px;
left:0;
line-height:32px;
position:fixed;
right:0;
top:0;
z-index:100;
padding:7px;
}
.header-right {
padding: 0;
height: 32px;
}
#details {
color:#fff;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
opacity: .5;
padding-right: 5px;
}
#controls {
left: 0;
}
@ -99,13 +70,26 @@ thead {
margin: 0;
}
.directDownload,
.directLink {
margin-bottom: 20px;
}
/* keep long file names in one line to not overflow download button on mobile */
.directDownload #download {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 90%;
display: inline-block;
margin-left: auto;
margin-right: auto;
}
.directDownload .button img {
vertical-align: text-bottom;
}
.directLink label {
font-weight: normal;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
@ -115,4 +99,5 @@ thead {
.directLink input {
margin-left: 5px;
width: 300px;
max-width: 90%;
}

View File

@ -62,11 +62,17 @@ $(document).ready(function() {
var file_upload_start = $('#file_upload_start');
file_upload_start.on('fileuploadadd', function(e, data) {
var fileDirectory = '';
if(typeof data.files[0].relativePath !== 'undefined') {
fileDirectory = data.files[0].relativePath;
}
// Add custom data to the upload handler
data.formData = {
requesttoken: $('#publicUploadRequestToken').val(),
dirToken: $('#dirToken').val(),
subdir: $('input#dir').val()
subdir: $('input#dir').val(),
file_directory: fileDirectory
};
});

View File

@ -30,7 +30,7 @@ $(document).ready(function() {
function removeCallback(result) {
if (result.status !== 'success') {
OC.dialogs.alert(result.data.message, t('core', 'Error'));
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
}
var files = result.data.success;
@ -59,7 +59,7 @@ $(document).ready(function() {
},
removeCallback
);
});
}, t('files_trashbin', 'Restore'));
};
FileActions.register('all', 'Delete', OC.PERMISSION_READ, function() {
@ -121,7 +121,7 @@ $(document).ready(function() {
function(result) {
if (allFiles) {
if (result.status !== 'success') {
OC.dialogs.alert(result.data.message, t('core', 'Error'));
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
}
FileList.hideMask();
// simply remove all files
@ -170,7 +170,7 @@ $(document).ready(function() {
function(result) {
if (allFiles) {
if (result.status !== 'success') {
OC.dialogs.alert(result.data.message, t('core', 'Error'));
OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
}
FileList.hideMask();
// simply remove all files

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "تعذّر استرجاع %s ",
"Deleted files" => "حذف الملفات",
"Error" => "خطأ",
"Deleted Files" => "الملفات المحذوفه",
"restored" => "تمت الاستعادة",
"Nothing in here. Your trash bin is empty!" => "لا يوجد شيء هنا. سلة المهملات خاليه.",
"Name" => "اسم",
"Restore" => "استعيد",
"Deleted" => "تم الحذف",
"Delete" => "إلغاء",
"Deleted Files" => "الملفات المحذوفه"
"Delete" => "إلغاء"
);
$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;";

View File

@ -1,8 +1,13 @@
<?php
$TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Nun pudo desaniciase %s dafechu",
"Couldn't restore %s" => "Nun pudo restaurase %s",
"Error" => "Fallu",
"Deleted Files" => "Ficheros desaniciaos",
"Nothing in here. Your trash bin is empty!" => "Nun hai un res equí. La papelera ta balera!",
"Name" => "Nome",
"Restore" => "Restaurar",
"Deleted" => "Desaniciáu",
"Delete" => "Desaniciar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -3,11 +3,11 @@ $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Невъзможно перманентното изтриване на %s",
"Couldn't restore %s" => "Невъзможно възтановяване на %s",
"Error" => "Грешка",
"Deleted Files" => "Изтрити файлове",
"Nothing in here. Your trash bin is empty!" => "Няма нищо. Кофата е празна!",
"Name" => "Име",
"Restore" => "Възтановяване",
"Deleted" => "Изтрито",
"Delete" => "Изтриване",
"Deleted Files" => "Изтрити файлове"
"Delete" => "Изтриване"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No s'ha pogut restaurar %s",
"Deleted files" => "Fitxers esborrats",
"Error" => "Error",
"Deleted Files" => "Fitxers eliminats",
"restored" => "restaurat",
"Nothing in here. Your trash bin is empty!" => "La paperera està buida!",
"Name" => "Nom",
"Restore" => "Recupera",
"Deleted" => "Eliminat",
"Delete" => "Esborra",
"Deleted Files" => "Fitxers eliminats"
"Delete" => "Esborra"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nelze obnovit %s",
"Deleted files" => "Odstraněné soubory",
"Error" => "Chyba",
"Deleted Files" => "Smazané soubory",
"restored" => "obnoveno",
"Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.",
"Name" => "Název",
"Restore" => "Obnovit",
"Deleted" => "Smazáno",
"Delete" => "Smazat",
"Deleted Files" => "Smazané soubory"
"Delete" => "Smazat"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";

View File

@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Methwyd adfer %s",
"Deleted files" => "Ffeiliau ddilewyd",
"Error" => "Gwall",
"Deleted Files" => "Ffeiliau Ddilewyd",
"Nothing in here. Your trash bin is empty!" => "Does dim byd yma. Mae eich bin sbwriel yn wag!",
"Name" => "Enw",
"Restore" => "Adfer",
"Deleted" => "Wedi dileu",
"Delete" => "Dileu",
"Deleted Files" => "Ffeiliau Ddilewyd"
"Delete" => "Dileu"
);
$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunne ikke gendanne %s",
"Deleted files" => "Slettede filer",
"Error" => "Fejl",
"Deleted Files" => "Slettede filer",
"restored" => "Gendannet",
"Nothing in here. Your trash bin is empty!" => "Intet at se her. Din papirkurv er tom!",
"Name" => "Navn",
"Restore" => "Gendan",
"Deleted" => "Slettet",
"Delete" => "Slet",
"Deleted Files" => "Slettede filer"
"Delete" => "Slet"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "gelöscht",
"Delete" => "Löschen",
"Deleted Files" => "Gelöschte Dateien"
"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "Gelöscht",
"Delete" => "Löschen",
"Deleted Files" => "Gelöschte Dateien"
"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "Gelöscht",
"Delete" => "Löschen",
"Deleted Files" => "Gelöschte Dateien"
"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Αδυναμία επαναφοράς %s",
"Deleted files" => "Διαγραμμένα αρχεία",
"Error" => "Σφάλμα",
"Deleted Files" => "Διαγραμμένα Αρχεία",
"restored" => "επαναφέρθηκαν",
"Nothing in here. Your trash bin is empty!" => "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
"Name" => "Όνομα",
"Restore" => "Επαναφορά",
"Deleted" => "Διαγραμμένα",
"Delete" => "Διαγραφή",
"Deleted Files" => "Διαγραμμένα Αρχεία"
"Delete" => "Διαγραφή"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Couldn't restore %s",
"Deleted files" => "Deleted files",
"Error" => "Error",
"Deleted Files" => "Deleted Files",
"restored" => "restored",
"Nothing in here. Your trash bin is empty!" => "Nothing in here. Your recycle bin is empty!",
"Name" => "Name",
"Restore" => "Restore",
"Deleted" => "Deleted",
"Delete" => "Delete",
"Deleted Files" => "Deleted Files"
"Delete" => "Delete"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ne povis restaŭriĝi %s",
"Deleted files" => "Forigitaj dosieroj",
"Error" => "Eraro",
"Deleted Files" => "Forigitaj dosieroj",
"restored" => "restaŭrita",
"Nothing in here. Your trash bin is empty!" => "Nenio estas ĉi tie. Via rubujo malplenas!",
"Name" => "Nomo",
"Restore" => "Restaŭri",
"Deleted" => "Forigita",
"Delete" => "Forigi",
"Deleted Files" => "Forigitaj dosieroj"
"Delete" => "Forigi"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se puede restaurar %s",
"Deleted files" => "Archivos eliminados",
"Error" => "Error",
"Deleted Files" => "Archivos Eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Eliminado",
"Delete" => "Eliminar",
"Deleted Files" => "Archivos Eliminados"
"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se pudo restaurar %s",
"Deleted files" => "Archivos borrados",
"Error" => "Error",
"Deleted Files" => "Archivos eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada acá. ¡La papelera está vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Borrado",
"Delete" => "Borrar",
"Deleted Files" => "Archivos eliminados"
"Delete" => "Borrar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se puede restaurar %s",
"Deleted files" => "Archivos eliminados",
"Error" => "Error",
"Deleted Files" => "Archivos Eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Eliminado",
"Delete" => "Eliminar",
"Deleted Files" => "Archivos Eliminados"
"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s ei saa taastada",
"Deleted files" => "Kustutatud failid",
"Error" => "Viga",
"Deleted Files" => "Kustutatud failid",
"restored" => "taastatud",
"Nothing in here. Your trash bin is empty!" => "Siin pole midagi. Sinu prügikast on tühi!",
"Name" => "Nimi",
"Restore" => "Taasta",
"Deleted" => "Kustutatud",
"Delete" => "Kustuta",
"Deleted Files" => "Kustutatud failid"
"Delete" => "Kustuta"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ezin izan da %s berreskuratu",
"Deleted files" => "Ezabatutako fitxategiak",
"Error" => "Errorea",
"Deleted Files" => "Ezabatutako Fitxategiak",
"restored" => "Berrezarrita",
"Nothing in here. Your trash bin is empty!" => "Ez dago ezer ez. Zure zakarrontzia hutsik dago!",
"Name" => "Izena",
"Restore" => "Berrezarri",
"Deleted" => "Ezabatuta",
"Delete" => "Ezabatu",
"Deleted Files" => "Ezabatutako Fitxategiak"
"Delete" => "Ezabatu"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s را نمی توان بازگرداند",
"Deleted files" => "فایل های حذف شده",
"Error" => "خطا",
"Deleted Files" => "فایلهای حذف شده",
"Nothing in here. Your trash bin is empty!" => "هیچ چیزی اینجا نیست. سطل زباله ی شما خالی است.",
"Name" => "نام",
"Restore" => "بازیابی",
"Deleted" => "حذف شده",
"Delete" => "حذف",
"Deleted Files" => "فایلهای حذف شده"
"Delete" => "حذف"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kohteen %s palautus epäonnistui",
"Deleted files" => "Poistetut tiedostot",
"Error" => "Virhe",
"Deleted Files" => "Poistetut tiedostot",
"restored" => "palautettu",
"Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.",
"Name" => "Nimi",
"Restore" => "Palauta",
"Deleted" => "Poistettu",
"Delete" => "Poista",
"Deleted Files" => "Poistetut tiedostot"
"Delete" => "Poista"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Impossible de restaurer %s",
"Deleted files" => "Fichiers supprimés",
"Error" => "Erreur",
"Deleted Files" => "Fichiers effacés",
"restored" => "restauré",
"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
"Name" => "Nom",
"Restore" => "Restaurer",
"Deleted" => "Effacé",
"Delete" => "Supprimer",
"Deleted Files" => "Fichiers effacés"
"Delete" => "Supprimer"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Non foi posíbel restaurar %s",
"Deleted files" => "Ficheiros eliminados",
"Error" => "Erro",
"Deleted Files" => "Ficheiros eliminados",
"restored" => "restaurado",
"Nothing in here. Your trash bin is empty!" => "Aquí non hai nada. O cesto do lixo está baleiro!",
"Name" => "Nome",
"Restore" => "Restablecer",
"Deleted" => "Eliminado",
"Delete" => "Eliminar",
"Deleted Files" => "Ficheiros eliminados"
"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "לא ניתן לשחזר את %s",
"Deleted files" => "קבצים שנמחקו",
"Error" => "שגיאה",
"Deleted Files" => "קבצים שנמחקו",
"restored" => "שוחזר",
"Nothing in here. Your trash bin is empty!" => "אין כאן שום דבר. סל המיחזור שלך ריק!",
"Name" => "שם",
"Restore" => "שחזור",
"Deleted" => "נמחק",
"Delete" => "מחיקה",
"Deleted Files" => "קבצים שנמחקו"
"Delete" => "מחיקה"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nem sikerült %s visszaállítása",
"Deleted files" => "Törölt fájlok",
"Error" => "Hiba",
"Deleted Files" => "Törölt fájlok",
"restored" => "visszaállítva",
"Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!",
"Name" => "Név",
"Restore" => "Visszaállítás",
"Deleted" => "Törölve",
"Delete" => "Törlés",
"Deleted Files" => "Törölt fájlok"
"Delete" => "Törlés"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
"Deleted files" => "Berkas yang dihapus",
"Error" => "Galat",
"Deleted Files" => "Berkas yang Dihapus",
"Nothing in here. Your trash bin is empty!" => "Tempat sampah anda kosong!",
"Name" => "Nama",
"Restore" => "Pulihkan",
"Deleted" => "Dihapus",
"Delete" => "Hapus",
"Deleted Files" => "Berkas yang Dihapus"
"Delete" => "Hapus"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Impossibile ripristinare %s",
"Deleted files" => "File eliminati",
"Error" => "Errore",
"Deleted Files" => "File eliminati",
"restored" => "ripristinati",
"Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.",
"Name" => "Nome",
"Restore" => "Ripristina",
"Deleted" => "Eliminati",
"Delete" => "Elimina",
"Deleted Files" => "File eliminati"
"Delete" => "Elimina"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s を復元できませんでした",
"Deleted files" => "ゴミ箱",
"Error" => "エラー",
"Deleted Files" => "ゴミ箱",
"restored" => "復元済",
"Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!",
"Name" => "名前",
"Restore" => "復元",
"Deleted" => "削除済み",
"Delete" => "削除",
"Deleted Files" => "ゴミ箱"
"Delete" => "削除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%sის აღდგენა ვერ მოხერხდა",
"Deleted files" => "წაშლილი ფაილები",
"Error" => "შეცდომა",
"Deleted Files" => "წაშლილი ფაილები",
"Nothing in here. Your trash bin is empty!" => "აქ არაფერი არ არის. სანაგვე ყუთი ცარიელია!",
"Name" => "სახელი",
"Restore" => "აღდგენა",
"Deleted" => "წაშლილი",
"Delete" => "წაშლა",
"Deleted Files" => "წაშლილი ფაილები"
"Delete" => "წაშლა"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s을(를) 복원할 수 없습니다",
"Deleted files" => "삭제된 파일",
"Error" => "오류",
"Deleted Files" => "삭제된 파일",
"restored" => "복원됨",
"Nothing in here. Your trash bin is empty!" => "휴지통이 비어 있습니다!",
"Name" => "이름",
"Restore" => "복원",
"Deleted" => "삭제됨",
"Delete" => "삭제",
"Deleted Files" => "삭제된 파일"
"Delete" => "삭제"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nepavyko atkurti %s",
"Deleted files" => "Ištrinti failai",
"Error" => "Klaida",
"Deleted Files" => "Ištrinti failai",
"restored" => "atstatyta",
"Nothing in here. Your trash bin is empty!" => "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
"Name" => "Pavadinimas",
"Restore" => "Atstatyti",
"Deleted" => "Ištrinti",
"Delete" => "Ištrinti",
"Deleted Files" => "Ištrinti failai"
"Delete" => "Ištrinti"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nevarēja atjaunot %s",
"Deleted files" => "Dzēstās datnes",
"Error" => "Kļūda",
"Deleted Files" => "Dzēstās datnes",
"restored" => "atjaunots",
"Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!",
"Name" => "Nosaukums",
"Restore" => "Atjaunot",
"Deleted" => "Dzēsts",
"Delete" => "Dzēst",
"Deleted Files" => "Dzēstās datnes"
"Delete" => "Dzēst"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Не можеше да се поврати %s",
"Deleted files" => "Избришани датотеки",
"Error" => "Грешка",
"Deleted Files" => "Избришани датотеки",
"restored" => "повратени",
"Nothing in here. Your trash bin is empty!" => "Тука нема ништо. Вашата корпа за отпадоци е празна!",
"Name" => "Име",
"Restore" => "Поврати",
"Deleted" => "Избришан",
"Delete" => "Избриши",
"Deleted Files" => "Избришани датотеки"
"Delete" => "Избриши"
);
$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";

View File

@ -3,12 +3,12 @@ $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Tidak dapat menghapuskan %s secara kekal",
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
"Error" => "Ralat",
"Deleted Files" => "Fail Dihapus",
"restored" => "dipulihkan",
"Nothing in here. Your trash bin is empty!" => "Tiada apa disini. Tong sampah anda kosong!",
"Name" => "Nama",
"Restore" => "Pulihkan",
"Deleted" => "Dihapuskan",
"Delete" => "Padam",
"Deleted Files" => "Fail Dihapus"
"Delete" => "Padam"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunne ikke gjenopprette %s",
"Deleted files" => "Slettede filer",
"Error" => "Feil",
"Deleted Files" => "Slettede filer",
"restored" => "gjenopprettet",
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Søppelkassen din er tom!",
"Name" => "Navn",
"Restore" => "Gjenopprett",
"Deleted" => "Slettet",
"Delete" => "Slett",
"Deleted Files" => "Slettede filer"
"Delete" => "Slett"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kon %s niet herstellen",
"Deleted files" => "Verwijderde bestanden",
"Error" => "Fout",
"Deleted Files" => "Verwijderde bestanden",
"restored" => "hersteld",
"Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!",
"Name" => "Naam",
"Restore" => "Herstellen",
"Deleted" => "Verwijderd",
"Delete" => "Verwijder",
"Deleted Files" => "Verwijderde bestanden"
"Delete" => "Verwijder"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Klarte ikkje gjenoppretta %s",
"Deleted files" => "Sletta filer",
"Error" => "Feil",
"Deleted Files" => "Sletta filer",
"restored" => "gjenoppretta",
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Papirkorga di er tom!",
"Name" => "Namn",
"Restore" => "Gjenopprett",
"Deleted" => "Sletta",
"Delete" => "Slett",
"Deleted Files" => "Sletta filer"
"Delete" => "Slett"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nie można przywrócić %s",
"Deleted files" => "Pliki usunięte",
"Error" => "Błąd",
"Deleted Files" => "Usunięte pliki",
"restored" => "przywrócony",
"Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!",
"Name" => "Nazwa",
"Restore" => "Przywróć",
"Deleted" => "Usunięte",
"Delete" => "Usuń",
"Deleted Files" => "Usunięte pliki"
"Delete" => "Usuń"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Não foi possível restaurar %s",
"Deleted files" => "Arquivos apagados",
"Error" => "Erro",
"Deleted Files" => "Arquivos Apagados",
"restored" => "restaurado",
"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!",
"Name" => "Nome",
"Restore" => "Restaurar",
"Deleted" => "Excluído",
"Delete" => "Excluir",
"Deleted Files" => "Arquivos Apagados"
"Delete" => "Excluir"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Não foi possível restaurar %s",
"Deleted files" => "Ficheiros eliminados",
"Error" => "Erro",
"Deleted Files" => "Ficheiros Apagados",
"restored" => "Restaurado",
"Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!",
"Name" => "Nome",
"Restore" => "Restaurar",
"Deleted" => "Apagado",
"Delete" => "Eliminar",
"Deleted Files" => "Ficheiros Apagados"
"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s не может быть восстановлен",
"Deleted files" => "Удалённые файлы",
"Error" => "Ошибка",
"Deleted Files" => "Удаленные файлы",
"restored" => "восстановлен",
"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!",
"Name" => "Имя",
"Restore" => "Восстановить",
"Deleted" => "Удалён",
"Delete" => "Удалить",
"Deleted Files" => "Удаленные файлы"
"Delete" => "Удалить"
);
$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);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nemožno obnoviť %s",
"Deleted files" => "Zmazané súbory",
"Error" => "Chyba",
"Deleted Files" => "Zmazané súbory",
"restored" => "obnovené",
"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!",
"Name" => "Názov",
"Restore" => "Obnoviť",
"Deleted" => "Zmazané",
"Delete" => "Zmazať",
"Deleted Files" => "Zmazané súbory"
"Delete" => "Zmazať"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ni mogoče obnoviti %s",
"Deleted files" => "Izbrisane datoteke",
"Error" => "Napaka",
"Deleted Files" => "Izbrisane datoteke",
"restored" => "obnovljeno",
"Nothing in here. Your trash bin is empty!" => "Mapa smeti je prazna.",
"Name" => "Ime",
"Restore" => "Obnovi",
"Deleted" => "Izbrisano",
"Delete" => "Izbriši",
"Deleted Files" => "Izbrisane datoteke"
"Delete" => "Izbriši"
);
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nuk munda ta rivendos %s",
"Deleted files" => "Skedarë të fshirë ",
"Error" => "Veprim i gabuar",
"Deleted Files" => "Skedarë të eliminuar",
"restored" => "rivendosur",
"Nothing in here. Your trash bin is empty!" => "Këtu nuk ka asgjë. Koshi juaj është bosh!",
"Name" => "Emri",
"Restore" => "Rivendos",
"Deleted" => "Eliminuar",
"Delete" => "Elimino",
"Deleted Files" => "Skedarë të eliminuar"
"Delete" => "Elimino"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunde inte återställa %s",
"Deleted files" => "Raderade filer",
"Error" => "Fel",
"Deleted Files" => "Raderade filer",
"restored" => "återställd",
"Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!",
"Name" => "Namn",
"Restore" => "Återskapa",
"Deleted" => "Raderad",
"Delete" => "Radera",
"Deleted Files" => "Raderade filer"
"Delete" => "Radera"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -1,11 +1,11 @@
<?php
$TRANSLATIONS = array(
"Error" => "ข้อผิดพลาด",
"Deleted Files" => "ไฟล์ที่ลบทิ้ง",
"Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่",
"Name" => "ชื่อ",
"Restore" => "คืนค่า",
"Deleted" => "ลบแล้ว",
"Delete" => "ลบ",
"Deleted Files" => "ไฟล์ที่ลบทิ้ง"
"Delete" => "ลบ"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Неможливо відновити %s",
"Deleted files" => "Видалено файлів",
"Error" => "Помилка",
"Deleted Files" => "Видалено Файлів",
"restored" => "відновлено",
"Nothing in here. Your trash bin is empty!" => "Нічого немає. Ваший кошик для сміття пустий!",
"Name" => "Ім'я",
"Restore" => "Відновити",
"Deleted" => "Видалено",
"Delete" => "Видалити",
"Deleted Files" => "Видалено Файлів"
"Delete" => "Видалити"
);
$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);";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Không thể khôi phục %s",
"Deleted files" => "File đã bị xóa",
"Error" => "Lỗi",
"Deleted Files" => "File đã xóa",
"restored" => "khôi phục",
"Nothing in here. Your trash bin is empty!" => "Không có gì ở đây. Thùng rác của bạn rỗng!",
"Name" => "Tên",
"Restore" => "Khôi phục",
"Deleted" => "Đã xóa",
"Delete" => "Xóa",
"Deleted Files" => "File đã xóa"
"Delete" => "Xóa"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "无法恢复%s",
"Deleted files" => "已删除文件",
"Error" => "错误",
"Deleted Files" => "已删除文件",
"restored" => "已恢复",
"Nothing in here. Your trash bin is empty!" => "这里没有东西. 你的回收站是空的!",
"Name" => "名称",
"Restore" => "恢复",
"Deleted" => "已删除",
"Delete" => "删除",
"Deleted Files" => "已删除文件"
"Delete" => "删除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "無法還原 %s",
"Deleted files" => "回收桶",
"Error" => "錯誤",
"Deleted Files" => "已刪除的檔案",
"restored" => "已還原",
"Nothing in here. Your trash bin is empty!" => "您的回收桶是空的!",
"Name" => "名稱",
"Restore" => "還原",
"Deleted" => "已刪除",
"Delete" => "刪除",
"Deleted Files" => "已刪除的檔案"
"Delete" => "刪除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -824,13 +824,15 @@ class Trashbin {
$matches = glob($escapedVersionsName . '*');
}
foreach ($matches as $ma) {
if ($timestamp) {
$parts = explode('.v', substr($ma, 0, $offset));
$versions[] = (end($parts));
} else {
$parts = explode('.v', $ma);
$versions[] = (end($parts));
if (is_array($matches)) {
foreach ($matches as $ma) {
if ($timestamp) {
$parts = explode('.v', substr($ma, 0, $offset));
$versions[] = (end($parts));
} else {
$parts = explode('.v', $ma);
$versions[] = (end($parts));
}
}
}
return $versions;
@ -921,13 +923,11 @@ class Trashbin {
public static function isEmpty($user) {
$view = new \OC\Files\View('/' . $user . '/files_trashbin');
$dh = $view->opendir('/files');
if (!$dh) {
return false;
}
while ($file = readdir($dh)) {
if ($file !== '.' and $file !== '..') {
return false;
if ($view->is_dir('/files') && $dh = $view->opendir('/files')) {
while ($file = readdir($dh)) {
if ($file !== '.' and $file !== '..') {
return false;
}
}
}
return true;

View File

@ -1,6 +1,8 @@
<?php
$TRANSLATIONS = array(
"Could not revert: %s" => "Nun pudo revertise: %s",
"Versions" => "Versiones",
"Failed to revert {file} to revision {timestamp}." => "Fallu al revertir {file} a la revisión {timestamp}.",
"More versions..." => "Más versiones...",
"No other versions available" => "Nun hai otres versiones disponibles",
"Restore" => "Restaurar"

View File

@ -88,6 +88,10 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
return $isInGroup;
}
/**
* @param string $dnGroup
* @param array|null &$seen
*/
private function _groupMembers($dnGroup, &$seen = null) {
if ($seen === null) {
$seen = array();
@ -163,6 +167,10 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
return $groups;
}
/**
* @param string $dn
* @param array|null &$seen
*/
private function getGroupsByMember($dn, &$seen = null) {
if ($seen === null) {
$seen = array();
@ -454,6 +462,9 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
return $allGroups;
}
/**
* @param string $group
*/
public function groupMatchesFilter($group) {
return (strripos($group, $this->groupSearch) !== false);
}

View File

@ -1,11 +1,41 @@
<?php
$TRANSLATIONS = array(
"The configuration is invalid. Please have a look at the logs for further details." => "La configuración nun ye válida. Por favor, écha-y un güeyu a los rexistros pa más detalles.",
"No action specified" => "Nun s'especificó l'aición",
"No configuration specified" => "Nun s'especificó la configuración",
"No data specified" => "Nun s'especificaron los datos",
" Could not set configuration %s" => "Nun pudo afitase la configuración %s",
"Deletion failed" => "Falló'l borráu",
"Keep settings?" => "¿Caltener los axustes?",
"Cannot add server configuration" => "Nun pue amestase la configuración del sirvidor",
"Success" => "Con ésitu",
"Error" => "Fallu",
"_%s group found_::_%s groups found_" => array("",""),
"_%s user found_::_%s users found_" => array("",""),
"Configuration incorrect" => "Configuración incorreuta",
"Configuration incomplete" => "Configuración incompleta",
"Select groups" => "Esbillar grupos",
"Select attributes" => "Esbillar atributos",
"_%s group found_::_%s groups found_" => array("%s grupu alcontráu","%s grupos alcontraos"),
"_%s user found_::_%s users found_" => array("%s usuariu alcontráu","%s usuarios alcontraos"),
"Could not find the desired feature" => "Nun pudo alcontrase la carauterística deseyada",
"Save" => "Guardar",
"groups found" => "grupos alcontraos",
"Users login with this attribute:" => "Aniciu de sesión d'usuarios con esti atributu:",
"LDAP Username:" => "Nome d'usuariu LDAP",
"Other Attributes:" => "Otros atributos:",
"Add Server Configuration" => "Amestar configuración del sirvidor",
"Host" => "Equipu",
"Port" => "Puertu",
"Password" => "Contraseña",
"Continue" => "Continuar"
"For anonymous access, leave DN and Password empty." => "Pa un accesu anónimu, dexar el DN y la contraseña baleros.",
"users found" => "usuarios alcontraos",
"Continue" => "Continuar",
"Connection Settings" => "Axustes de conexón",
"Configuration Active" => "Configuración activa",
"When unchecked, this configuration will be skipped." => "Cuando nun tea conseñáu, saltaráse esta configuración.",
"Disable Main Server" => "Deshabilitar sirvidor principal",
"Turn off SSL certificate validation." => "Apagar la validación del certificáu SSL.",
"Directory Settings" => "Axustes del direutoriu",
"in bytes" => "en bytes",
"Internal Username" => "Nome d'usuariu internu"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -70,6 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Port de la còpia de seguretat (rèplica)",
"Disable Main Server" => "Desactiva el servidor principal",
"Only connect to the replica server." => "Connecta només al servidor rèplica.",
"Case insensitive LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
"Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.",
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.",
"Cache Time-To-Live" => "Memòria de cau Time-To-Live",
@ -89,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Associació membres-grup",
"Nested Groups" => "Grups imbricats",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Quan està activat, els grups que contenen grups estan permesos. (Només funciona si l'atribut del grup membre conté DNs.)",
"Paging chunksize" => "Mida de la pàgina",
"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Mida usada per cerques LDAP paginades que podrien retornar respostes de volcat com enumeració d'usuari o grup. (Establint-ho a 0 desactiva les cerques LDAP paginades en aquestes situacions.)",
"Special Attributes" => "Atributs especials",
"Quota Field" => "Camp de quota",
"Quota Default" => "Quota per defecte",

View File

@ -659,7 +659,7 @@ class Access extends LDAPUtility {
* @param string $filter
*/
public function countUsers($filter, $attr = array('dn'), $limit = null, $offset = null) {
return $this->count($filter, $this->connection->ldapBaseGroups, $attr, $limit, $offset);
return $this->count($filter, $this->connection->ldapBaseUsers, $attr, $limit, $offset);
}
/**
@ -775,22 +775,47 @@ class Access extends LDAPUtility {
*/
private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
\OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG);
$search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
if($search === false) {
return false;
}
list($sr, $pagedSearchOK) = $search;
$cr = $this->connection->getConnectionResource();
$counter = 0;
foreach($sr as $key => $res) {
$count = $this->ldap->countEntries($cr, $res);
if($count !== false) {
$counter += $count;
}
if(is_null($limit)) {
$limit = $this->connection->ldapPagingSize;
}
$this->processPagedSearchStatus($sr, $filter, $base, $counter, $limit,
$counter = 0;
$count = null;
$cr = $this->connection->getConnectionResource();
do {
$continue = false;
$search = $this->executeSearch($filter, $base, $attr,
$limit, $offset);
if($search === false) {
return $counter > 0 ? $counter : false;
}
list($sr, $pagedSearchOK) = $search;
$count = $this->countEntriesInSearchResults($sr, $limit, $continue);
$counter += $count;
$this->processPagedSearchStatus($sr, $filter, $base, $count, $limit,
$offset, $pagedSearchOK, $skipHandling);
$offset += $limit;
} while($continue);
return $counter;
}
private function countEntriesInSearchResults($searchResults, $limit,
&$hasHitLimit) {
$cr = $this->connection->getConnectionResource();
$count = 0;
foreach($searchResults as $res) {
$count = intval($this->ldap->countEntries($cr, $res));
$counter += $count;
if($count === $limit) {
$hasHitLimit = true;
}
}
return $counter;
}
@ -891,7 +916,7 @@ class Access extends LDAPUtility {
//we slice the findings, when
//a) paged search insuccessful, though attempted
//b) no paged search, but limit set
if((!$this->pagedSearchedSuccessful
if((!$this->getPagedSearchResultState()
&& $pagedSearchOK)
|| (
!$pagedSearchOK
@ -923,8 +948,8 @@ class Access extends LDAPUtility {
/**
* @brief escapes (user provided) parts for LDAP filter
* @param String $input, the provided value
* @returns the escaped string
* @param string $input, the provided value
* @return the escaped string
*/
public function escapeFilterPart($input) {
$search = array('*', '\\', '(', ')');
@ -1184,7 +1209,7 @@ class Access extends LDAPUtility {
}
$offset -= $limit;
//we work with cache here
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . $limit . '-' . $offset;
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . intval($limit) . '-' . intval($offset);
$cookie = '';
if(isset($this->cookies[$cachekey])) {
$cookie = $this->cookies[$cachekey];
@ -1206,7 +1231,7 @@ class Access extends LDAPUtility {
*/
private function setPagedResultCookie($base, $filter, $limit, $offset, $cookie) {
if(!empty($cookie)) {
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .$limit . '-' . $offset;
$cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .intval($limit) . '-' . intval($offset);
$this->cookies[$cachekey] = $cookie;
}
}

View File

@ -134,6 +134,9 @@ class Connection extends LDAPUtility {
return $this->ldapConnectionRes;
}
/**
* @param string|null $key
*/
private function getCacheKey($key) {
$prefix = 'LDAP-'.$this->configID.'-'.$this->configPrefix.'-';
if(is_null($key)) {

View File

@ -80,6 +80,9 @@ abstract class Proxy {
return $result;
}
/**
* @param string|null $key
*/
private function getCacheKey($key) {
$prefix = 'LDAP-Proxy-';
if(is_null($key)) {

View File

@ -485,7 +485,7 @@ class Wizard extends LDAPUtility {
/**
* @brief sets the found value for the configuration key in the WizardResult
* as well as in the Configuration instance
* @param $key the configuration key
* @param string $key the configuration key
* @param $value the (detected) value
* @return null
*
@ -1000,7 +1000,7 @@ class Wizard extends LDAPUtility {
/**
* @brief appends a list of values fr
* @param $result resource, the return value from ldap_get_attributes
* @param $attribute string, the attribute values to look for
* @param string $attribute the attribute values to look for
* @param &$known array, new values will be appended here
* @return int, state on of the class constants LRESULT_PROCESSED_OK,
* LRESULT_PROCESSED_INVALID or LRESULT_PROCESSED_SKIP

View File

@ -36,6 +36,10 @@ class WizardResult {
$this->markedChange = true;
}
/**
* @param string $key
* @param array|string $values
*/
public function addOptions($key, $values) {
if(!is_array($values)) {
$values = array($values);

View File

@ -37,7 +37,7 @@
<p><label for="ldap_attributes_for_group_search"><?php p($l->t('Group Search Attributes'));?></label><textarea id="ldap_attributes_for_group_search" name="ldap_attributes_for_group_search" placeholder="<?php p($l->t('Optional; one attribute per line'));?>" data-default="<?php p($_['ldap_attributes_for_group_search_default']); ?>" title="<?php p($l->t('Group Search Attributes'));?>"></textarea></p>
<p><label for="ldap_group_member_assoc_attribute"><?php p($l->t('Group-Member association'));?></label><select id="ldap_group_member_assoc_attribute" name="ldap_group_member_assoc_attribute" data-default="<?php p($_['ldap_group_member_assoc_attribute_default']); ?>" ><option value="uniqueMember"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'uniqueMember')) p(' selected'); ?>>uniqueMember</option><option value="memberUid"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'memberUid')) p(' selected'); ?>>memberUid</option><option value="member"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] === 'member')) p(' selected'); ?>>member (AD)</option></select></p>
<p><label for="ldap_nested_groups"><?php p($l->t('Nested Groups'));?></label><input type="checkbox" id="ldap_nested_groups" name="ldap_nested_groups" value="1" data-default="<?php p($_['ldap_nested_groups_default']); ?>" title="<?php p($l->t('When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)'));?>" /></p>
<p><label for="ldap_paging_size"><?php p($l->t('Paging chunksize'));?></label><input type="number" id="ldap_paging_size" name="ldap_paging_size" title="<?php p($l->t('Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)'));?>" data-default="<?php p($_['ldap_paging_size']); ?>" /></p>
<p><label for="ldap_paging_size"><?php p($l->t('Paging chunksize'));?></label><input type="number" id="ldap_paging_size" name="ldap_paging_size" title="<?php p($l->t('Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)'));?>" data-default="<?php p($_['ldap_paging_size_default']); ?>" /></p>
</div>
<h3><?php p($l->t('Special Attributes'));?></h3>
<div>

View File

@ -7,6 +7,11 @@
background-position: right 26px;
padding-right: 16px !important;
}
/* do not show menu toggle on public share links as there is no menu */
#body-public #owncloud.menutoggle {
background-image: none;
padding-right: 0 !important;
}
/* compress search box on mobile, expand when focused */
.searchbox input[type="search"] {
@ -103,4 +108,12 @@
}
/* fix error display on smaller screens */
.error-wide {
width: 100%;
margin-left: 0 !important;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}

View File

@ -12,13 +12,30 @@ table, td, th { vertical-align:middle; }
a { border:0; color:#000; text-decoration:none;}
a, a *, input, input *, select, .button span, label { cursor:pointer; }
ul { list-style:none; }
body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif; color:#000; }
body {
background: #fefefe;
font: normal .8em/1.6em "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;
color: #000;
height: auto;
}
/* HEADERS */
#body-user #header, #body-settings #header {
position:fixed; top:0; left:0; right:0; z-index:100; height:45px; line-height:2.5em;
background:#1d2d44 url('../img/noise.png') repeat;
#body-user #header,
#body-settings #header,
#body-public #header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
height: 45px;
line-height: 2.5em;
background: #1d2d44 url('../img/noise.png') repeat;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#body-login {
@ -33,9 +50,34 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d44',GradientType=0 ); /* IE6-9 */
}
#owncloud { position:absolute; top:0; left:0; padding:6px; padding-bottom:0; }
.header-right { float:right; vertical-align:middle; padding:0.5em; }
.header-right > * { vertical-align:middle; }
#owncloud {
position: absolute;
top: 0;
left: 0;
padding: 6px;
padding-bottom: 0;
}
/* info part on the right, used e.g. for info on who shared something */
.header-right {
position: absolute;
right: 0;
padding-right: 10px;
color: #fff;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
opacity: .5;
height: 100%;
max-width: 40%;
white-space: nowrap;
}
.header-right #details {
display: inline-block;
margin-top: 6px;
width: 100%;
text-overflow: ellipsis;
overflow: hidden;
}
/* Profile picture in header */
#header .avatardiv {
@ -406,14 +448,29 @@ input[type="submit"].enabled {
}
/* Icons for username and password fields to better recognize them */
#adminlogin, #adminpass, #user, #password { width:11.7em!important; padding-left:1.8em; }
#adminlogin+label+img, #adminpass-icon, #user+label+img, #password-icon {
position:absolute; left:1.25em; top:1.65em;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3;
#adminlogin,
#adminpass,
input[name='adminpass-clone'],
#user,
#password,
input[name='password-clone'] {
width: 223px !important;
padding-left: 36px !important;
}
#adminlogin+label+img,
#adminpass-icon,
#user+label+img,
#password-icon {
position: absolute;
left: 1.25em;
top: 1.65em;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: .3;
}
#adminpass-icon, #password-icon {
top: 1.1em;
}
#adminpass-icon, #password-icon { top:1.1em; }
input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; }
input[name="adminpass-clone"] { padding-left:1.8em; width:11.7em !important; }
/* General new input field look */
#body-login input[type="text"],
@ -452,15 +509,22 @@ input[name="adminpass-clone"] { padding-left:1.8em; width:11.7em !important; }
p.infield { position:relative; }
label.infield { cursor:text !important; top:1.05em; left:.85em; }
#body-login form label.infield { /* labels are ellipsized when too long, keep them short */
position:absolute; width:90%; padding-left:1.4em;
font-size:19px; color:#aaa;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
position: absolute;
width: 82%;
margin-left: 26px;
font-size: 19px;
color: #aaa;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#body-login #databaseField .infield {
margin-left: 0;
}
#body-login #databaseField .infield { padding-left:0; }
#body-login form input[type="checkbox"]+label {
position: relative;
margin: 0;
font-size: 1em;
font-size: 13px;
padding: 14px;
padding-left: 28px;
margin-left: -28px;
@ -586,8 +650,8 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
}
.error-wide {
width: 800px;
margin-left: -250px;
width: 700px;
margin-left: -200px !important;
}
/* Fixes for log in page, TODO should be removed some time */
@ -614,11 +678,13 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
/* Log in and install button */
#body-login input {
font-size: 1.5em;
font-size: 20px;
margin: 5px;
padding: 12px 10px 8px;
}
#body-login input[type="text"],
#body-login input[type="password"] {
width: 13em;
width: 249px;
}
#body-login input.login {
width: auto;
@ -628,7 +694,7 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
padding: 10px 20px; /* larger log in and installation buttons */
}
#remember_login {
margin: 18px 5px 0 18px;
margin: 24px 5px 0 16px !important;
vertical-align: text-bottom;
}

View File

@ -20,16 +20,16 @@
*/
/**
* wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events)
* Wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events)
* includes a fallback for older browsers and IE
*
* use server side events with causion, to many open requests can hang the server
* Use server side events with caution, too many open requests can hang the server
*/
/**
* create a new event source
* @param string src
* @param object data to be send as GET
* Create a new event source
* @param {string} src
* @param {object} [data] to be send as GET
*/
OC.EventSource=function(src,data){
var dataStr='';
@ -74,12 +74,12 @@ OC.EventSource=function(src,data){
this.close();
}
}.bind(this));
}
};
OC.EventSource.fallBackSources=[];
OC.EventSource.iframeCount=0;//number of fallback iframes
OC.EventSource.fallBackCallBack=function(id,type,data){
OC.EventSource.fallBackSources[id].fallBackCallBack(type,data);
}
};
OC.EventSource.prototype={
typelessListeners:[],
iframe:null,
@ -127,4 +127,4 @@ OC.EventSource.prototype={
this.source.close();
}
}
}
};

View File

@ -84,11 +84,11 @@ function initL10N(app) {
}
/**
* translate a string
* @param app the id of the app for which to translate the string
* @param text the string to translate
* @param vars (optional) FIXME
* @param count (optional) number to replace %n with
* @return string
* @param {string} app the id of the app for which to translate the string
* @param {string} text the string to translate
* @param [vars] FIXME
* @param {number} [count] number to replace %n with
* @return {string}
*/
function t(app, text, vars, count){
initL10N(app);
@ -119,12 +119,12 @@ t.plural_function = {};
/**
* translate a string
* @param app the id of the app for which to translate the string
* @param text_singular the string to translate for exactly one object
* @param text_plural the string to translate for n objects
* @param count number to determine whether to use singular or plural
* @param vars (optional) FIXME
* @return string
* @param {string} app the id of the app for which to translate the string
* @param {string} text_singular the string to translate for exactly one object
* @param {string} text_plural the string to translate for n objects
* @param {number} count number to determine whether to use singular or plural
* @param [vars] FIXME
* @return {string} Translated string
*/
function n(app, text_singular, text_plural, count, vars) {
initL10N(app);
@ -146,9 +146,9 @@ function n(app, text_singular, text_plural, count, vars) {
}
/**
* Sanitizes a HTML string
* @param s string
* @return Sanitized string
* Sanitizes a HTML string by replacing all potential dangerous characters with HTML entities
* @param {string} s String to sanitize
* @return {string} Sanitized string
*/
function escapeHTML(s) {
return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
@ -156,9 +156,9 @@ function escapeHTML(s) {
/**
* Get the path to download a file
* @param file The filename
* @param dir The directory the file is in - e.g. $('#dir').val()
* @return string
* @param {string} file The filename
* @param {string} dir The directory the file is in - e.g. $('#dir').val()
* @return {string} Path to download the file
* @deprecated use Files.getDownloadURL() instead
*/
function fileDownloadPath(dir, file) {
@ -176,32 +176,40 @@ var OC={
appswebroots:(typeof oc_appswebroots !== 'undefined') ? oc_appswebroots:false,
currentUser:(typeof oc_current_user!=='undefined')?oc_current_user:false,
coreApps:['', 'admin','log','search','settings','core','3rdparty'],
/**
* get an absolute url to a file in an appen
* @param app the id of the app the file belongs to
* @param file the file path relative to the app folder
* @return string
* Get an absolute url to a file in an app
* @param {string} app the id of the app the file belongs to
* @param {string} file the file path relative to the app folder
* @return {string} Absolute URL to a file
*/
linkTo:function(app,file){
return OC.filePath(app,'',file);
},
/**
* Creates an url for remote use
* @param string $service id
* @return string the url
*
* Returns a url to the given service.
* Creates a relative url for remote use
* @param {string} service id
* @return {string} the url
*/
linkToRemoteBase:function(service) {
return OC.webroot + '/remote.php/' + service;
},
/**
* @brief Creates an absolute url for remote use
* @param {string} service id
* @return {string} the url
*/
linkToRemote:function(service) {
return window.location.protocol + '//' + window.location.host + OC.linkToRemoteBase(service);
},
/**
* Generates the absolute url for the given relative url, which can contain parameters.
*
* @returns {string}
* @param {string} url
* @param params
* @return {string} Absolute URL for the given relative URL
*/
generateUrl: function(url, params) {
var _build = function (text, vars) {
@ -220,22 +228,11 @@ var OC={
},
/**
* @brief Creates an absolute url for remote use
* @param string $service id
* @param bool $add_slash
* @return string the url
*
* Returns a absolute url to the given service.
*/
linkToRemote:function(service) {
return window.location.protocol + '//' + window.location.host + OC.linkToRemoteBase(service);
},
/**
* get the absolute url for a file in an app
* @param app the id of the app
* @param type the type of the file to link to (e.g. css,img,ajax.template)
* @param file the filename
* @return string
* Get the absolute url for a file in an app
* @param {string} app the id of the app
* @param {string} type the type of the file to link to (e.g. css,img,ajax.template)
* @param {string} file the filename
* @return {string} Absolute URL for a file in an app
*/
filePath:function(app,type,file){
var isCore=OC.coreApps.indexOf(app)!==-1,
@ -279,19 +276,22 @@ var OC={
}
return link;
},
/**
* Redirect to the target URL, can also be used for downloads.
* @param {string} targetURL URL to redirect to
*/
redirect: function(targetUrl) {
window.location = targetUrl;
redirect: function(targetURL) {
window.location = targetURL;
},
/**
* get the absolute path to an image file
* @param app the app id to which the image belongs
* @param file the name of the image file
* @return string
*
* if no extension is given for the image, it will automatically decide between .png and .svg based on what the browser supports
* if no extension is given for the image, it will automatically decide
* between .png and .svg based on what the browser supports
* @param {string} app the app id to which the image belongs
* @param {string} file the name of the image file
* @return {string}
*/
imagePath:function(app,file){
if(file.indexOf('.')==-1){//if no extension is given, use png or svg depending on browser support
@ -299,13 +299,13 @@ var OC={
}
return OC.filePath(app,'img',file);
},
/**
* load a script for the server and load it
* @param app the app id to which the script belongs
* @param script the filename of the script
* @param ready event handeler to be called when the script is loaded
*
* if the script is already loaded, the event handeler will be called directly
* Load a script for the server and load it. If the script is already loaded,
* the event handler will be called directly
* @param {string} app the app id to which the script belongs
* @param {string} script the filename of the script
* @param ready event handler to be called when the script is loaded
*/
addScript:function(app,script,ready){
var deferred, path=OC.filePath(app,'js',script+'.js');
@ -324,9 +324,9 @@ var OC={
return OC.addScript.loaded[path];
},
/**
* load a css file and load it
* @param app the app id to which the css style belongs
* @param style the filename of the css file
* Loads a CSS file
* @param {string} app the app id to which the css style belongs
* @param {string} style the filename of the css file
*/
addStyle:function(app,style){
var path=OC.filePath(app,'css',style+'.css');
@ -340,15 +340,24 @@ var OC={
}
}
},
/**
* @todo Write the documentation
*/
basename: function(path) {
return path.replace(/\\/g,'/').replace( /.*\//, '' );
},
/**
* @todo Write the documentation
*/
dirname: function(path) {
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
},
/**
* do a search query and display the results
* @param query the search query
* Do a search query and display the results
* @param {string} query the search query
*/
search:function(query){
if(query){
@ -365,9 +374,10 @@ var OC={
var date = new Date(1000*mtime);
return date.getDate()+'.'+(date.getMonth()+1)+'.'+date.getFullYear()+', '+date.getHours()+':'+date.getMinutes();
},
/**
* Parses a URL query string into a JS map
* @param queryString query string in the format param1=1234&param2=abcde&param3=xyz
* @param {string} queryString query string in the format param1=1234&param2=abcde&param3=xyz
* @return map containing key/values matching the URL parameters
*/
parseQueryString:function(queryString){
@ -387,7 +397,7 @@ var OC={
parts = queryString.replace(/\+/g, '%20').split('&');
for (var i = 0; i < parts.length; i++){
// split on first equal sign
var part = parts[i]
var part = parts[i];
pos = part.indexOf('=');
if (pos >= 0) {
components = [
@ -421,7 +431,7 @@ var OC={
/**
* Builds a URL query from a JS map.
* @param params parameter map
* @return string containing a URL query (without question) mark
* @return {string} String containing a URL query (without question) mark
*/
buildQueryString: function(params) {
var s = '';
@ -447,11 +457,11 @@ var OC={
/**
* Opens a popup with the setting for an app.
* @param appid String. The ID of the app e.g. 'calendar', 'contacts' or 'files'.
* @param loadJS boolean or String. If true 'js/settings.js' is loaded. If it's a string
* @param {string} appid The ID of the app e.g. 'calendar', 'contacts' or 'files'.
* @param {boolean|string} loadJS If true 'js/settings.js' is loaded. If it's a string
* it will attempt to load a script by that name in the 'js' directory.
* @param cache boolean. If true the javascript file won't be forced refreshed. Defaults to true.
* @param scriptName String. The name of the PHP file to load. Defaults to 'settings.php' in
* @param {boolean} [cache] If true the javascript file won't be forced refreshed. Defaults to true.
* @param {string} [scriptName] The name of the PHP file to load. Defaults to 'settings.php' in
* the root of the app directory hierarchy.
*/
appSettings:function(args) {
@ -505,7 +515,10 @@ var OC={
}
},
// for menu toggling
/**
* For menu toggling
* @todo Write documentation
*/
registerMenu: function($toggle, $menuEl) {
$menuEl.addClass('menu');
$toggle.addClass('menutoggle');
@ -528,6 +541,9 @@ var OC={
});
},
/**
* @todo Write documentation
*/
unregisterMenu: function($toggle, $menuEl) {
// close menu if opened
if ($menuEl.is(OC._currentMenu)) {
@ -544,6 +560,7 @@ var OC={
*
* This is makes it possible for unit tests to
* stub matchMedia (which doesn't work in PhantomJS)
* @todo Write documentation
*/
_matchMedia: function(media) {
if (window.matchMedia) {
@ -552,6 +569,7 @@ var OC={
return false;
}
};
OC.search.customResults={};
OC.search.currentResult=-1;
OC.search.lastQuery='';
@ -559,13 +577,32 @@ OC.search.lastResults={};
OC.addStyle.loaded=[];
OC.addScript.loaded=[];
/**
* @todo Write documentation
*/
OC.msg={
/**
* @param selector
* @todo Write documentation
*/
startSaving:function(selector){
OC.msg.startAction(selector, t('core', 'Saving...'));
},
/**
* @param selector
* @param data
* @todo Write documentation
*/
finishedSaving:function(selector, data){
OC.msg.finishedAction(selector, data);
},
/**
* @param selector
* @param {string} message Message to display
* @todo WRite documentation
*/
startAction:function(selector, message){
$(selector)
.html( message )
@ -574,6 +611,12 @@ OC.msg={
.stop(true, true)
.show();
},
/**
* @param selector
* @param data
* @todo Write documentation
*/
finishedAction:function(selector, data){
if( data.status === "success" ){
$(selector).html( data.data.message )
@ -587,12 +630,26 @@ OC.msg={
}
};
/**
* @todo Write documentation
*/
OC.Notification={
queuedNotifications: [],
getDefaultNotificationFunction: null,
/**
* @param callback
* @todo Write documentation
*/
setDefault: function(callback) {
OC.Notification.getDefaultNotificationFunction = callback;
},
/**
* Hides a notification
* @param callback
* @todo Write documentation
*/
hide: function(callback) {
$('#notification').fadeOut('400', function(){
if (OC.Notification.isHidden()) {
@ -610,34 +667,62 @@ OC.Notification={
}
});
},
/**
* Shows a notification as HTML without being sanitized before.
* If you pass unsanitized user input this may lead to a XSS vulnerability.
* Consider using show() instead of showHTML()
* @param {string} html Message to display
*/
showHtml: function(html) {
if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
$('#notification').html(html);
$('#notification').fadeIn().css("display","inline");
var notification = $('#notification');
if((notification.filter('span.undo').length == 1) || OC.Notification.isHidden()){
notification.html(html);
notification.fadeIn().css("display","inline");
}else{
OC.Notification.queuedNotifications.push(html);
}
},
/**
* Shows a sanitized notification
* @param {string} text Message to display
*/
show: function(text) {
if(($('#notification').filter('span.undo').length == 1) || OC.Notification.isHidden()){
$('#notification').text(text);
$('#notification').fadeIn().css("display","inline");
var notification = $('#notification');
if((notification.filter('span.undo').length == 1) || OC.Notification.isHidden()){
notification.text(text);
notification.fadeIn().css("display","inline");
}else{
OC.Notification.queuedNotifications.push($('<div/>').text(text).html());
}
},
/**
* Returns whether a notification is hidden.
* @return {boolean}
*/
isHidden: function() {
return ($("#notification").text() === '');
}
};
/**
* @todo Write documentation
*/
OC.Breadcrumb={
container:null,
show:function(dir, leafname, leaflink){
/**
* @todo Write documentation
* @param dir
* @param leafName
* @param leafLink
*/
show:function(dir, leafName, leafLink){
if(!this.container){//default
this.container=$('#controls');
}
this._show(this.container, dir, leafname, leaflink);
this._show(this.container, dir, leafName, leafLink);
},
_show:function(container, dir, leafname, leaflink){
var self = this;
@ -678,6 +763,12 @@ OC.Breadcrumb={
this._push(container, leafname, leaflink);
}
},
/**
* @todo Write documentation
* @param {string} name
* @param {string} link
*/
push:function(name, link){
if(!this.container){//default
this.container=$('#controls');
@ -702,6 +793,10 @@ OC.Breadcrumb={
}
return crumb;
},
/**
* @todo Write documentation
*/
pop:function(){
if(!this.container){//default
this.container=$('#controls');
@ -709,6 +804,10 @@ OC.Breadcrumb={
this.container.find('div.crumb').last().remove();
this.container.find('div.crumb').last().addClass('last');
},
/**
* @todo Write documentation
*/
clear:function(){
if(!this.container){//default
this.container=$('#controls');
@ -721,21 +820,47 @@ OC.Breadcrumb={
};
if(typeof localStorage !=='undefined' && localStorage !== null){
//user and instance aware localstorage
/**
* User and instance aware localstorage
*/
OC.localStorage={
namespace:'oc_'+OC.currentUser+'_'+OC.webroot+'_',
/**
* Whether the storage contains items
* @param {string} name
* @return {boolean}
*/
hasItem:function(name){
return OC.localStorage.getItem(name)!==null;
},
/**
* Add an item to the storage
* @param {string} name
* @param {string} item
*/
setItem:function(name,item){
return localStorage.setItem(OC.localStorage.namespace+name,JSON.stringify(item));
},
/**
* Removes an item from the storage
* @param {string} name
* @param {string} item
*/
removeItem:function(name,item){
return localStorage.removeItem(OC.localStorage.namespace+name);
},
/**
* Get an item from the storage
* @param {string} name
* @return {null|string}
*/
getItem:function(name){
var item = localStorage.getItem(OC.localStorage.namespace+name);
if(item===null) {
if(item === null) {
return null;
} else if (typeof JSON === 'undefined') {
//fallback to jquery for IE6/7/8
@ -762,6 +887,7 @@ if(typeof localStorage !=='undefined' && localStorage !== null){
/**
* check if the browser support svg images
* @return {boolean}
*/
function SVGSupport() {
return SVGSupport.checkMimeType.correct && !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
@ -793,15 +919,18 @@ SVGSupport.checkMimeType=function(){
};
SVGSupport.checkMimeType.correct=true;
// replace all svg images with png for browser compatibility
// @deprecated use OC.Util.replaceSVG instead
/**
* Replace all svg images with png for browser compatibility
* @param $el
* @deprecated use OC.Util.replaceSVG instead
*/
function replaceSVG($el){
return OC.Util.replaceSVG($el);
}
/**
* prototypal inharitence functions
*
* prototypical inheritance functions
* @todo Write documentation
* usage:
* MySubObject=object(MyObject)
*/
@ -813,6 +942,7 @@ function object(o) {
/**
* Fills height of window. (more precise than height: 100%;)
* @param selector
*/
function fillHeight(selector) {
if (selector.length === 0) {
@ -828,6 +958,7 @@ function fillHeight(selector) {
/**
* Fills height and width of window. (more precise than height: 100%; or width: 100%;)
* @param selector
*/
function fillWindow(selector) {
if (selector.length === 0) {
@ -1055,6 +1186,11 @@ $.fn.filterAttr = function(attr_name, attr_value) {
return this.filter(function() { return $(this).attr(attr_name) === attr_value; });
};
/**
* Returns a human readable file size
* @param {number} size Size in bytes
* @return {string}
*/
function humanFileSize(size) {
var humanList = ['B', 'kB', 'MB', 'GB', 'TB'];
// Calculate Log with base 1024: size = 1024 ** order
@ -1072,6 +1208,11 @@ function humanFileSize(size) {
return relativeSize + ' ' + readableFormat;
}
/**
* Format an UNIX timestamp to a human understandable format
* @param {number} date UNIX timestamp
* @return {string} Human readable format
*/
function formatDate(date){
if(typeof date=='number'){
date=new Date(date);
@ -1079,7 +1220,13 @@ function formatDate(date){
return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes();
}
// taken from http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery
//
/**
* Get the value of a URL parameter
* @link http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery
* @param {string} name URL parameter
* @return {string}
*/
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]
@ -1087,33 +1234,34 @@ function getURLParameter(name) {
}
/**
* takes an absolute timestamp and return a string with a human-friendly relative date
* @param int a Unix timestamp
* Takes an absolute timestamp and return a string with a human-friendly relative date
* @param {number} timestamp A Unix timestamp
*/
function relative_modified_date(timestamp) {
var timediff = Math.round((new Date()).getTime() / 1000) - timestamp;
var diffminutes = Math.round(timediff/60);
var diffhours = Math.round(diffminutes/60);
var diffdays = Math.round(diffhours/24);
var diffmonths = Math.round(diffdays/31);
if(timediff < 60) { return t('core','seconds ago'); }
else if(timediff < 3600) { return n('core','%n minute ago', '%n minutes ago', diffminutes); }
else if(timediff < 86400) { return n('core', '%n hour ago', '%n hours ago', diffhours); }
else if(timediff < 86400) { return t('core','today'); }
else if(timediff < 172800) { return t('core','yesterday'); }
else if(timediff < 2678400) { return n('core', '%n day ago', '%n days ago', diffdays); }
else if(timediff < 5184000) { return t('core','last month'); }
else if(timediff < 31556926) { return n('core', '%n month ago', '%n months ago', diffmonths); }
//else if(timediff < 31556926) { return t('core','months ago'); }
else if(timediff < 63113852) { return t('core','last year'); }
var timeDiff = Math.round((new Date()).getTime() / 1000) - timestamp;
var diffMinutes = Math.round(timeDiff/60);
var diffHours = Math.round(diffMinutes/60);
var diffDays = Math.round(diffHours/24);
var diffMonths = Math.round(diffDays/31);
if(timeDiff < 60) { return t('core','seconds ago'); }
else if(timeDiff < 3600) { return n('core','%n minute ago', '%n minutes ago', diffMinutes); }
else if(timeDiff < 86400) { return n('core', '%n hour ago', '%n hours ago', diffHours); }
else if(timeDiff < 86400) { return t('core','today'); }
else if(timeDiff < 172800) { return t('core','yesterday'); }
else if(timeDiff < 2678400) { return n('core', '%n day ago', '%n days ago', diffDays); }
else if(timeDiff < 5184000) { return t('core','last month'); }
else if(timeDiff < 31556926) { return n('core', '%n month ago', '%n months ago', diffMonths); }
else if(timeDiff < 63113852) { return t('core','last year'); }
else { return t('core','years ago'); }
}
/**
* @todo Write documentation
*/
OC.Util = {
/**
* Returns whether the browser supports SVG
*
* @return true if the browser supports SVG, false otherwise
* @return {boolean} true if the browser supports SVG, false otherwise
*/
// TODO: replace with original function
hasSVGSupport: SVGSupport,
@ -1121,10 +1269,8 @@ OC.Util = {
* If SVG is not supported, replaces the given icon's extension
* from ".svg" to ".png".
* If SVG is supported, return the image path as is.
*
* @param file image path with svg extension
* @return fixed image path with png extension if SVG is not
* supported
* @param {string} file image path with svg extension
* @return {string} fixed image path with png extension if SVG is not supported
*/
replaceSVGIcon: function(file) {
if (!OC.Util.hasSVGSupport()) {
@ -1176,8 +1322,9 @@ OC.Util = {
};
/**
* get a variable by name
* @param string name
* Get a variable by name
* @param {string} name
* @return {*}
*/
OC.get=function(name) {
var namespaces = name.split(".");
@ -1194,9 +1341,9 @@ OC.get=function(name) {
};
/**
* set a variable by name
* @param string name
* @param mixed value
* Set a variable by name
* @param {string} name
* @param {*} value
*/
OC.set=function(name, value) {
var namespaces = name.split(".");
@ -1252,4 +1399,3 @@ jQuery.fn.selectRange = function(start, end) {
jQuery.fn.exists = function(){
return this.length > 0;
};

View File

@ -1,4 +1,3 @@
$(document).on('ajaxSend',function(elm, xhr, s) {
$(document).on('ajaxSend',function(elm, xhr) {
xhr.setRequestHeader('requesttoken', oc_requesttoken);
});
});

View File

@ -331,25 +331,27 @@ OC.Share={
.append( insert )
.appendTo( ul );
};
$('#email').autocomplete({
minLength: 1,
source: function (search, response) {
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
if (result.status == 'success' && result.data.length > 0) {
response(result.data);
}
});
},
select: function( event, item ) {
$('#email').val(item.item.email);
return false;
}
})
.data("ui-autocomplete")._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
.appendTo( ul );
};
if (link) {
$('#email').autocomplete({
minLength: 1,
source: function (search, response) {
$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWithEmail', search: search.term }, function(result) {
if (result.status == 'success' && result.data.length > 0) {
response(result.data);
}
});
},
select: function( event, item ) {
$('#email').val(item.item.email);
return false;
}
})
.data("ui-autocomplete")._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.displayname + "<br>" + item.email + "</a>" )
.appendTo( ul );
};
}
} else {
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Resharing is not allowed')+'" style="width:90%;" disabled="disabled"/>';
@ -500,15 +502,16 @@ OC.Share={
$('#emailPrivateLink #email').hide();
$('#emailPrivateLink #emailButton').hide();
$('#allowPublicUploadWrapper').hide();
$('#expirationDate').hide();
},
dirname:function(path) {
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
},
showExpirationDate:function(date) {
$('#expirationCheckbox').attr('checked', true);
$('#expirationDate').before('<br />');
$('#expirationDate').val(date);
$('#expirationDate').show();
$('#expirationDate').show('blind');
$('#expirationDate').css('display','block');
$('#expirationDate').datepicker({
dateFormat : 'dd-mm-yy'
});
@ -578,7 +581,7 @@ $(document).ready(function() {
OC.Share.itemShares[shareType].splice(index, 1);
OC.Share.updateIcon(itemType, itemSource);
if (typeof OC.Share.statuses[itemSource] === 'undefined') {
$('#expiration').hide();
$('#expiration').hide('blind');
}
});
return false;
@ -638,7 +641,7 @@ $(document).ready(function() {
OC.Share.itemShares[OC.Share.SHARE_TYPE_LINK] = false;
OC.Share.updateIcon(itemType, itemSource);
if (typeof OC.Share.statuses[itemSource] === 'undefined') {
$('#expiration').hide();
$('#expiration').hide('blind');
}
});
}
@ -730,7 +733,7 @@ $(document).ready(function() {
if (!result || result.status !== 'success') {
OC.dialogs.alert(t('core', 'Error unsetting expiration date'), t('core', 'Error'));
}
$('#expirationDate').hide();
$('#expirationDate').hide('blind');
});
}
});

View File

@ -59,7 +59,8 @@ OC.Tags= {
});
},
/**
* @param string type
* @param {string} type
* @param {string} tag
* @return jQuery.Promise which resolves with an array of ids
*/
getIdsForTag:function(type, tag) {
@ -80,8 +81,8 @@ OC.Tags= {
return defer.promise();
},
/**
* @param string type
* @return jQuery.Promise which resolves with an array of ids
* @param {string} type
* @return {*} jQuery.Promise which resolves with an array of ids
*/
getFavorites:function(type) {
if(!type && !this.type) {
@ -101,8 +102,8 @@ OC.Tags= {
return defer.promise();
},
/**
* @param string type
* @return jQuery.Promise which resolves with an array of id/name objects
* @param {string} type
* @return {*} jQuery.Promise which resolves with an array of id/name objects
*/
getTags:function(type) {
if(!type && !this.type) {
@ -122,9 +123,10 @@ OC.Tags= {
return defer.promise();
},
/**
* @param int id
* @param string type
* @return jQuery.Promise
* @param {number} id
* @param {string} tag
* @param {string} type
* @return {*} jQuery.Promise
*/
tagAs:function(id, tag, type) {
if(!type && !this.type) {
@ -146,9 +148,10 @@ OC.Tags= {
return defer.promise();
},
/**
* @param int id
* @param string type
* @return jQuery.Promise
* @param {number} id
* @param {string} tag
* @param {string} type
* @return {*} jQuery.Promise
*/
unTag:function(id, tag, type) {
if(!type && !this.type) {
@ -170,9 +173,9 @@ OC.Tags= {
return defer.promise();
},
/**
* @param int id
* @param string type
* @return jQuery.Promise
* @param {number} id
* @param {string} type
* @return {*} jQuery.Promise
*/
addToFavorites:function(id, type) {
if(!type && !this.type) {
@ -194,9 +197,9 @@ OC.Tags= {
return defer.promise();
},
/**
* @param int id
* @param string type
* @return jQuery.Promise
* @param {number} id
* @param {string} type
* @return {*} jQuery.Promise
*/
removeFromFavorites:function(id, type) {
if(!type && !this.type) {
@ -218,9 +221,9 @@ OC.Tags= {
return defer.promise();
},
/**
* @param string tag
* @param string type
* @return jQuery.Promise which resolves with an object with the name and the new id
* @param {string} tag
* @param {string} type
* @return {*} jQuery.Promise which resolves with an object with the name and the new id
*/
addTag:function(tag, type) {
if(!type && !this.type) {
@ -245,9 +248,9 @@ OC.Tags= {
return defer.promise();
},
/**
* @param array tags
* @param string type
* @return jQuery.Promise
* @param {array} tags
* @param {string} type
* @return {*} jQuery.Promise
*/
deleteTags:function(tags, type) {
if(!type && !this.type) {

View File

@ -1,12 +1,55 @@
<?php
$TRANSLATIONS = array(
"Sunday" => "Sondag",
"Monday" => "Mandag",
"Tuesday" => "Dinsdag",
"Wednesday" => "Woensdag",
"Thursday" => "Donderdag",
"Friday" => "Vrydag",
"Saturday" => "Saterdag",
"January" => "Januarie",
"February" => "Februarie",
"March" => "Maart",
"April" => "April",
"May" => "Mei",
"June" => "Junie",
"July" => "Julie",
"August" => "Augustus",
"September" => "September",
"October" => "Oktober",
"November" => "November",
"December" => "Desember",
"Settings" => "Instellings",
"_%n minute ago_::_%n minutes ago_" => array("",""),
"seconds ago" => "sekondes gelede",
"_%n minute ago_::_%n minutes ago_" => array("%n minute gelede","%n minute gelede"),
"_%n hour ago_::_%n hours ago_" => array("",""),
"today" => "vandag",
"yesterday" => "gister",
"_%n day ago_::_%n days ago_" => array("",""),
"last month" => "verlede maand",
"_%n month ago_::_%n months ago_" => array("",""),
"months ago" => "maande gelede",
"last year" => "verlede jaar",
"years ago" => "jare gelede",
"Choose" => "Kies",
"Yes" => "Ja",
"No" => "Nee",
"_{count} file conflict_::_{count} file conflicts_" => array("",""),
"Very weak password" => "Baie swak wagwoord",
"Weak password" => "Swak wagwoord",
"Good password" => "Goeie wagwoord",
"Strong password" => "Sterk wagwoord",
"Shared" => "Gedeel",
"Share" => "Deel",
"Error" => "Fout",
"Shared with you and the group {group} by {owner}" => "Met jou en die groep {group} gedeel deur {owner}",
"Shared with you by {owner}" => "Met jou gedeel deur {owner}",
"Password" => "Wagwoord",
"Email link to person" => "E-pos aan persoon",
"Send" => "Stuur",
"can edit" => "kan wysig",
"Sending ..." => "Stuur ...",
"Email sent" => "E-pos gestuur",
"Use the following link to reset your password: {link}" => "Gebruik die volgende skakel om jou wagwoord te herstel: {link}",
"You will receive a link to reset your password via Email." => "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel.",
"Username" => "Gebruikersnaam",
@ -28,7 +71,7 @@ $TRANSLATIONS = array(
"Database name" => "Databasis naam",
"Finish setup" => "Maak opstelling klaar",
"Log out" => "Teken uit",
"Lost your password?" => "Jou wagwoord verloor?",
"Lost your password?" => "Wagwoord verloor?",
"remember" => "onthou",
"Log in" => "Teken aan"
);

View File

@ -22,6 +22,7 @@ $TRANSLATIONS = array(
"November" => "Payares",
"December" => "Avientu",
"Settings" => "Axustes",
"Saving..." => "Guardando...",
"seconds ago" => "fai segundos",
"_%n minute ago_::_%n minutes ago_" => array("fai %n minutu","fai %n minutos"),
"_%n hour ago_::_%n hours ago_" => array("fai %n hora","fai %n hores"),
@ -57,6 +58,7 @@ $TRANSLATIONS = array(
"share" => "compartir",
"Password protected" => "Contraseña protexida",
"Email sent" => "Corréu unviáu",
"Warning" => "Avisu",
"Delete" => "Desaniciar",
"Add" => "Amestar",
"Edit tags" => "Editar etiquetes",

View File

@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} conflicte de fitxer","{count} conflictes de fitxer"),
"One file conflict" => "Un fitxer en conflicte",
"New Files" => "Fitxers nous",
"Already existing files" => "Fitxers que ja existeixen",
"Which files do you want to keep?" => "Quin fitxer voleu conservar?",
"If you select both versions, the copied file will have a number added to its name." => "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.",
"Cancel" => "Cancel·la",

View File

@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"),
"One file conflict" => "Jeden konflikt souboru",
"New Files" => "Nové soubory",
"Already existing files" => "Soubory již existují",
"Which files do you want to keep?" => "Které soubory chcete ponechat?",
"If you select both versions, the copied file will have a number added to its name." => "Pokud zvolíte obě verze, zkopírovaný soubor bude mít název doplněný o číslo.",
"Cancel" => "Zrušit",

View File

@ -75,7 +75,7 @@ $TRANSLATIONS = array(
"Share link" => "Διαμοιρασμός συνδέσμου",
"Password protect" => "Προστασία συνθηματικού",
"Password" => "Συνθηματικό",
"Allow Public Upload" => "Να επιτρέπεται η Δημόσια Αποστολή",
"Allow Public Upload" => "Επιτρέπεται η Δημόσια Αποστολή",
"Email link to person" => "Αποστολή συνδέσμου με email ",
"Send" => "Αποστολή",
"Set expiration date" => "Ορισμός ημ. λήξης",
@ -85,7 +85,7 @@ $TRANSLATIONS = array(
"group" => "ομάδα",
"Resharing is not allowed" => "Ξαναμοιρασμός δεν επιτρέπεται",
"Shared in {item} with {user}" => "Διαμοιρασμός του {item} με τον {user}",
"Unshare" => "Σταμάτημα διαμοιρασμού",
"Unshare" => "Διακοπή διαμοιρασμού",
"notify by email" => "ειδοποίηση με email",
"can edit" => "δυνατότητα αλλαγής",
"access control" => "έλεγχος πρόσβασης",
@ -128,7 +128,7 @@ $TRANSLATIONS = array(
"Personal" => "Προσωπικά",
"Users" => "Χρήστες",
"Apps" => "Εφαρμογές",
"Admin" => "Διαχειριστής",
"Admin" => "Διαχείριση",
"Help" => "Βοήθεια",
"Error loading tags" => "Σφάλμα φόρτωσης ετικετών",
"Tag already exists" => "Υπάρχει ήδη η ετικέτα",

View File

@ -36,7 +36,7 @@ $TRANSLATIONS = array(
"_%n hour ago_::_%n hours ago_" => array("hai %n hora","hai %n horas"),
"today" => "hoxe",
"yesterday" => "onte",
"_%n day ago_::_%n days ago_" => array("hai %n día","hai %n días"),
"_%n day ago_::_%n days ago_" => array("hai %n día","vai %n días"),
"last month" => "último mes",
"_%n month ago_::_%n months ago_" => array("hai %n mes","hai %n meses"),
"months ago" => "meses atrás",

View File

@ -51,6 +51,7 @@ $TRANSLATIONS = array(
"_{count} file conflict_::_{count} file conflicts_" => array("{count} spor datotek","{count} spora datotek","{count} spori datotek","{count} sporov datotek"),
"One file conflict" => "En spor datotek",
"New Files" => "Nove datoteke",
"Already existing files" => "Obstoječe datoteke",
"Which files do you want to keep?" => "Katare datoteke želite ohraniti?",
"If you select both versions, the copied file will have a number added to its name." => "Če izberete obe različici, bo kopirani datoteki k imenu dodana številka.",
"Cancel" => "Prekliči",

View File

@ -39,9 +39,9 @@ $TRANSLATIONS = array(
"_%n day ago_::_%n days ago_" => array("%n gün önce","%n gün önce"),
"last month" => "geçen ay",
"_%n month ago_::_%n months ago_" => array("%n ay önce","%n ay önce"),
"months ago" => "ay önce",
"months ago" => "aylar önce",
"last year" => "geçen yıl",
"years ago" => "yıl önce",
"years ago" => "yıllar önce",
"Choose" => "Seç",
"Error loading file picker template: {error}" => "Dosya seçici şablonu yüklenirken hata: {error}",
"Yes" => "Evet",
@ -69,19 +69,19 @@ $TRANSLATIONS = array(
"Error" => "Hata",
"Error while sharing" => "Paylaşım sırasında hata",
"Error while unsharing" => "Paylaşım iptal edilirken hata",
"Error while changing permissions" => "İzinleri değiştirirken hata oluştu",
"Error while changing permissions" => "İzinleri değiştirirken hata",
"Shared with you and the group {group} by {owner}" => "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
"Shared with you by {owner}" => "{owner} tarafından sizinle paylaşıldı",
"Share with user or group …" => "Kullanıcı veya grup ile paylaş..",
"Share with user or group …" => "Kullanıcı veya grup ile paylaş...",
"Share link" => "Paylaşma bağlantısı",
"Password protect" => "Parola koruması",
"Password" => "Parola",
"Allow Public Upload" => "Genel Gönderime İzin Ver",
"Allow Public Upload" => "Herkes Tarafından Gönderime İzin Ver",
"Email link to person" => "Bağlantıyı e-posta ile gönder",
"Send" => "Gönder",
"Set expiration date" => "Son kullanma tarihini ayarla",
"Expiration date" => "Son kullanım tarihi",
"Share via email:" => "E-posta ile paylaş",
"Share via email:" => "E-posta ile paylaş:",
"No people found" => "Kişi bulunamadı",
"group" => "grup",
"Resharing is not allowed" => "Tekrar paylaşmaya izin verilmiyor",
@ -95,8 +95,8 @@ $TRANSLATIONS = array(
"delete" => "sil",
"share" => "paylaş",
"Password protected" => "Parola korumalı",
"Error unsetting expiration date" => "Geçerlilik tarihi tanımlama kaldırma hatası",
"Error setting expiration date" => "Geçerlilik tarihi tanımlama hatası",
"Error unsetting expiration date" => "Son kullanma tarihi kaldırma hatası",
"Error setting expiration date" => "Son kullanma tarihi ayarlama hatası",
"Sending ..." => "Gönderiliyor...",
"Email sent" => "E-posta gönderildi",
"Warning" => "Uyarı",
@ -108,23 +108,23 @@ $TRANSLATIONS = array(
"Error loading dialog template: {error}" => "İletişim şablonu yüklenirken hata: {error}",
"No tags selected for deletion." => "Silmek için bir etiket seçilmedi.",
"Please reload the page." => "Lütfen sayfayı yeniden yükleyin.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "Güncelleme başarılı olmadı. Lütfen bu hatayı bildirin <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>.",
"The update was successful. Redirecting you to ownCloud now." => "Güncelleme başarılı. ownCloud'a yönlendiriliyor.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "Güncelleme başarısız oldu. Lütfen bu hatayı <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud topluluğu</a>na bildirin.",
"The update was successful. Redirecting you to ownCloud now." => "Güncelleme başarılı. Şimdi ownCloud'a yönlendiriliyorsunuz.",
"%s password reset" => "%s parola sıfırlama",
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.",
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yöneticinizle iletişime geçin.",
"Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {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 ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz.",
"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 ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br>Eğer yine bulamazsanız sistem yöneticinize danışın.",
"Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?",
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.",
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için e-posta ile bir bağlantı alacaksınız.",
"Username" => "Kullanıcı Adı",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Dosyalarınız şifrelenmiş. Eğer kurtarma anahtarını etkinleştirmediyseniz parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak. Eğer ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile irtibata geçiniz. Gerçekten devam etmek istiyor musunuz?",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Dosyalarınız şifrelenmiş. Eğer kurtarma anahtarını etkinleştirmediyseniz parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak. Eğer ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin. Gerçekten devam etmek istiyor musunuz?",
"Yes, I really want to reset my password now" => "Evet, gerçekten parolamı şimdi sıfırlamak istiyorum",
"Reset" => "Sıfırla",
"Your password was reset" => "Parolanız sıfırlandı",
"To login page" => "Giriş sayfasına git",
"New password" => "Yeni parola",
"Reset password" => "Parolayı sıfırla",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X desteklenmemediğinden %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X desteklenmiyor ve %s bu platformda düzgün çalışmayacak. Kendi riskinizle kullanın!",
"For the best results, please consider using a GNU/Linux server instead." => "En iyi sonuçlar için GNU/Linux sunucusu kullanın.",
"Personal" => "Kişisel",
"Users" => "Kullanıcılar",
@ -135,25 +135,25 @@ $TRANSLATIONS = array(
"Tag already exists" => "Etiket zaten mevcut",
"Error deleting tag(s)" => "Etiket(ler) silinirken hata",
"Error tagging" => "Etiketleme hatası",
"Error untagging" => "Etiket kaldırılırken hata",
"Error untagging" => "Etiket kaldırma hatası",
"Error favoriting" => "Beğenilirken hata",
"Error unfavoriting" => "Beğeniden kaldırılırken hata",
"Access forbidden" => "Erişim yasaklı",
"Access forbidden" => "Erişim yasak",
"Cloud not found" => "Bulut bulunamadı",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Merhaba,\n\nSadece %s sizinle %s paylaşımını yaptığını bildiriyoruz.\nBuradan bakabilirsiniz: %s\n\n",
"The share will expire on %s." => "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" => "Şerefe!",
"Cheers!" => "Hoşça kalın!",
"Security Warning" => "Güvenlik Uyarısı",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP sürümünüz NULL Byte saldırısına açık (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "%s güvenli olarak kullanmak için, lütfen PHP kurulumunuzu güncelleyin.",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Güvenli rastgele sayı üreticisi bulunamadı. Lütfen PHP OpenSSL eklentisini etkinleştirin.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Güvenli rastgele sayı üreticisi olmadan saldırganlar parola sıfırlama simgelerini tahmin edip hesabınızı ele geçirebilir.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için internet'ten erişime açık.",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.",
"Create an <strong>admin account</strong>" => "Bir <strong>yönetici hesabı</strong> oluşturun",
"Storage & database" => "Depolama ve veritabanı",
"Data folder" => "Veri klasörü",
"Configure the database" => "Veritabanını ayarla",
"Configure the database" => "Veritabanını yapılandır",
"will be used" => "kullanılacak",
"Database user" => "Veritabanı kullanıcı adı",
"Database password" => "Veritabanı parolası",
@ -163,23 +163,23 @@ $TRANSLATIONS = array(
"Finish setup" => "Kurulumu tamamla",
"Finishing …" => "Tamamlanıyor ...",
"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Uygulama, doğru çalışabilmesi için JavaScript'in etkinleştirilmesini gerektiriyor. Lütfen <a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScript'i etkinleştirin</a> ve bu arayüzü yeniden yükleyin.",
"%s is available. Get more information on how to update." => "%s mevcut. Güncelleştirme hakkında daha fazla bilgi alın.",
"%s is available. Get more information on how to update." => "%s mevcut. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.",
"Log out" => "Çıkış yap",
"Automatic logon rejected!" => "Otomatik oturum açma reddedildi!",
"If you did not change your password recently, your account may be compromised!" => "Yakın zamanda parolanızı değiştirmediyseniz hesabınız tehlikede olabilir!",
"Please change your password to secure your account again." => "Hesabınızı tekrar güvene almak için lütfen parolanızı değiştirin.",
"Server side authentication failed!" => "Sunucu taraflı yetkilendirme başarısız!",
"Please contact your administrator." => "Lütfen sistem yöneticisi ile iletişime geçin.",
"Please contact your administrator." => "Lütfen sistem yöneticiniz ile iletişime geçin.",
"Lost your password?" => "Parolanızı mı unuttunuz?",
"remember" => "hatırla",
"Log in" => "Giriş yap",
"Alternative Logins" => "Alternatif Girişler",
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Merhaba, <br><br> %s sizinle <strong>%s</strong> paylaşımında bulundu.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
"This ownCloud instance is currently in single user mode." => "Bu ownCloud örneği şu anda tek kullanıcı kipinde.",
"This means only administrators can use the instance." => "Bu, örneği sadece yöneticiler kullanabilir demektir.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Eğer bu ileti görünmeye devam ederse veya beklenmedik şekilde ortaya çıkmışsa sistem yöneticinizle iletişime geçin.",
"Thank you for your patience." => "Sabrınız için teşekkür ederiz.",
"Updating ownCloud to version %s, this may take a while." => "Owncloud %s sürümüne güncelleniyor. Biraz zaman alabilir.",
"Updating ownCloud to version %s, this may take a while." => "ownCloud %s sürümüne güncelleniyor. Biraz zaman alabilir.",
"This ownCloud instance is currently being updated, which may take a while." => "Bu ownCloud örneği şu anda güncelleniyor, bu biraz zaman alabilir.",
"Please reload this page after a short time to continue using ownCloud." => "ownCloud kullanmaya devam etmek için kısa bir süre sonra lütfen sayfayı yenileyin."
);

View File

@ -122,7 +122,7 @@ class Controller {
// Protect data directory here, so we can test if the protection is working
\OC_Setup::protectDataDirectory();
try {
$htaccessWorking = \OC_Util::isHtAccessWorking();
$htaccessWorking = \OC_Util::isHtaccessWorking();
} catch (\OC\HintException $e) {
$errors[] = array(
'error' => $e->getMessage(),

View File

@ -30,7 +30,7 @@
?>
<?php endforeach; ?>
</head>
<?php flush(); ?>
<body id="body-public">
<?php print_unescaped($_['content']); ?>
</body>

View File

@ -32,7 +32,7 @@
?>
<?php endforeach; ?>
</head>
<?php flush(); ?>
<body id="body-login">
<div class="wrapper"><!-- for sticky footer -->
<header><div id="header">

View File

@ -35,7 +35,7 @@
?>
<?php endforeach; ?>
</head>
<?php flush(); ?>
<body id="<?php p($_['bodyid']);?>">
<noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript to be enabled for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and re-load this interface.')); ?></div></div></noscript>
<div id="notification-container">

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# kalliet <kst@fam-tank.net>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-04-08 01:56-0400\n"
"PO-Revision-Date: 2014-04-08 05:56+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-04-17 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 19:39+0000\n"
"Last-Translator: kalliet <kst@fam-tank.net>\n"
"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -60,79 +61,79 @@ msgstr ""
#: js/config.php:36
msgid "Sunday"
msgstr ""
msgstr "Sondag"
#: js/config.php:37
msgid "Monday"
msgstr ""
msgstr "Mandag"
#: js/config.php:38
msgid "Tuesday"
msgstr ""
msgstr "Dinsdag"
#: js/config.php:39
msgid "Wednesday"
msgstr ""
msgstr "Woensdag"
#: js/config.php:40
msgid "Thursday"
msgstr ""
msgstr "Donderdag"
#: js/config.php:41
msgid "Friday"
msgstr ""
msgstr "Vrydag"
#: js/config.php:42
msgid "Saturday"
msgstr ""
msgstr "Saterdag"
#: js/config.php:47
msgid "January"
msgstr ""
msgstr "Januarie"
#: js/config.php:48
msgid "February"
msgstr ""
msgstr "Februarie"
#: js/config.php:49
msgid "March"
msgstr ""
msgstr "Maart"
#: js/config.php:50
msgid "April"
msgstr ""
msgstr "April"
#: js/config.php:51
msgid "May"
msgstr ""
msgstr "Mei"
#: js/config.php:52
msgid "June"
msgstr ""
msgstr "Junie"
#: js/config.php:53
msgid "July"
msgstr ""
msgstr "Julie"
#: js/config.php:54
msgid "August"
msgstr ""
msgstr "Augustus"
#: js/config.php:55
msgid "September"
msgstr ""
msgstr "September"
#: js/config.php:56
msgid "October"
msgstr ""
msgstr "Oktober"
#: js/config.php:57
msgid "November"
msgstr ""
msgstr "November"
#: js/config.php:58
msgid "December"
msgstr ""
msgstr "Desember"
#: js/js.js:479
msgid "Settings"
@ -142,137 +143,137 @@ msgstr "Instellings"
msgid "Saving..."
msgstr ""
#: js/js.js:1124
#: js/js.js:1099
msgid "seconds ago"
msgstr ""
msgstr "sekondes gelede"
#: js/js.js:1125
#: js/js.js:1100
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "%n minute gelede"
msgstr[1] "%n minute gelede"
#: js/js.js:1126
#: js/js.js:1101
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:1127
#: js/js.js:1102
msgid "today"
msgstr ""
msgstr "vandag"
#: js/js.js:1128
#: js/js.js:1103
msgid "yesterday"
msgstr ""
msgstr "gister"
#: js/js.js:1129
#: js/js.js:1104
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:1130
#: js/js.js:1105
msgid "last month"
msgstr ""
msgstr "verlede maand"
#: js/js.js:1131
#: js/js.js:1106
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:1132
#: js/js.js:1107
msgid "months ago"
msgstr ""
msgstr "maande gelede"
#: js/js.js:1133
#: js/js.js:1108
msgid "last year"
msgstr ""
msgstr "verlede jaar"
#: js/js.js:1134
#: js/js.js:1109
msgid "years ago"
msgstr ""
msgstr "jare gelede"
#: js/oc-dialogs.js:123
#: js/oc-dialogs.js:125
msgid "Choose"
msgstr ""
msgstr "Kies"
#: js/oc-dialogs.js:146
#: js/oc-dialogs.js:151
msgid "Error loading file picker template: {error}"
msgstr ""
#: js/oc-dialogs.js:172
#: js/oc-dialogs.js:177
msgid "Yes"
msgstr ""
msgstr "Ja"
#: js/oc-dialogs.js:182
#: js/oc-dialogs.js:187
msgid "No"
msgstr ""
msgstr "Nee"
#: js/oc-dialogs.js:199
#: js/oc-dialogs.js:204
msgid "Ok"
msgstr ""
#: js/oc-dialogs.js:219
#: js/oc-dialogs.js:224
msgid "Error loading message template: {error}"
msgstr ""
#: js/oc-dialogs.js:347
#: js/oc-dialogs.js:352
msgid "{count} file conflict"
msgid_plural "{count} file conflicts"
msgstr[0] ""
msgstr[1] ""
#: js/oc-dialogs.js:361
#: js/oc-dialogs.js:366
msgid "One file conflict"
msgstr ""
#: js/oc-dialogs.js:367
#: js/oc-dialogs.js:372
msgid "New Files"
msgstr ""
#: js/oc-dialogs.js:368
#: js/oc-dialogs.js:373
msgid "Already existing files"
msgstr ""
#: js/oc-dialogs.js:370
#: js/oc-dialogs.js:375
msgid "Which files do you want to keep?"
msgstr ""
#: js/oc-dialogs.js:371
#: js/oc-dialogs.js:376
msgid ""
"If you select both versions, the copied file will have a number added to its"
" name."
msgstr ""
#: js/oc-dialogs.js:379
#: js/oc-dialogs.js:384
msgid "Cancel"
msgstr ""
#: js/oc-dialogs.js:389
#: js/oc-dialogs.js:394
msgid "Continue"
msgstr ""
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
#: js/oc-dialogs.js:441 js/oc-dialogs.js:454
msgid "(all selected)"
msgstr ""
#: js/oc-dialogs.js:439 js/oc-dialogs.js:452
#: js/oc-dialogs.js:444 js/oc-dialogs.js:458
msgid "({count} selected)"
msgstr ""
#: js/oc-dialogs.js:460
#: js/oc-dialogs.js:466
msgid "Error loading file exists template"
msgstr ""
#: js/setup.js:84
msgid "Very weak password"
msgstr ""
msgstr "Baie swak wagwoord"
#: js/setup.js:85
msgid "Weak password"
msgstr ""
msgstr "Swak wagwoord"
#: js/setup.js:86
msgid "So-so password"
@ -280,26 +281,26 @@ msgstr ""
#: js/setup.js:87
msgid "Good password"
msgstr ""
msgstr "Goeie wagwoord"
#: js/setup.js:88
msgid "Strong password"
msgstr ""
msgstr "Sterk wagwoord"
#: js/share.js:51 js/share.js:66 js/share.js:106
msgid "Shared"
msgstr ""
msgstr "Gedeel"
#: js/share.js:109
msgid "Share"
msgstr ""
msgstr "Deel"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:711
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:732
#: templates/installation.php:10
msgid "Error"
msgstr ""
msgstr "Fout"
#: js/share.js:160 js/share.js:767
#: js/share.js:160 js/share.js:788
msgid "Error while sharing"
msgstr ""
@ -313,11 +314,11 @@ msgstr ""
#: js/share.js:188
msgid "Shared with you and the group {group} by {owner}"
msgstr ""
msgstr "Met jou en die groep {group} gedeel deur {owner}"
#: js/share.js:190
msgid "Shared with you by {owner}"
msgstr ""
msgstr "Met jou gedeel deur {owner}"
#: js/share.js:214
msgid "Share with user or group …"
@ -341,11 +342,11 @@ msgstr ""
#: js/share.js:234
msgid "Email link to person"
msgstr ""
msgstr "E-pos aan persoon"
#: js/share.js:235
msgid "Send"
msgstr ""
msgstr "Stuur"
#: js/share.js:240
msgid "Set expiration date"
@ -363,71 +364,71 @@ msgstr ""
msgid "No people found"
msgstr ""
#: js/share.js:324 js/share.js:363
#: js/share.js:324 js/share.js:383
msgid "group"
msgstr ""
#: js/share.js:335
#: js/share.js:355
msgid "Resharing is not allowed"
msgstr ""
#: js/share.js:379
#: js/share.js:399
msgid "Shared in {item} with {user}"
msgstr ""
#: js/share.js:401
#: js/share.js:421
msgid "Unshare"
msgstr ""
#: js/share.js:409
#: js/share.js:429
msgid "notify by email"
msgstr ""
#: js/share.js:412
#: js/share.js:432
msgid "can edit"
msgstr ""
msgstr "kan wysig"
#: js/share.js:414
#: js/share.js:434
msgid "access control"
msgstr ""
#: js/share.js:417
#: js/share.js:437
msgid "create"
msgstr ""
#: js/share.js:420
#: js/share.js:440
msgid "update"
msgstr ""
#: js/share.js:423
#: js/share.js:443
msgid "delete"
msgstr ""
#: js/share.js:426
#: js/share.js:446
msgid "share"
msgstr ""
#: js/share.js:698
#: js/share.js:719
msgid "Password protected"
msgstr ""
#: js/share.js:711
#: js/share.js:732
msgid "Error unsetting expiration date"
msgstr ""
#: js/share.js:729
#: js/share.js:750
msgid "Error setting expiration date"
msgstr ""
#: js/share.js:754
#: js/share.js:775
msgid "Sending ..."
msgstr ""
msgstr "Stuur ..."
#: js/share.js:765
#: js/share.js:786
msgid "Email sent"
msgstr ""
msgstr "E-pos gestuur"
#: js/share.js:789
#: js/share.js:810
msgid "Warning"
msgstr ""
@ -755,7 +756,7 @@ msgstr ""
#: templates/login.php:46
msgid "Lost your password?"
msgstr "Jou wagwoord verloor?"
msgstr "Wagwoord verloor?"
#: templates/login.php:51
msgid "remember"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-04-08 01:56-0400\n"
"PO-Revision-Date: 2014-04-08 05:56+0000\n"
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@ -144,11 +144,11 @@ msgstr "إعدادات"
msgid "Saving..."
msgstr "جاري الحفظ..."
#: js/js.js:1124
#: js/js.js:1099
msgid "seconds ago"
msgstr "منذ ثواني"
#: js/js.js:1125
#: js/js.js:1100
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
@ -158,7 +158,7 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: js/js.js:1126
#: js/js.js:1101
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
@ -168,15 +168,15 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: js/js.js:1127
#: js/js.js:1102
msgid "today"
msgstr "اليوم"
#: js/js.js:1128
#: js/js.js:1103
msgid "yesterday"
msgstr "يوم أمس"
#: js/js.js:1129
#: js/js.js:1104
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
@ -186,11 +186,11 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: js/js.js:1130
#: js/js.js:1105
msgid "last month"
msgstr "الشهر الماضي"
#: js/js.js:1131
#: js/js.js:1106
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
@ -200,43 +200,43 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: js/js.js:1132
#: js/js.js:1107
msgid "months ago"
msgstr "شهر مضى"
#: js/js.js:1133
#: js/js.js:1108
msgid "last year"
msgstr "السنةالماضية"
#: js/js.js:1134
#: js/js.js:1109
msgid "years ago"
msgstr "سنة مضت"
#: js/oc-dialogs.js:123
#: js/oc-dialogs.js:125
msgid "Choose"
msgstr "اختيار"
#: js/oc-dialogs.js:146
#: js/oc-dialogs.js:151
msgid "Error loading file picker template: {error}"
msgstr ""
#: js/oc-dialogs.js:172
#: js/oc-dialogs.js:177
msgid "Yes"
msgstr "نعم"
#: js/oc-dialogs.js:182
#: js/oc-dialogs.js:187
msgid "No"
msgstr "لا"
#: js/oc-dialogs.js:199
#: js/oc-dialogs.js:204
msgid "Ok"
msgstr "موافق"
#: js/oc-dialogs.js:219
#: js/oc-dialogs.js:224
msgid "Error loading message template: {error}"
msgstr ""
#: js/oc-dialogs.js:347
#: js/oc-dialogs.js:352
msgid "{count} file conflict"
msgid_plural "{count} file conflicts"
msgstr[0] ""
@ -246,45 +246,45 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: js/oc-dialogs.js:361
#: js/oc-dialogs.js:366
msgid "One file conflict"
msgstr ""
#: js/oc-dialogs.js:367
#: js/oc-dialogs.js:372
msgid "New Files"
msgstr ""
#: js/oc-dialogs.js:368
#: js/oc-dialogs.js:373
msgid "Already existing files"
msgstr ""
#: js/oc-dialogs.js:370
#: js/oc-dialogs.js:375
msgid "Which files do you want to keep?"
msgstr ""
#: js/oc-dialogs.js:371
#: js/oc-dialogs.js:376
msgid ""
"If you select both versions, the copied file will have a number added to its"
" name."
msgstr ""
#: js/oc-dialogs.js:379
#: js/oc-dialogs.js:384
msgid "Cancel"
msgstr "الغاء"
#: js/oc-dialogs.js:389
#: js/oc-dialogs.js:394
msgid "Continue"
msgstr ""
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
#: js/oc-dialogs.js:441 js/oc-dialogs.js:454
msgid "(all selected)"
msgstr ""
#: js/oc-dialogs.js:439 js/oc-dialogs.js:452
#: js/oc-dialogs.js:444 js/oc-dialogs.js:458
msgid "({count} selected)"
msgstr ""
#: js/oc-dialogs.js:460
#: js/oc-dialogs.js:466
msgid "Error loading file exists template"
msgstr ""
@ -316,12 +316,12 @@ msgstr "مشارك"
msgid "Share"
msgstr "شارك"
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:711
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:731
#: templates/installation.php:10
msgid "Error"
msgstr "خطأ"
#: js/share.js:160 js/share.js:767
#: js/share.js:160 js/share.js:787
msgid "Error while sharing"
msgstr "حصل خطأ عند عملية المشاركة"
@ -385,71 +385,71 @@ msgstr "مشاركة عبر البريد الإلكتروني:"
msgid "No people found"
msgstr "لم يتم العثور على أي شخص"
#: js/share.js:324 js/share.js:363
#: js/share.js:324 js/share.js:383
msgid "group"
msgstr "مجموعة"
#: js/share.js:335
#: js/share.js:355
msgid "Resharing is not allowed"
msgstr "لا يسمح بعملية إعادة المشاركة"
#: js/share.js:379
#: js/share.js:399
msgid "Shared in {item} with {user}"
msgstr "شورك في {item} مع {user}"
#: js/share.js:401
#: js/share.js:421
msgid "Unshare"
msgstr "إلغاء مشاركة"
#: js/share.js:409
#: js/share.js:429
msgid "notify by email"
msgstr ""
#: js/share.js:412
#: js/share.js:432
msgid "can edit"
msgstr "التحرير مسموح"
#: js/share.js:414
#: js/share.js:434
msgid "access control"
msgstr "ضبط الوصول"
#: js/share.js:417
#: js/share.js:437
msgid "create"
msgstr "إنشاء"
#: js/share.js:420
#: js/share.js:440
msgid "update"
msgstr "تحديث"
#: js/share.js:423
#: js/share.js:443
msgid "delete"
msgstr "حذف"
#: js/share.js:426
#: js/share.js:446
msgid "share"
msgstr "مشاركة"
#: js/share.js:698
#: js/share.js:718
msgid "Password protected"
msgstr "محمي بكلمة السر"
#: js/share.js:711
#: js/share.js:731
msgid "Error unsetting expiration date"
msgstr "حصل خطأ عند عملية إزالة تاريخ إنتهاء الصلاحية"
#: js/share.js:729
#: js/share.js:749
msgid "Error setting expiration date"
msgstr "حصل خطأ عند عملية تعيين تاريخ إنتهاء الصلاحية"
#: js/share.js:754
#: js/share.js:774
msgid "Sending ..."
msgstr "جاري الارسال ..."
#: js/share.js:765
#: js/share.js:785
msgid "Email sent"
msgstr "تم ارسال البريد الالكتروني"
#: js/share.js:789
#: js/share.js:809
msgid "Warning"
msgstr "تحذير"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-04-04 01:55-0400\n"
"PO-Revision-Date: 2014-04-04 05:56+0000\n"
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@ -44,7 +44,7 @@ msgid ""
"allowed."
msgstr "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها"
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:145
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:155
#: lib/app.php:65
msgid "The target folder has been moved or deleted."
msgstr ""
@ -129,15 +129,15 @@ msgstr "خطأ في الكتابة على القرص الصلب"
msgid "Not enough storage available"
msgstr "لا يوجد مساحة تخزينية كافية"
#: ajax/upload.php:159
#: ajax/upload.php:169
msgid "Upload failed. Could not find uploaded file"
msgstr "*فشلت علمية الرفع. تعذر إيجاد الملف الذي تم رفعه.\n*فشلت علمية التحميل. تعذر إيجاد الملف الذي تم تحميله."
#: ajax/upload.php:169
#: ajax/upload.php:179
msgid "Upload failed. Could not get file info."
msgstr "فشلت عملية الرفع. تعذر الحصول على معلومات الملف."
#: ajax/upload.php:184
#: ajax/upload.php:194
msgid "Invalid directory."
msgstr "مسار غير صحيح."
@ -145,53 +145,53 @@ msgstr "مسار غير صحيح."
msgid "Files"
msgstr "الملفات"
#: js/file-upload.js:247
#: js/file-upload.js:254
msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
msgstr "تعذر رفع الملف {filename} إما لأنه مجلد أو لان حجم الملف 0 بايت"
#: js/file-upload.js:258
#: js/file-upload.js:266
msgid "Total file size {size1} exceeds upload limit {size2}"
msgstr ""
#: js/file-upload.js:268
#: js/file-upload.js:276
msgid ""
"Not enough free space, you are uploading {size1} but only {size2} is left"
msgstr ""
#: js/file-upload.js:340
#: js/file-upload.js:353
msgid "Upload cancelled."
msgstr "تم إلغاء عملية رفع الملفات ."
#: js/file-upload.js:385
#: js/file-upload.js:398
msgid "Could not get result from server."
msgstr "تعذر الحصول على نتيجة من الخادم"
#: js/file-upload.js:477
#: js/file-upload.js:490
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات."
#: js/file-upload.js:542
#: js/file-upload.js:555
msgid "URL cannot be empty"
msgstr ""
#: js/file-upload.js:546
#: js/file-upload.js:559
msgid "In the home folder 'Shared' is a reserved filename"
msgstr ""
#: js/file-upload.js:548 js/filelist.js:603
#: js/file-upload.js:561 js/filelist.js:585
msgid "{new_name} already exists"
msgstr "{new_name} موجود مسبقا"
#: js/file-upload.js:600
#: js/file-upload.js:613
msgid "Could not create file"
msgstr ""
#: js/file-upload.js:613
#: js/file-upload.js:626
msgid "Could not create folder"
msgstr ""
#: js/file-upload.js:653
#: js/file-upload.js:666
msgid "Error fetching URL"
msgstr ""
@ -215,19 +215,19 @@ msgstr "حدث خطأ أثناء نقل الملف"
msgid "Error"
msgstr "خطأ"
#: js/filelist.js:267 js/filelist.js:1113
#: js/filelist.js:251 js/filelist.js:1129
msgid "Pending"
msgstr "قيد الانتظار"
#: js/filelist.js:630
#: js/filelist.js:612
msgid "Could not rename file"
msgstr ""
#: js/filelist.js:789
#: js/filelist.js:775
msgid "Error deleting file."
msgstr ""
#: js/filelist.js:814 js/filelist.js:891 js/files.js:589
#: js/filelist.js:800 js/filelist.js:876 js/files.js:589
msgid "%n folder"
msgid_plural "%n folders"
msgstr[0] "لا يوجد مجلدات %n"
@ -237,7 +237,7 @@ msgstr[3] "عدد قليل من مجلدات %n"
msgstr[4] "عدد كبير من مجلدات %n"
msgstr[5] "مجلدات %n"
#: js/filelist.js:815 js/filelist.js:892 js/files.js:595
#: js/filelist.js:801 js/filelist.js:877 js/files.js:595
msgid "%n file"
msgid_plural "%n files"
msgstr[0] "لا يوجد ملفات %n"
@ -247,11 +247,11 @@ msgstr[3] "قليل من ملفات %n"
msgstr[4] "الكثير من ملفات %n"
msgstr[5] " ملفات %n"
#: js/filelist.js:822
#: js/filelist.js:808
msgid "{dirs} and {files}"
msgstr "{dirs} و {files}"
#: js/filelist.js:1052 js/filelist.js:1090
#: js/filelist.js:1037 js/filelist.js:1076
msgid "Uploading %n file"
msgid_plural "Uploading %n files"
msgstr[0] "لا يوجد ملفات %n لتحميلها"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 06:10+0000\n"
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 05:41+0000\n"
"Last-Translator: Abderraouf Mehdi Bouhali <armbouhali@gmail.com>\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"
@ -28,38 +28,38 @@ msgstr "تعذّر حذف%s بشكل دائم"
msgid "Couldn't restore %s"
msgstr "تعذّر استرجاع %s "
#: js/filelist.js:23
#: js/filelist.js:3
msgid "Deleted files"
msgstr "حذف الملفات"
#: js/trash.js:16 js/trash.js:103 js/trash.js:152
#: js/trash.js:33 js/trash.js:124 js/trash.js:173
msgid "Error"
msgstr "خطأ"
#: js/trash.js:264
msgid "Deleted Files"
msgstr "الملفات المحذوفه"
#: lib/trashbin.php:859 lib/trashbin.php:861
msgid "restored"
msgstr "تمت الاستعادة"
#: templates/index.php:7
#: templates/index.php:6
msgid "Nothing in here. Your trash bin is empty!"
msgstr "لا يوجد شيء هنا. سلة المهملات خاليه."
#: templates/index.php:20
#: templates/index.php:19
msgid "Name"
msgstr "اسم"
#: templates/index.php:23 templates/index.php:25
#: templates/index.php:22 templates/index.php:24
msgid "Restore"
msgstr "استعيد"
#: templates/index.php:31
#: templates/index.php:30
msgid "Deleted"
msgstr "تم الحذف"
#: templates/index.php:34 templates/index.php:35
#: templates/index.php:33 templates/index.php:34
msgid "Delete"
msgstr "إلغاء"
#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr "الملفات المحذوفه"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-04-12 01:54-0400\n"
"PO-Revision-Date: 2014-04-12 05:54+0000\n"
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 05:40+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-04-12 01:54-0400\n"
"PO-Revision-Date: 2014-04-12 05:55+0000\n"
"POT-Creation-Date: 2014-04-16 01:55-0400\n"
"PO-Revision-Date: 2014-04-16 05:41+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n"
"MIME-Version: 1.0\n"

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