diff --git a/.htaccess b/.htaccess index 048a56d6389dd0b05cc0b4bd36490f125631bdaa..616118b2ce8ae57bd914f595f1d6f069e52478c7 100755 --- a/.htaccess +++ b/.htaccess @@ -1,4 +1,5 @@ +php_value cgi.fix_pathinfo 1 SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1 @@ -32,4 +33,5 @@ RewriteRule ^remote/(.*) remote.php [QSA,L] AddType image/svg+xml svg svgz AddEncoding gzip svgz +AddDefaultCharset utf-8 Options -Indexes diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php index 78ed218c13623571cb41c6ce448e7c72a1617f4a..93063e52eb09ae017617bcce6e6b76d1d54e57a6 100644 --- a/apps/files/ajax/move.php +++ b/apps/files/ajax/move.php @@ -11,8 +11,10 @@ $dir = stripslashes($_POST["dir"]); $file = stripslashes($_POST["file"]); $target = stripslashes(rawurldecode($_POST["target"])); +$l = OC_L10N::get('files'); + if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) { - OCP\JSON::error(array("data" => array( "message" => "Could not move $file - File with this name already exists" ))); + OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s - File with this name already exists", array($file)) ))); exit; } @@ -22,8 +24,8 @@ if ($dir != '' || $file != 'Shared') { if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); } else { - OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); + OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); } }else{ - OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); + OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); } diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 970aaa638da89a578f11b381220adeae2ea1d889..9fd2ce3ad4bc6d548aeb3a609e45863707ea7df7 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -11,14 +11,16 @@ $dir = stripslashes($_GET["dir"]); $file = stripslashes($_GET["file"]); $newname = stripslashes($_GET["newname"]); +$l = OC_L10N::get('files'); + if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') { $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); } else { - OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); + OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); } }else{ - OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); + OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); } diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 676612c0e42e7f55f45d2d1f6784afbcf5b5ed68..5b697777e47cd701f09c4d61d1d7c95dfcb9c8d1 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -26,8 +26,7 @@ foreach ($_FILES['files']['error'] as $error) { UPLOAD_ERR_OK => $l->t('There is no error, the file uploaded with success'), UPLOAD_ERR_INI_SIZE => $l->t('The uploaded file exceeds the upload_max_filesize directive in php.ini: ') . ini_get('upload_max_filesize'), - UPLOAD_ERR_FORM_SIZE => $l->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified' - . ' in the HTML form'), + UPLOAD_ERR_FORM_SIZE => $l->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'), UPLOAD_ERR_PARTIAL => $l->t('The uploaded file was only partially uploaded'), UPLOAD_ERR_NO_FILE => $l->t('No file was uploaded'), UPLOAD_ERR_NO_TMP_DIR => $l->t('Missing a temporary folder'), @@ -48,8 +47,8 @@ $totalSize = 0; foreach ($files['size'] as $size) { $totalSize += $size; } -if ($totalSize > \OC\Files\Filesystem::free_space($dir)) { - OCP\JSON::error(array('data' => array('message' => $l->t('Not enough space available'), +if ($totalSize > $maxUploadFilesize) { + OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'), 'uploadMaxFilesize' => $maxUploadFilesize, 'maxHumanFilesize' => $maxHumanFilesize))); exit(); diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index 7c82c839dabd9f609ace7b8527b883fb41001518..34800378537ead29daf6456563038a43dc3bbbe4 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -5,7 +5,7 @@ File Management AGPL Robin Appelman - 4.91 + 4.93 true diff --git a/apps/files/css/files.css b/apps/files/css/files.css index 67bd569ceef3e7577bfaec11155656658b341482..cd339ad26a5e3c6d5b4528d7a8be3ec03925095f 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -25,7 +25,7 @@ #trash { height:17px; margin: 0 1em; z-index:1010; float: right; } -#upload { +#upload { height:27px; padding:0; margin-left:0.2em; overflow:hidden; } #upload a { @@ -55,7 +55,7 @@ font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } -table { position:relative; width:100%; } +table { position:relative; top:37px; width:100%; } tbody tr { background-color:#fff; height:2.5em; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; } tbody tr.selected { background-color:#eee; } @@ -74,9 +74,9 @@ table th#headerDate, table td.date { min-width:11em; padding:0 .1em 0 1em; text- /* Multiselect bar */ table.multiselect { top:63px; } -table.multiselect thead { position:fixed; top:82px; z-index:1; } +table.multiselect thead { position:fixed; top:82px; z-index:1; -moz-box-sizing: border-box; box-sizing: border-box; left: 0; padding-left: 64px; width:100%; } table.multiselect thead th { background:rgba(230,230,230,.8); color:#000; font-weight:bold; border-bottom:0; } - +table.multiselect #headerName { width: 100%; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; } table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } @@ -87,9 +87,14 @@ table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0 table td.filename .nametext { overflow:hidden; text-overflow:ellipsis; } table td.filename .uploadtext { font-weight:normal; margin-left:.5em; } table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; } + +/* File checkboxes */ #fileList tr td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; } #fileList tr td.filename>input[type="checkbox"]:hover:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } +/* Always show checkbox when selected */ #fileList tr td.filename>input[type="checkbox"]:checked:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } +#fileList tr.selected td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } + #fileList tr td.filename { position:relative; width:100%; -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; @@ -118,6 +123,18 @@ a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; } .selectedActions a { display:inline; margin:-.5em 0; padding:.5em !important; } .selectedActions a img { position:relative; top:.3em; } +#fileList a.action { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +#fileList tr:hover a.action { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=.5)"; + filter: alpha(opacity=.5); +} +#fileList tr:hover a.action:hover { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=1)"; + filter: alpha(opacity=1); +} #scanning-message{ top:40%; left:40%; position:absolute; display:none; } diff --git a/apps/files/index.php b/apps/files/index.php index 104cf1a55d322ffcad11544fb60d82fc50cef5fb..434e98c6ea847a8b2f2316c570685be84b1446d4 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -92,7 +92,7 @@ foreach (explode('/', $dir) as $i) { $list = new OCP\Template('files', 'part.list', ''); $list->assign('files', $files, false); $list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false); -$list->assign('downloadURL', OCP\Util::linkTo('files', 'download.php') . '?file=', false); +$list->assign('downloadURL', OCP\Util::linkToRoute('download', array('file' => '/')), false); $list->assign('disableSharing', false); $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index af3fc483910a616a39a4ac0319798bc195c27a74..38f5bab6f73a4ba0bf52c516d8eadf1cf24bc18e 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -81,7 +81,7 @@ var FileActions = { event.data.actionFunc(file); }; - $.each(actions, function (name, action) { + var addAction = function (name, action) { // NOTE: Temporary fix to prevent rename action in root of Shared directory if (name === 'Rename' && $('#dir').val() === '/Shared') { return true; @@ -92,7 +92,7 @@ var FileActions = { if (img.call) { img = img(file); } - var html = ''; + var html = ''; if (img) { html += ' '; } @@ -101,21 +101,27 @@ var FileActions = { var element = $(html); element.data('action', name); //alert(element); - element.on('click',{a:null, elem:parent, actionFunc:actions[name]},actionHandler); + element.on('click', {a: null, elem: parent, actionFunc: actions[name]}, actionHandler); parent.find('a.name>span.fileactions').append(element); } + }; + + $.each(actions, function (name, action) { + if (name !== 'Share') { + addAction(name, action); + } }); + if(actions.Share){ + addAction('Share', actions.Share); + } if (actions['Delete']) { var img = FileActions.icons['Delete']; if (img.call) { img = img(file); } - // NOTE: Temporary fix to allow unsharing of files in root of Shared folder - if ($('#dir').val() == '/Shared') { - var html = ''; - } else if (typeof trashBinApp !== 'undefined' && trashBinApp) { + if (typeof trashBinApp !== 'undefined' && trashBinApp) { var html = ''; } else { var html = ''; @@ -125,7 +131,7 @@ var FileActions = { element.append($('')); } element.data('action', actions['Delete']); - element.on('click',{a:null, elem:parent, actionFunc:actions['Delete']},actionHandler); + element.on('click', {a: null, elem: parent, actionFunc: actions['Delete']}, actionHandler); parent.parent().children().last().append(element); } }, @@ -149,7 +155,7 @@ $(document).ready(function () { } else { var downloadScope = 'file'; } - + if (typeof disableDownloadActions == 'undefined' || !disableDownloadActions) { FileActions.register(downloadScope, 'Download', OC.PERMISSION_READ, function () { return OC.imagePath('core', 'actions/download'); @@ -157,11 +163,11 @@ $(document).ready(function () { window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val()); }); } - - $('#fileList tr').each(function(){ + + $('#fileList tr').each(function () { FileActions.display($(this).children('td.filename')); }); - + }); FileActions.register('all', 'Delete', OC.PERMISSION_DELETE, function () { diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 72b353b48c2c31446cda8793263240aaba79a326..f5f3f3ba0c6900f7b6720d72eb10135a5db30834 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -3,35 +3,92 @@ var FileList={ update:function(fileListHtml) { $('#fileList').empty().html(fileListHtml); }, - addFile:function(name,size,lastModified,loading,hidden){ - var basename, extension, simpleSize, sizeColor, lastModifiedTime, modifiedColor, - img=(loading)?OC.imagePath('core', 'loading.gif'):OC.imagePath('core', 'filetypes/file.png'), - html=''; - if(name.indexOf('.')!=-1){ + createRow:function(type, name, iconurl, linktarget, size, lastModified, permissions){ + var td, simpleSize, basename, extension; + //containing tr + var tr = $('').attr({ + "data-type": type, + "data-size": size, + "data-file": name, + "data-permissions": permissions + }); + // filename td + td = $('').attr({ + "class": "filename", + "style": 'background-image:url('+iconurl+')' + }); + td.append(''); + var link_elem = $('').attr({ + "class": "name", + "href": linktarget + }); + //split extension from filename for non dirs + if (type != 'dir' && name.indexOf('.')!=-1) { basename=name.substr(0,name.lastIndexOf('.')); extension=name.substr(name.lastIndexOf('.')); - }else{ + } else { basename=name; extension=false; } - html+=''; - html+=''+escapeHTML(basename); + var name_span=$('').addClass('nametext').text(basename); + link_elem.append(name_span); if(extension){ - html+=''+escapeHTML(extension)+''; + name_span.append($('').addClass('extension').text(extension)); } - html+=''; - if(size!='Pending'){ + //dirs can show the number of uploaded files + if (type == 'dir') { + link_elem.append($('').attr({ + 'class': 'uploadtext', + 'currentUploads': 0 + })); + } + td.append(link_elem); + tr.append(td); + + //size column + if(size!=t('files', 'Pending')){ simpleSize=simpleFileSize(size); }else{ - simpleSize='Pending'; + simpleSize=t('files', 'Pending'); } - sizeColor = Math.round(200-size/(1024*1024)*2); - lastModifiedTime=Math.round(lastModified.getTime() / 1000); - modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*14); - html+=''+simpleSize+''; - html+=''+relative_modified_date(lastModified.getTime() / 1000)+''; - html+=''; - FileList.insertElement(name,'file',$(html).attr('data-file',name)); + var sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2)); + var lastModifiedTime = Math.round(lastModified.getTime() / 1000); + td = $('').attr({ + "class": "filesize", + "title": humanFileSize(size), + "style": 'color:rgb('+sizeColor+','+sizeColor+','+sizeColor+')' + }).text(simpleSize); + tr.append(td); + + // date column + var modifiedColor = Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5); + td = $('').attr({ "class": "date" }); + td.append($('').attr({ + "class": "modified", + "title": formatDate(lastModified), + "style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')' + }).text( relative_modified_date(lastModified.getTime() / 1000) )); + tr.append(td); + return tr; + }, + addFile:function(name,size,lastModified,loading,hidden){ + var imgurl; + if (loading) { + imgurl = OC.imagePath('core', 'loading.gif'); + } else { + imgurl = OC.imagePath('core', 'filetypes/file.png'); + } + var tr = this.createRow( + 'file', + name, + imgurl, + OC.Router.generate('download', { file: $('#dir').val()+'/'+name }), + size, + lastModified, + $('#permissions').val() + ); + + FileList.insertElement(name, 'file', tr.attr('data-file',name)); var row = $('tr').filterAttr('data-file',name); if(loading){ row.data('loading',true); @@ -44,30 +101,18 @@ var FileList={ FileActions.display(row.find('td.filename')); }, addDir:function(name,size,lastModified,hidden){ - var html, td, link_elem, sizeColor, lastModifiedTime, modifiedColor; - html = $('').attr({ "data-type": "dir", "data-size": size, "data-file": name, "data-permissions": $('#permissions').val()}); - td = $('').attr({"class": "filename", "style": 'background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')' }); - td.append(''); - link_elem = $('').attr({ "class": "name", "href": OC.linkTo('files', 'index.php')+"?dir="+ encodeURIComponent($('#dir').val()+'/'+name).replace(/%2F/g, '/') }); - link_elem.append($('').addClass('nametext').text(name)); - link_elem.append($('').attr({'class': 'uploadtext', 'currentUploads': 0})); - td.append(link_elem); - html.append(td); - if(size!='Pending'){ - simpleSize=simpleFileSize(size); - }else{ - simpleSize='Pending'; - } - sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2)); - lastModifiedTime=Math.round(lastModified.getTime() / 1000); - modifiedColor=Math.round((Math.round((new Date()).getTime() / 1000)-lastModifiedTime)/60/60/24*5); - td = $('').attr({ "class": "filesize", "title": humanFileSize(size), "style": 'color:rgb('+sizeColor+','+sizeColor+','+sizeColor+')'}).text(simpleSize); - html.append(td); - td = $('').attr({ "class": "date" }); - td.append($('').attr({ "class": "modified", "title": formatDate(lastModified), "style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')' }).text( relative_modified_date(lastModified.getTime() / 1000) )); - html.append(td); - FileList.insertElement(name,'dir',html); + var tr = this.createRow( + 'dir', + name, + OC.imagePath('core', 'filetypes/folder.png'), + OC.linkTo('files', 'index.php')+"?dir="+ encodeURIComponent($('#dir').val()+'/'+name).replace(/%2F/g, '/'), + size, + lastModified, + $('#permissions').val() + ); + + FileList.insertElement(name,'dir',tr); var row = $('tr').filterAttr('data-file',name); row.find('td.filename').draggable(dragOptions); row.find('td.filename').droppable(folderDropOptions); @@ -216,9 +261,6 @@ var FileList={ }, replace:function(oldName, newName, isNewFile) { // Finish any existing actions - if (FileList.lastAction || !FileList.useUndo) { - FileList.lastAction(); - } $('tr').filterAttr('data-file', oldName).hide(); $('tr').filterAttr('data-file', newName).hide(); var tr = $('tr').filterAttr('data-file', oldName).clone(); @@ -273,8 +315,8 @@ var FileList={ do_delete:function(files){ if(files.substr){ files=[files]; - } - for (var i in files) { + } + for (var i=0; i'; @@ -292,7 +334,7 @@ var FileList={ if (result.status == 'success') { $.each(files,function(index,file){ var files = $('tr').filterAttr('data-file',file); - files.hide(); + files.remove(); files.find('input[type="checkbox"]').removeAttr('checked'); files.removeClass('selected'); }); @@ -302,7 +344,7 @@ var FileList={ var deleteAction = $('tr').filterAttr('data-file',file).children("td.date").children(".move2trash"); deleteAction[0].outerHTML = oldHTML; }); - } + } }); } }; @@ -321,7 +363,6 @@ $(document).ready(function(){ // Delete the new uploaded file FileList.deleteCanceled = false; FileList.deleteFiles = [FileList.replaceOldName]; - FileList.finishDelete(null, true); } else { $('tr').filterAttr('data-file', FileList.replaceOldName).show(); } @@ -348,7 +389,6 @@ $(document).ready(function(){ if ($('#notification').data('isNewFile')) { FileList.deleteCanceled = false; FileList.deleteFiles = [$('#notification').data('oldName')]; - FileList.finishDelete(null, true); } }); FileList.useUndo=(window.onbeforeunload)?true:false; diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 7c377afc6203d0f2ea782537aa0291d57396d252..464f77036857c6ec85982976cf5bfc92a8848f89 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -114,7 +114,7 @@ $(document).ready(function() { $(this).parent().children('#file_upload_start').trigger('click'); return false; }); - + // Show trash bin $('#trash a').live('click', function() { window.location=OC.filePath('files_trashbin', '', 'index.php'); @@ -162,9 +162,10 @@ $(document).ready(function() { var tr=$('tr').filterAttr('data-file',filename); var renaming=tr.data('renaming'); if(!renaming && !FileList.isLoading(filename)){ - var mime=$(this).parent().parent().data('mime'); - var type=$(this).parent().parent().data('type'); - var permissions = $(this).parent().parent().data('permissions'); + FileActions.currentFile = $(this).parent(); + var mime=FileActions.getCurrentMimeType(); + var type=FileActions.getCurrentType(); + var permissions = FileActions.getCurrentPermissions(); var action=FileActions.getDefault(mime,type, permissions); if(action){ event.preventDefault(); @@ -262,12 +263,6 @@ $(document).ready(function() { return; } totalSize+=files[i].size; - if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file - FileList.finishDelete(function(){ - $('#file_upload_start').change(); - }); - return; - } } } if(totalSize>$('#max_upload').val()){ @@ -529,7 +524,7 @@ $(document).ready(function() { crumb.text(text); } - $(window).click(function(){ + $(document).click(function(){ $('#new>ul').hide(); $('#new').removeClass('active'); $('#new li').each(function(i,element){ @@ -600,7 +595,7 @@ $(document).ready(function() { var date=new Date(); FileList.addFile(name,0,date,false,hidden); var tr=$('tr').filterAttr('data-file',name); - tr.data('mime','text/plain').data('id',result.data.id); + tr.attr('data-mime','text/plain'); tr.attr('data-id', result.data.id); getMimeIcon('text/plain',function(path){ tr.find('td.filename').attr('style','background-image:url('+path+')'); @@ -691,9 +686,10 @@ $(document).ready(function() { breadcrumbsWidth += $(breadcrumb).get(0).offsetWidth; }); - if ($('#controls .actions').length > 0) { - breadcrumbsWidth += $('#controls .actions').get(0).offsetWidth; - } + + $.each($('#controls .actions>div'), function(index, action) { + breadcrumbsWidth += $(action).get(0).offsetWidth; + }); function resizeBreadcrumbs(firstRun) { var width = $(this).width(); @@ -821,26 +817,26 @@ var createDragShadow = function(event){ //select dragged file $(event.target).parents('tr').find('td input:first').prop('checked',true); } - + var selectedFiles = getSelectedFiles(); - + if (!isDragSelected && selectedFiles.length == 1) { //revert the selection $(event.target).parents('tr').find('td input:first').prop('checked',false); } - + //also update class when we dragged more than one file if (selectedFiles.length > 1) { $(event.target).parents('tr').addClass('selected'); } - + // build dragshadow var dragshadow = $('
'); var tbody = $(''); dragshadow.append(tbody); - + var dir=$('#dir').val(); - + $(selectedFiles).each(function(i,elem){ var newtr = $('' +''+elem.name+''+humanFileSize(elem.size)+'' @@ -854,7 +850,7 @@ var createDragShadow = function(event){ }); } }); - + return dragshadow; } @@ -867,6 +863,10 @@ var dragOptions={ $('#fileList tr td.filename').addClass('ui-draggable'); } } +// sane browsers support using the distance option +if ( ! $.browser.msie) { + dragOptions['distance'] = 20; +} var folderDropOptions={ drop: function( event, ui ) { @@ -874,9 +874,9 @@ var folderDropOptions={ if ($(event.target).parents('tr').find('td input:first').prop('checked') === true) { return false; } - + var target=$.trim($(this).find('.nametext').text()); - + var files = ui.helper.find('tr'); $(files).each(function(i,row){ var dir = $(row).data('dir'); diff --git a/apps/files/js/jquery-visibility.js b/apps/files/js/jquery-visibility.js index a824bf6873076b284def2bd5a47c1d6ae52a5611..18f57d1f2bd19eaac9f3f2fa24c6833b1de46630 100644 --- a/apps/files/js/jquery-visibility.js +++ b/apps/files/js/jquery-visibility.js @@ -3,7 +3,7 @@ var prefix, property, -// In Opera, `'onfocusin' in document == true`, hence the extra `hasFocus` check to detect IE-like behavior + // In Opera, `'onfocusin' in document == true`, hence the extra `hasFocus` check to detect IE-like behavior eventName = 'onfocusin' in document && 'hasFocus' in document ? 'focusin focusout' : 'focus blur', prefixes = ['', 'moz', 'ms', 'o', 'webkit'], $support = $.support, @@ -19,12 +19,11 @@ $(/blur$/.test(eventName) ? window : document).on(eventName, function (event) { var type = event.type, - originalEvent = event.originalEvent, - toElement = originalEvent.toElement; -// If it’s a `{focusin,focusout}` event (IE), `fromElement` and `toElement` should both be `null` or `undefined`; -// else, the page visibility hasn’t changed, but the user just clicked somewhere in the doc. -// In IE9, we need to check the `relatedTarget` property instead. - if (!/^focus./.test(type) || (toElement == undefined && originalEvent.fromElement == undefined && originalEvent.relatedTarget == undefined)) { + originalEvent = event.originalEvent; + // If it’s a `{focusin,focusout}` event (IE), `fromElement` and `toElement` should both be `null` or `undefined`; + // else, the page visibility hasn’t changed, but the user just clicked somewhere in the doc. + // In IE9, we need to check the `relatedTarget` property instead. + if (!/^focus./.test(type) || originalEvent == undefined || (originalEvent.toElement == undefined && originalEvent.fromElement == undefined && originalEvent.relatedTarget == undefined)) { $event.trigger((property && document[property] || /^(?:blur|focusout)$/.test(type) ? 'hide' : 'show') + '.visibility'); } }); diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php index b741815be458d781049689f6504260952e9b4af4..ce8a34acedb3ef8462d1659bde80f0145b526d14 100644 --- a/apps/files/l10n/ar.php +++ b/apps/files/l10n/ar.php @@ -5,7 +5,6 @@ "No file was uploaded" => "لم يتم ترفيع أي من الملفات", "Missing a temporary folder" => "المجلد المؤقت غير موجود", "Files" => "الملفات", -"Unshare" => "إلغاء مشاركة", "Delete" => "محذوف", "Close" => "إغلق", "Name" => "الاسم", @@ -19,6 +18,7 @@ "Folder" => "مجلد", "Nothing in here. Upload something!" => "لا يوجد شيء هنا. إرفع بعض الملفات!", "Download" => "تحميل", +"Unshare" => "إلغاء مشاركة", "Upload too large" => "حجم الترفيع أعلى من المسموح", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم." ); diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php index ae49f5169992c6cd93d22c41dd9da060f90afc49..f16a83bdfa370ee82b714a126c9db5951afd9c4d 100644 --- a/apps/files/l10n/bg_BG.php +++ b/apps/files/l10n/bg_BG.php @@ -1,21 +1,32 @@ "Липсва временна папка", +"Failed to write to disk" => "Възникна проблем при запис в диска", +"Invalid directory." => "Невалидна директория.", "Files" => "Файлове", "Delete" => "Изтриване", "Rename" => "Преименуване", +"Pending" => "Чакащо", "replace" => "препокриване", "cancel" => "отказ", "undo" => "възтановяване", +"Upload Error" => "Възникна грешка при качването", +"Close" => "Затвори", "Upload cancelled." => "Качването е спряно.", "Name" => "Име", "Size" => "Размер", "Modified" => "Променено", +"1 folder" => "1 папка", +"{count} folders" => "{count} папки", +"1 file" => "1 файл", +"{count} files" => "{count} файла", "Upload" => "Качване", "Maximum upload size" => "Максимален размер за качване", "0 is unlimited" => "Ползвайте 0 за без ограничения", "Save" => "Запис", "New" => "Ново", +"Text file" => "Текстов файл", "Folder" => "Папка", +"Cancel upload" => "Спри качването", "Nothing in here. Upload something!" => "Няма нищо тук. Качете нещо.", "Download" => "Изтегляне", "Upload too large" => "Файлът който сте избрали за качване е прекалено голям" diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php index 3d676810c7c8817b4af1d2aae19f7bebd94b4174..05cfb9f1381e9d95889789932b21318e19805f64 100644 --- a/apps/files/l10n/bn_BD.php +++ b/apps/files/l10n/bn_BD.php @@ -1,4 +1,7 @@ "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", +"Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", +"Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না", "No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।", "There is no error, the file uploaded with success" => "কোন সমস্যা নেই, ফাইল আপলোড সুসম্পন্ন হয়েছে", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", @@ -7,12 +10,11 @@ "No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", "Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে", "Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", -"Not enough space available" => "যথেষ্ঠ পরিমাণ স্থান নেই", "Invalid directory." => "ভুল ডিরেক্টরি", "Files" => "ফাইল", -"Unshare" => "ভাগাভাগি বাতিল ", "Delete" => "মুছে ফেল", "Rename" => "পূনঃনামকরণ", +"Pending" => "মুলতুবি", "{new_name} already exists" => "{new_name} টি বিদ্যমান", "replace" => "প্রতিস্থাপন", "suggest name" => "নাম সুপারিশ করুন", @@ -26,7 +28,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "আপনার ফাইলটি আপলোড করা সম্ভব হলো না, কেননা এটি হয় একটি ফোল্ডার কিংবা এর আকার ০ বাইট", "Upload Error" => "আপলোড করতে সমস্যা ", "Close" => "বন্ধ", -"Pending" => "মুলতুবি", "1 file uploading" => "১টি ফাইল আপলোড করা হচ্ছে", "{count} files uploading" => "{count} টি ফাইল আপলোড করা হচ্ছে", "Upload cancelled." => "আপলোড বাতিল করা হয়েছে।", @@ -56,6 +57,7 @@ "Cancel upload" => "আপলোড বাতিল কর", "Nothing in here. Upload something!" => "এখানে কিছুই নেই। কিছু আপলোড করুন !", "Download" => "ডাউনলোড", +"Unshare" => "ভাগাভাগি বাতিল ", "Upload too large" => "আপলোডের আকারটি অনেক বড়", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ", "Files are being scanned, please wait." => "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index 22b684fcfd797271af05508519fa751fa387201e..5869b7df8ce0c541dc662d631f6224a4f24a596b 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -1,4 +1,7 @@ "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", +"Could not move %s" => " No s'ha pogut moure %s", +"Unable to rename file" => "No es pot canviar el nom del fitxer", "No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut", "There is no error, the file uploaded with success" => "El fitxer s'ha pujat correctament", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "El fitxer no s'ha pujat", "Missing a temporary folder" => "S'ha perdut un fitxer temporal", "Failed to write to disk" => "Ha fallat en escriure al disc", -"Not enough space available" => "No hi ha prou espai disponible", +"Not enough storage available" => "No hi ha prou espai disponible", "Invalid directory." => "Directori no vàlid.", "Files" => "Fitxers", -"Unshare" => "Deixa de compartir", +"Delete permanently" => "Esborra permanentment", "Delete" => "Suprimeix", "Rename" => "Reanomena", +"Pending" => "Pendents", "{new_name} already exists" => "{new_name} ja existeix", "replace" => "substitueix", "suggest name" => "sugereix un nom", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes", "Upload Error" => "Error en la pujada", "Close" => "Tanca", -"Pending" => "Pendents", "1 file uploading" => "1 fitxer pujant", "{count} files uploading" => "{count} fitxers en pujada", "Upload cancelled." => "La pujada s'ha cancel·lat.", @@ -57,10 +60,11 @@ "Text file" => "Fitxer de text", "Folder" => "Carpeta", "From link" => "Des d'enllaç", -"Trash" => "Esborra", +"Deleted files" => "Fitxers esborrats", "Cancel upload" => "Cancel·la la pujada", "Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!", "Download" => "Baixa", +"Unshare" => "Deixa de compartir", "Upload too large" => "La pujada és massa gran", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor", "Files are being scanned, please wait." => "S'estan escanejant els fitxers, espereu", diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index f0beda9f55c186baabc9a8edcecef7a42568ed99..7eebd649cdeb53c9ec560392c4034756fddac3d2 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -1,4 +1,7 @@ "Nelze přesunout %s - existuje soubor se stejným názvem", +"Could not move %s" => "Nelze přesunout %s", +"Unable to rename file" => "Nelze přejmenovat soubor", "No file was uploaded. Unknown error" => "Soubor nebyl odeslán. Neznámá chyba", "There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Žádný soubor nebyl odeslán", "Missing a temporary folder" => "Chybí adresář pro dočasné soubory", "Failed to write to disk" => "Zápis na disk selhal", -"Not enough space available" => "Nedostatek dostupného místa", +"Not enough storage available" => "Nedostatek dostupného úložného prostoru", "Invalid directory." => "Neplatný adresář", "Files" => "Soubory", -"Unshare" => "Zrušit sdílení", +"Delete permanently" => "Trvale odstranit", "Delete" => "Smazat", "Rename" => "Přejmenovat", +"Pending" => "Čekající", "{new_name} already exists" => "{new_name} již existuje", "replace" => "nahradit", "suggest name" => "navrhnout název", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů", "Upload Error" => "Chyba odesílání", "Close" => "Zavřít", -"Pending" => "Čekající", "1 file uploading" => "odesílá se 1 soubor", "{count} files uploading" => "odesílám {count} souborů", "Upload cancelled." => "Odesílání zrušeno.", @@ -57,10 +60,11 @@ "Text file" => "Textový soubor", "Folder" => "Složka", "From link" => "Z odkazu", -"Trash" => "Koš", +"Deleted files" => "Odstraněné soubory", "Cancel upload" => "Zrušit odesílání", "Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.", "Download" => "Stáhnout", +"Unshare" => "Zrušit sdílení", "Upload too large" => "Odeslaný soubor je příliš velký", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", "Files are being scanned, please wait." => "Soubory se prohledávají, prosím čekejte.", diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index 71a5a56de57acb02c2ce801223c8c34b82c76fdf..8b4ad675e0f4adf583590857253268a071ea2b1e 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -1,4 +1,7 @@ "Kunne ikke flytte %s - der findes allerede en fil med dette navn", +"Could not move %s" => "Kunne ikke flytte %s", +"Unable to rename file" => "Kunne ikke omdøbe fil", "No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", "There is no error, the file uploaded with success" => "Der er ingen fejl, filen blev uploadet med success", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", @@ -7,11 +10,13 @@ "No file was uploaded" => "Ingen fil blev uploadet", "Missing a temporary folder" => "Mangler en midlertidig mappe", "Failed to write to disk" => "Fejl ved skrivning til disk.", +"Not enough storage available" => "Der er ikke nok plads til rådlighed", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", -"Unshare" => "Fjern deling", +"Delete permanently" => "Slet permanent", "Delete" => "Slet", "Rename" => "Omdøb", +"Pending" => "Afventer", "{new_name} already exists" => "{new_name} eksisterer allerede", "replace" => "erstat", "suggest name" => "foreslå navn", @@ -19,6 +24,7 @@ "replaced {new_name}" => "erstattede {new_name}", "undo" => "fortryd", "replaced {new_name} with {old_name}" => "erstattede {new_name} med {old_name}", +"perform delete operation" => "udfør slet operation", "'.' is an invalid file name." => "'.' er et ugyldigt filnavn.", "File name cannot be empty." => "Filnavnet kan ikke stå tomt.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", @@ -28,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Kunne ikke uploade din fil, da det enten er en mappe eller er tom", "Upload Error" => "Fejl ved upload", "Close" => "Luk", -"Pending" => "Afventer", "1 file uploading" => "1 fil uploades", "{count} files uploading" => "{count} filer uploades", "Upload cancelled." => "Upload afbrudt.", @@ -58,8 +63,10 @@ "Cancel upload" => "Fortryd upload", "Nothing in here. Upload something!" => "Her er tomt. Upload noget!", "Download" => "Download", +"Unshare" => "Fjern deling", "Upload too large" => "Upload for stor", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.", "Files are being scanned, please wait." => "Filerne bliver indlæst, vent venligst.", -"Current scanning" => "Indlæser" +"Current scanning" => "Indlæser", +"Upgrading filesystem cache..." => "Opgraderer filsystems cachen..." ); diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index 55ea24baa2fc0e259d20398b46733a3f5886f0e9..20fdd2f8153d795217a72e8e19e8f5d84a1f550a 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -1,4 +1,7 @@ "%s konnte nicht verschoben werden - eine Datei mit diesem Namen existiert bereits.", +"Could not move %s" => "%s konnte nicht verschoben werden", +"Unable to rename file" => "Die Datei konnte nicht umbenannt werden", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Datei fehlerfrei hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -7,12 +10,13 @@ "No file was uploaded" => "Es wurde keine Datei hochgeladen.", "Missing a temporary folder" => "Temporärer Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough space available" => "Nicht genug Speicherplatz verfügbar", +"Not enough storage available" => "Nicht genug Speicherplatz verfügbar", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", -"Unshare" => "Nicht mehr freigeben", +"Delete permanently" => "Permanent löschen", "Delete" => "Löschen", "Rename" => "Umbenennen", +"Pending" => "Ausstehend", "{new_name} already exists" => "{new_name} existiert bereits", "replace" => "ersetzen", "suggest name" => "Name vorschlagen", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.", "Upload Error" => "Fehler beim Upload", "Close" => "Schließen", -"Pending" => "Ausstehend", "1 file uploading" => "Eine Datei wird hoch geladen", "{count} files uploading" => "{count} Dateien werden hochgeladen", "Upload cancelled." => "Upload abgebrochen.", @@ -57,10 +60,11 @@ "Text file" => "Textdatei", "Folder" => "Ordner", "From link" => "Von einem Link", -"Trash" => "Papierkorb", +"Deleted files" => "Gelöschte Dateien", "Cancel upload" => "Upload abbrechen", "Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", "Download" => "Herunterladen", +"Unshare" => "Nicht mehr freigeben", "Upload too large" => "Upload zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 18f3ee380282c0a7550bcab87d95308e1ee9ffae..1462efdd5d6eb7ba705aac507e09d46c4b03c24c 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -1,4 +1,7 @@ "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits", +"Could not move %s" => "Konnte %s nicht verschieben", +"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -7,12 +10,13 @@ "No file was uploaded" => "Es wurde keine Datei hochgeladen.", "Missing a temporary folder" => "Der temporäre Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough space available" => "Nicht genügend Speicherplatz verfügbar", +"Not enough storage available" => "Nicht genug Speicher vorhanden.", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", -"Unshare" => "Nicht mehr freigeben", +"Delete permanently" => "Entgültig löschen", "Delete" => "Löschen", "Rename" => "Umbenennen", +"Pending" => "Ausstehend", "{new_name} already exists" => "{new_name} existiert bereits", "replace" => "ersetzen", "suggest name" => "Name vorschlagen", @@ -20,7 +24,7 @@ "replaced {new_name}" => "{new_name} wurde ersetzt", "undo" => "rückgängig machen", "replaced {new_name} with {old_name}" => "{old_name} wurde ersetzt durch {new_name}", -"perform delete operation" => "Führe das Löschen aus", +"perform delete operation" => "führe das Löschen aus", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.", "Upload Error" => "Fehler beim Upload", "Close" => "Schließen", -"Pending" => "Ausstehend", "1 file uploading" => "1 Datei wird hochgeladen", "{count} files uploading" => "{count} Dateien wurden hochgeladen", "Upload cancelled." => "Upload abgebrochen.", @@ -57,13 +60,14 @@ "Text file" => "Textdatei", "Folder" => "Ordner", "From link" => "Von einem Link", -"Trash" => "Abfall", +"Deleted files" => "Gelöschte Dateien", "Cancel upload" => "Upload abbrechen", "Nothing in here. Upload something!" => "Alles leer. Bitte laden Sie etwas hoch!", "Download" => "Herunterladen", +"Unshare" => "Nicht mehr freigeben", "Upload too large" => "Der Upload ist zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", "Current scanning" => "Scanne", -"Upgrading filesystem cache..." => "Aktualisiere den Dateisystem-Cache" +"Upgrading filesystem cache..." => "Aktualisiere den Dateisystem-Cache..." ); diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 7b458bf35dd03db811dfda67724226f8290b31d4..541ec5ba8ae5a6a93eff1995e08c8a25189fe61e 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -1,4 +1,7 @@ "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", +"Could not move %s" => "Αδυναμία μετακίνησης του %s", +"Unable to rename file" => "Αδυναμία μετονομασίας αρχείου", "No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", "There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το απεσταλμένο αρχείο ξεπερνά την οδηγία upload_max_filesize στο php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε", "Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", "Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο", -"Not enough space available" => "Δεν υπάρχει αρκετός διαθέσιμος χώρος", +"Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος", "Invalid directory." => "Μη έγκυρος φάκελος.", "Files" => "Αρχεία", -"Unshare" => "Διακοπή κοινής χρήσης", +"Delete permanently" => "Μόνιμη διαγραφή", "Delete" => "Διαγραφή", "Rename" => "Μετονομασία", +"Pending" => "Εκκρεμεί", "{new_name} already exists" => "{new_name} υπάρχει ήδη", "replace" => "αντικατέστησε", "suggest name" => "συνιστώμενο όνομα", @@ -20,6 +24,7 @@ "replaced {new_name}" => "{new_name} αντικαταστάθηκε", "undo" => "αναίρεση", "replaced {new_name} with {old_name}" => "αντικαταστάθηκε το {new_name} με {old_name}", +"perform delete operation" => "εκτέλεση διαδικασία διαγραφής", "'.' is an invalid file name." => "'.' είναι μη έγκυρο όνομα αρχείου.", "File name cannot be empty." => "Το όνομα αρχείου δεν πρέπει να είναι κενό.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται.", @@ -29,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes", "Upload Error" => "Σφάλμα Αποστολής", "Close" => "Κλείσιμο", -"Pending" => "Εκκρεμεί", "1 file uploading" => "1 αρχείο ανεβαίνει", "{count} files uploading" => "{count} αρχεία ανεβαίνουν", "Upload cancelled." => "Η αποστολή ακυρώθηκε.", @@ -56,11 +60,14 @@ "Text file" => "Αρχείο κειμένου", "Folder" => "Φάκελος", "From link" => "Από σύνδεσμο", +"Deleted files" => "Διαγραμμένα αρχεία", "Cancel upload" => "Ακύρωση αποστολής", -"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!", +"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Μεταφορτώστε κάτι!", "Download" => "Λήψη", +"Unshare" => "Διακοπή κοινής χρήσης", "Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", "Files are being scanned, please wait." => "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε", -"Current scanning" => "Τρέχουσα αναζήτηση " +"Current scanning" => "Τρέχουσα αναζήτηση ", +"Upgrading filesystem cache..." => "Αναβάθμιση μνήμης cache του συστήματος αρχείων..." ); diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index a510d47ad6c1d1dfc6d43b6c8ca55a5267180291..b943244f1ae74a77bb2559e4e66f544a756f66dd 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -1,4 +1,7 @@ "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", +"Could not move %s" => "Ne eblis movi %s", +"Unable to rename file" => "Ne eblis alinomigi dosieron", "No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.", "There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", @@ -7,12 +10,11 @@ "No file was uploaded" => "Neniu dosiero estas alŝutita", "Missing a temporary folder" => "Mankas tempa dosierujo", "Failed to write to disk" => "Malsukcesis skribo al disko", -"Not enough space available" => "Ne haveblas sufiĉa spaco", "Invalid directory." => "Nevalida dosierujo.", "Files" => "Dosieroj", -"Unshare" => "Malkunhavigi", "Delete" => "Forigi", "Rename" => "Alinomigi", +"Pending" => "Traktotaj", "{new_name} already exists" => "{new_name} jam ekzistas", "replace" => "anstataŭigi", "suggest name" => "sugesti nomon", @@ -27,7 +29,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn", "Upload Error" => "Alŝuta eraro", "Close" => "Fermi", -"Pending" => "Traktotaj", "1 file uploading" => "1 dosiero estas alŝutata", "{count} files uploading" => "{count} dosieroj alŝutatas", "Upload cancelled." => "La alŝuto nuliĝis.", @@ -57,6 +58,7 @@ "Cancel upload" => "Nuligi alŝuton", "Nothing in here. Upload something!" => "Nenio estas ĉi tie. Alŝutu ion!", "Download" => "Elŝuti", +"Unshare" => "Malkunhavigi", "Upload too large" => "Elŝuto tro larĝa", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.", "Files are being scanned, please wait." => "Dosieroj estas skanataj, bonvolu atendi.", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index 201e731179a86c369a18462ca1440d3b4aca388d..3c6d25722e70728dbbf48f9c1ed226eeeff86ddb 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -1,4 +1,7 @@ "No se puede mover %s - Ya existe un archivo con ese nombre", +"Could not move %s" => "No se puede mover %s", +"Unable to rename file" => "No se puede renombrar el archivo", "No file was uploaded. Unknown error" => "Fallo no se subió el fichero", "There is no error, the file uploaded with success" => "No se ha producido ningún error, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentas subir sobrepasa el tamaño definido por la variable upload_max_filesize en php.ini", @@ -7,12 +10,13 @@ "No file was uploaded" => "No se ha subido ningún archivo", "Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "La escritura en disco ha fallado", -"Not enough space available" => "No hay suficiente espacio disponible", +"Not enough storage available" => "No hay suficiente espacio disponible", "Invalid directory." => "Directorio invalido.", "Files" => "Archivos", -"Unshare" => "Dejar de compartir", +"Delete permanently" => "Eliminar permanentemente", "Delete" => "Eliminar", "Rename" => "Renombrar", +"Pending" => "Pendiente", "{new_name} already exists" => "{new_name} ya existe", "replace" => "reemplazar", "suggest name" => "sugerir nombre", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes", "Upload Error" => "Error al subir el archivo", "Close" => "cerrrar", -"Pending" => "Pendiente", "1 file uploading" => "subiendo 1 archivo", "{count} files uploading" => "Subiendo {count} archivos", "Upload cancelled." => "Subida cancelada.", @@ -57,10 +60,11 @@ "Text file" => "Archivo de texto", "Folder" => "Carpeta", "From link" => "Desde el enlace", -"Trash" => "Basura", +"Deleted files" => "Archivos eliminados", "Cancel upload" => "Cancelar subida", "Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!", "Download" => "Descargar", +"Unshare" => "Dejar de compartir", "Upload too large" => "El archivo es demasiado grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index 7c4e8220c7c9add1b940d8e8821a7f7f6c2c7037..1e87eff9ba49ee18c03fecbc43bf1993069c69c0 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -1,4 +1,7 @@ "No se pudo mover %s - Un archivo con este nombre ya existe", +"Could not move %s" => "No se pudo mover %s ", +"Unable to rename file" => "No fue posible cambiar el nombre al archivo", "No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido", "There is no error, the file uploaded with success" => "No se han producido errores, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "El archivo no fue subido", "Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "Error al escribir en el disco", -"Not enough space available" => "No hay suficiente espacio disponible", +"Not enough storage available" => "No hay suficiente capacidad de almacenamiento", "Invalid directory." => "Directorio invalido.", "Files" => "Archivos", -"Unshare" => "Dejar de compartir", +"Delete permanently" => "Borrar de manera permanente", "Delete" => "Borrar", "Rename" => "Cambiar nombre", +"Pending" => "Pendiente", "{new_name} already exists" => "{new_name} ya existe", "replace" => "reemplazar", "suggest name" => "sugerir nombre", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes", "Upload Error" => "Error al subir el archivo", "Close" => "Cerrar", -"Pending" => "Pendiente", "1 file uploading" => "Subiendo 1 archivo", "{count} files uploading" => "Subiendo {count} archivos", "Upload cancelled." => "La subida fue cancelada", @@ -57,10 +60,11 @@ "Text file" => "Archivo de texto", "Folder" => "Carpeta", "From link" => "Desde enlace", -"Trash" => "Papelera", +"Deleted files" => "Archivos Borrados", "Cancel upload" => "Cancelar subida", "Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!", "Download" => "Descargar", +"Unshare" => "Dejar de compartir", "Upload too large" => "El archivo es demasiado grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá.", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index 54dd7cfdc560ad5f72c481d078657989f3cd4b2f..3ec7cbb1a64d4349cf2e254d10a7c6fef06fd64b 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -1,4 +1,6 @@ "%s liigutamine ebaõnnestus", +"Unable to rename file" => "Faili ümbernimetamine ebaõnnestus", "No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga", "There is no error, the file uploaded with success" => "Ühtegi viga pole, fail on üles laetud", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üles laetud faili suurus ületab HTML vormis määratud upload_max_filesize suuruse", @@ -6,10 +8,13 @@ "No file was uploaded" => "Ühtegi faili ei laetud üles", "Missing a temporary folder" => "Ajutiste failide kaust puudub", "Failed to write to disk" => "Kettale kirjutamine ebaõnnestus", +"Not enough storage available" => "Saadaval pole piisavalt ruumi", +"Invalid directory." => "Vigane kaust.", "Files" => "Failid", -"Unshare" => "Lõpeta jagamine", +"Delete permanently" => "Kustuta jäädavalt", "Delete" => "Kustuta", "Rename" => "ümber", +"Pending" => "Ootel", "{new_name} already exists" => "{new_name} on juba olemas", "replace" => "asenda", "suggest name" => "soovita nime", @@ -17,11 +22,12 @@ "replaced {new_name}" => "asendatud nimega {new_name}", "undo" => "tagasi", "replaced {new_name} with {old_name}" => "asendas nime {old_name} nimega {new_name}", +"'.' is an invalid file name." => "'.' on vigane failinimi.", +"File name cannot be empty." => "Faili nimi ei saa olla tühi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", "Unable to upload your file as it is a directory or has 0 bytes" => "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti", "Upload Error" => "Üleslaadimise viga", "Close" => "Sulge", -"Pending" => "Ootel", "1 file uploading" => "1 faili üleslaadimisel", "{count} files uploading" => "{count} faili üleslaadimist", "Upload cancelled." => "Üleslaadimine tühistati.", @@ -50,6 +56,7 @@ "Cancel upload" => "Tühista üleslaadimine", "Nothing in here. Upload something!" => "Siin pole midagi. Lae midagi üles!", "Download" => "Lae alla", +"Unshare" => "Lõpeta jagamine", "Upload too large" => "Üleslaadimine on liiga suur", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.", "Files are being scanned, please wait." => "Faile skannitakse, palun oota", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 6f4c55f4846040885584a6d40e7c121d7c4a8135..796f1c4009d32c3da7061ca90ccfdfa1ae8863de 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -1,4 +1,7 @@ "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", +"Could not move %s" => "Ezin dira fitxategiak mugitu %s", +"Unable to rename file" => "Ezin izan da fitxategia berrizendatu", "No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna", "There is no error, the file uploaded with success" => "Ez da arazorik izan, fitxategia ongi igo da", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Ez da fitxategirik igo", "Missing a temporary folder" => "Aldi baterako karpeta falta da", "Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", -"Not enough space available" => "Ez dago leku nahikorik.", +"Not enough storage available" => "Ez dago behar aina leku erabilgarri,", "Invalid directory." => "Baliogabeko karpeta.", "Files" => "Fitxategiak", -"Unshare" => "Ez elkarbanatu", +"Delete permanently" => "Ezabatu betirako", "Delete" => "Ezabatu", "Rename" => "Berrizendatu", +"Pending" => "Zain", "{new_name} already exists" => "{new_name} dagoeneko existitzen da", "replace" => "ordeztu", "suggest name" => "aholkatu izena", @@ -20,6 +24,7 @@ "replaced {new_name}" => "ordezkatua {new_name}", "undo" => "desegin", "replaced {new_name} with {old_name}" => " {new_name}-k {old_name} ordezkatu du", +"perform delete operation" => "Ezabatu", "'.' is an invalid file name." => "'.' ez da fitxategi izen baliogarria.", "File name cannot be empty." => "Fitxategi izena ezin da hutsa izan.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", @@ -29,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu", "Upload Error" => "Igotzean errore bat suertatu da", "Close" => "Itxi", -"Pending" => "Zain", "1 file uploading" => "fitxategi 1 igotzen", "{count} files uploading" => "{count} fitxategi igotzen", "Upload cancelled." => "Igoera ezeztatuta", @@ -56,11 +60,14 @@ "Text file" => "Testu fitxategia", "Folder" => "Karpeta", "From link" => "Estekatik", +"Deleted files" => "Ezabatutako fitxategiak", "Cancel upload" => "Ezeztatu igoera", "Nothing in here. Upload something!" => "Ez dago ezer. Igo zerbait!", "Download" => "Deskargatu", +"Unshare" => "Ez elkarbanatu", "Upload too large" => "Igotakoa handiegia da", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.", "Files are being scanned, please wait." => "Fitxategiak eskaneatzen ari da, itxoin mezedez.", -"Current scanning" => "Orain eskaneatzen ari da" +"Current scanning" => "Orain eskaneatzen ari da", +"Upgrading filesystem cache..." => "Fitxategi sistemaren katxea eguneratzen..." ); diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php index a4181c6ff53d3d1be0f3b1590bd8bcb2bdc8a1ef..d4cbb99e10aa2edb6bae15b2cd5700f846b14643 100644 --- a/apps/files/l10n/fa.php +++ b/apps/files/l10n/fa.php @@ -1,4 +1,7 @@ "%s نمی تواند حرکت کند - در حال حاضر پرونده با این نام وجود دارد. ", +"Could not move %s" => "%s نمی تواند حرکت کند ", +"Unable to rename file" => "قادر به تغییر نام پرونده نیست.", "No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس", "There is no error, the file uploaded with success" => "هیچ خطایی وجود ندارد فایل با موفقیت بار گذاری شد", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", @@ -7,12 +10,11 @@ "No file was uploaded" => "هیچ فایلی بارگذاری نشده", "Missing a temporary folder" => "یک پوشه موقت گم شده است", "Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", -"Not enough space available" => "فضای کافی در دسترس نیست", "Invalid directory." => "فهرست راهنما نامعتبر می باشد.", "Files" => "فایل ها", -"Unshare" => "لغو اشتراک", "Delete" => "پاک کردن", "Rename" => "تغییرنام", +"Pending" => "در انتظار", "{new_name} already exists" => "{نام _جدید} در حال حاضر وجود دارد.", "replace" => "جایگزین", "suggest name" => "پیشنهاد نام", @@ -27,7 +29,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد", "Upload Error" => "خطا در بار گذاری", "Close" => "بستن", -"Pending" => "در انتظار", "1 file uploading" => "1 پرونده آپلود شد.", "{count} files uploading" => "{ شمار } فایل های در حال آپلود", "Upload cancelled." => "بار گذاری لغو شد", @@ -57,6 +58,7 @@ "Cancel upload" => "متوقف کردن بار گذاری", "Nothing in here. Upload something!" => "اینجا هیچ چیز نیست.", "Download" => "بارگیری", +"Unshare" => "لغو اشتراک", "Upload too large" => "حجم بارگذاری بسیار زیاد است", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد", "Files are being scanned, please wait." => "پرونده ها در حال بازرسی هستند لطفا صبر کنید", diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index 809a5e5c5544ac65be6615fb3a78b1049693d4d2..ba6e3ecb4a4981877262ae345b85f659a9dbfc64 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -1,4 +1,7 @@ "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", +"Could not move %s" => "Kohteen %s siirto ei onnistunut", +"Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut", "No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe", "There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lähetetty tiedosto ylittää HTML-lomakkeessa määritetyn MAX_FILE_SIZE-arvon ylärajan", @@ -6,12 +9,13 @@ "No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty", "Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa", "Failed to write to disk" => "Levylle kirjoitus epäonnistui", -"Not enough space available" => "Tilaa ei ole riittävästi", +"Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä", "Invalid directory." => "Virheellinen kansio.", "Files" => "Tiedostot", -"Unshare" => "Peru jakaminen", +"Delete permanently" => "Poista pysyvästi", "Delete" => "Poista", "Rename" => "Nimeä uudelleen", +"Pending" => "Odottaa", "{new_name} already exists" => "{new_name} on jo olemassa", "replace" => "korvaa", "suggest name" => "ehdota nimeä", @@ -27,7 +31,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio", "Upload Error" => "Lähetysvirhe.", "Close" => "Sulje", -"Pending" => "Odottaa", "Upload cancelled." => "Lähetys peruttu.", "File upload is in progress. Leaving the page now will cancel the upload." => "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.", "URL cannot be empty." => "Verkko-osoite ei voi olla tyhjä", @@ -51,10 +54,11 @@ "Text file" => "Tekstitiedosto", "Folder" => "Kansio", "From link" => "Linkistä", -"Trash" => "Roskakori", +"Deleted files" => "Poistetut tiedostot", "Cancel upload" => "Peru lähetys", "Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!", "Download" => "Lataa", +"Unshare" => "Peru jakaminen", "Upload too large" => "Lähetettävä tiedosto on liian suuri", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.", "Files are being scanned, please wait." => "Tiedostoja tarkistetaan, odota hetki.", diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 4be699c00175a46dc7de4a5f0269845abe8d1734..e8d65ccb3e5fff5011ecc063271d3fd898753904 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -1,4 +1,7 @@ "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", +"Could not move %s" => "Impossible de déplacer %s", +"Unable to rename file" => "Impossible de renommer le fichier", "No file was uploaded. Unknown error" => "Aucun fichier n'a été chargé. Erreur inconnue", "There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été téléversé avec succès", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Aucun fichier n'a été téléversé", "Missing a temporary folder" => "Il manque un répertoire temporaire", "Failed to write to disk" => "Erreur d'écriture sur le disque", -"Not enough space available" => "Espace disponible insuffisant", +"Not enough storage available" => "Plus assez d'espace de stockage disponible", "Invalid directory." => "Dossier invalide.", "Files" => "Fichiers", -"Unshare" => "Ne plus partager", +"Delete permanently" => "Supprimer de façon définitive", "Delete" => "Supprimer", "Rename" => "Renommer", +"Pending" => "En cours", "{new_name} already exists" => "{new_name} existe déjà", "replace" => "remplacer", "suggest name" => "Suggérer un nom", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet.", "Upload Error" => "Erreur de chargement", "Close" => "Fermer", -"Pending" => "En cours", "1 file uploading" => "1 fichier en cours de téléchargement", "{count} files uploading" => "{count} fichiers téléversés", "Upload cancelled." => "Chargement annulé.", @@ -57,10 +60,11 @@ "Text file" => "Fichier texte", "Folder" => "Dossier", "From link" => "Depuis le lien", -"Trash" => "Corbeille", +"Deleted files" => "Fichiers supprimés", "Cancel upload" => "Annuler l'envoi", "Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)", "Download" => "Télécharger", +"Unshare" => "Ne plus partager", "Upload too large" => "Fichier trop volumineux", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", "Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index a1c0f0a5dd5d40c945e7652a2cc7fead4e0a48d2..202f2becd36fcd4ffe6ca42428e7fb9cf0b8a1dc 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -1,38 +1,45 @@ "Non se subiu ningún ficheiro. Erro descoñecido.", -"There is no error, the file uploaded with success" => "Non hai erros. O ficheiro enviouse correctamente", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro subido excede a directiva indicada polo tamaño_máximo_de_subida de php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado supera a directiva MAX_FILE_SIZE que foi indicada no formulario HTML", +"Could not move %s - File with this name already exists" => "Non se moveu %s - Xa existe un ficheiro con ese nome.", +"Could not move %s" => "Non foi posíbel mover %s", +"Unable to rename file" => "Non é posíbel renomear o ficheiro", +"No file was uploaded. Unknown error" => "Non foi enviado ningún ficheiro. Produciuse un erro descoñecido.", +"There is no error, the file uploaded with success" => "Non se produciu ningún erro. O ficheiro enviouse correctamente", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede a directiva MAX_FILE_SIZE que foi indicada no formulario HTML", "The uploaded file was only partially uploaded" => "O ficheiro enviado foi só parcialmente enviado", "No file was uploaded" => "Non se enviou ningún ficheiro", "Missing a temporary folder" => "Falta un cartafol temporal", -"Failed to write to disk" => "Erro ao escribir no disco", -"Not enough space available" => "O espazo dispoñíbel é insuficiente", +"Failed to write to disk" => "Produciuse un erro ao escribir no disco", +"Not enough storage available" => "Non hai espazo de almacenamento abondo", "Invalid directory." => "O directorio é incorrecto.", "Files" => "Ficheiros", -"Unshare" => "Deixar de compartir", +"Delete permanently" => "Eliminar permanentemente", "Delete" => "Eliminar", -"Rename" => "Mudar o nome", -"{new_name} already exists" => "xa existe un {new_name}", +"Rename" => "Renomear", +"Pending" => "Pendentes", +"{new_name} already exists" => "Xa existe un {new_name}", "replace" => "substituír", "suggest name" => "suxerir nome", "cancel" => "cancelar", "replaced {new_name}" => "substituír {new_name}", "undo" => "desfacer", -"replaced {new_name} with {old_name}" => "substituír {new_name} polo {old_name}", -"'.' is an invalid file name." => "'.' é un nonme de ficheiro non válido", -"File name cannot be empty." => "O nome de ficheiro non pode estar baldeiro", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non válido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non se permiten.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes", -"Upload Error" => "Erro na subida", +"replaced {new_name} with {old_name}" => "substituír {new_name} por {old_name}", +"perform delete operation" => "realizar a operación de eliminación", +"'.' is an invalid file name." => "«.» é un nome de ficheiro incorrecto", +"File name cannot be empty." => "O nome de ficheiro non pode estar baleiro", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*».", +"Your storage is full, files can not be updated or synced anymore!" => "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!", +"Your storage is almost full ({usedSpacePercent}%)" => "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Está a prepararse a súa descarga. Isto pode levar bastante tempo se os ficheiros son grandes.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Non foi posíbel enviar o ficheiro pois ou é un directorio ou ten 0 bytes", +"Upload Error" => "Produciuse un erro no envío", "Close" => "Pechar", -"Pending" => "Pendentes", -"1 file uploading" => "1 ficheiro subíndose", -"{count} files uploading" => "{count} ficheiros subíndose", -"Upload cancelled." => "Subida cancelada.", -"File upload is in progress. Leaving the page now will cancel the upload." => "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida.", -"URL cannot be empty." => "URL non pode quedar baleiro.", -"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de cartafol non válido. O uso de 'Shared' está reservado por Owncloud", +"1 file uploading" => "Enviándose 1 ficheiro", +"{count} files uploading" => "Enviandose {count} ficheiros", +"Upload cancelled." => "Envío cancelado.", +"File upload is in progress. Leaving the page now will cancel the upload." => "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío.", +"URL cannot be empty." => "O URL non pode quedar baleiro.", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de cartafol incorrecto. O uso de «Shared» está reservado por Owncloud", "Name" => "Nome", "Size" => "Tamaño", "Modified" => "Modificado", @@ -42,22 +49,25 @@ "{count} files" => "{count} ficheiros", "Upload" => "Enviar", "File handling" => "Manexo de ficheiro", -"Maximum upload size" => "Tamaño máximo de envío", -"max. possible: " => "máx. posible: ", +"Maximum upload size" => "Tamaño máximo do envío", +"max. possible: " => "máx. posíbel: ", "Needed for multi-file and folder downloads." => "Precísase para a descarga de varios ficheiros e cartafoles.", "Enable ZIP-download" => "Habilitar a descarga-ZIP", "0 is unlimited" => "0 significa ilimitado", -"Maximum input size for ZIP files" => "Tamaño máximo de descarga para os ZIP", +"Maximum input size for ZIP files" => "Tamaño máximo de descarga para os ficheiros ZIP", "Save" => "Gardar", "New" => "Novo", "Text file" => "Ficheiro de texto", "Folder" => "Cartafol", -"From link" => "Dende a ligazón", -"Cancel upload" => "Cancelar a subida", -"Nothing in here. Upload something!" => "Nada por aquí. Envía algo.", +"From link" => "Desde a ligazón", +"Deleted files" => "Ficheiros eliminados", +"Cancel upload" => "Cancelar o envío", +"Nothing in here. Upload something!" => "Aquí non hai nada. Envíe algo.", "Download" => "Descargar", +"Unshare" => "Deixar de compartir", "Upload too large" => "Envío demasiado grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que trata de subir superan o tamaño máximo permitido neste servidor", -"Files are being scanned, please wait." => "Estanse analizando os ficheiros. Agarda.", -"Current scanning" => "Análise actual" +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor", +"Files are being scanned, please wait." => "Estanse analizando os ficheiros. Agarde.", +"Current scanning" => "Análise actual", +"Upgrading filesystem cache..." => "Anovando a caché do sistema de ficheiros..." ); diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php index 94cddca000080bc4a05263b85c594e219108874c..ca2cb14027cd43f3f5db2ba84264bf250946532e 100644 --- a/apps/files/l10n/he.php +++ b/apps/files/l10n/he.php @@ -8,9 +8,10 @@ "Missing a temporary folder" => "תיקייה זמנית חסרה", "Failed to write to disk" => "הכתיבה לכונן נכשלה", "Files" => "קבצים", -"Unshare" => "הסר שיתוף", +"Delete permanently" => "מחק לצמיתות", "Delete" => "מחיקה", "Rename" => "שינוי שם", +"Pending" => "ממתין", "{new_name} already exists" => "{new_name} כבר קיים", "replace" => "החלפה", "suggest name" => "הצעת שם", @@ -22,7 +23,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים", "Upload Error" => "שגיאת העלאה", "Close" => "סגירה", -"Pending" => "ממתין", "1 file uploading" => "קובץ אחד נשלח", "{count} files uploading" => "{count} קבצים נשלחים", "Upload cancelled." => "ההעלאה בוטלה.", @@ -51,6 +51,7 @@ "Cancel upload" => "ביטול ההעלאה", "Nothing in here. Upload something!" => "אין כאן שום דבר. אולי ברצונך להעלות משהו?", "Download" => "הורדה", +"Unshare" => "הסר שיתוף", "Upload too large" => "העלאה גדולה מידי", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.", "Files are being scanned, please wait." => "הקבצים נסרקים, נא להמתין.", diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php index 4f4546aaf07b4e3dae11d26eb3d8371bc34dd247..3516ab8c1e6a76377ca949e19c217fe8013a5ef4 100644 --- a/apps/files/l10n/hr.php +++ b/apps/files/l10n/hr.php @@ -6,9 +6,9 @@ "Missing a temporary folder" => "Nedostaje privremena mapa", "Failed to write to disk" => "Neuspjelo pisanje na disk", "Files" => "Datoteke", -"Unshare" => "Prekini djeljenje", "Delete" => "Briši", "Rename" => "Promjeni ime", +"Pending" => "U tijeku", "replace" => "zamjeni", "suggest name" => "predloži ime", "cancel" => "odustani", @@ -16,7 +16,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nemoguće poslati datoteku jer je prazna ili je direktorij", "Upload Error" => "Pogreška pri slanju", "Close" => "Zatvori", -"Pending" => "U tijeku", "1 file uploading" => "1 datoteka se učitava", "Upload cancelled." => "Slanje poništeno.", "File upload is in progress. Leaving the page now will cancel the upload." => "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje.", @@ -38,6 +37,7 @@ "Cancel upload" => "Prekini upload", "Nothing in here. Upload something!" => "Nema ničega u ovoj mapi. Pošalji nešto!", "Download" => "Preuzmi", +"Unshare" => "Prekini djeljenje", "Upload too large" => "Prijenos je preobiman", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke koje pokušavate prenijeti prelaze maksimalnu veličinu za prijenos datoteka na ovom poslužitelju.", "Files are being scanned, please wait." => "Datoteke se skeniraju, molimo pričekajte.", diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index 86fc0f223f94e1debdd56f16f45daaa016eeb095..7a11c303f5e25b91016218e40fef225db396b66f 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -1,4 +1,7 @@ "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", +"Could not move %s" => "Nem sikerült %s áthelyezése", +"Unable to rename file" => "Nem lehet átnevezni a fájlt", "No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba", "There is no error, the file uploaded with success" => "A fájlt sikerült feltölteni", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", @@ -7,12 +10,13 @@ "No file was uploaded" => "Nem töltődött fel semmi", "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Failed to write to disk" => "Nem sikerült a lemezre történő írás", -"Not enough space available" => "Nincs elég szabad hely", +"Not enough storage available" => "Nincs elég szabad hely.", "Invalid directory." => "Érvénytelen mappa.", "Files" => "Fájlok", -"Unshare" => "Megosztás visszavonása", +"Delete permanently" => "Végleges törlés", "Delete" => "Törlés", "Rename" => "Átnevezés", +"Pending" => "Folyamatban", "{new_name} already exists" => "{new_name} már létezik", "replace" => "írjuk fölül", "suggest name" => "legyen más neve", @@ -20,6 +24,7 @@ "replaced {new_name}" => "a(z) {new_name} állományt kicseréltük", "undo" => "visszavonás", "replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}", +"perform delete operation" => "a törlés végrehajtása", "'.' is an invalid file name." => "'.' fájlnév érvénytelen.", "File name cannot be empty." => "A fájlnév nem lehet semmi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", @@ -29,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű", "Upload Error" => "Feltöltési hiba", "Close" => "Bezárás", -"Pending" => "Folyamatban", "1 file uploading" => "1 fájl töltődik föl", "{count} files uploading" => "{count} fájl töltődik föl", "Upload cancelled." => "A feltöltést megszakítottuk.", @@ -56,11 +60,14 @@ "Text file" => "Szövegfájl", "Folder" => "Mappa", "From link" => "Feltöltés linkről", +"Deleted files" => "Törölt fájlok", "Cancel upload" => "A feltöltés megszakítása", "Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!", "Download" => "Letöltés", +"Unshare" => "Megosztás visszavonása", "Upload too large" => "A feltöltés túl nagy", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.", "Files are being scanned, please wait." => "A fájllista ellenőrzése zajlik, kis türelmet!", -"Current scanning" => "Ellenőrzés alatt" +"Current scanning" => "Ellenőrzés alatt", +"Upgrading filesystem cache..." => "A fájlrendszer gyorsítótárának frissítése zajlik..." ); diff --git a/apps/files/l10n/hy.php b/apps/files/l10n/hy.php new file mode 100644 index 0000000000000000000000000000000000000000..29c0cd8b8d0627dcd2b067b297f902c626f162ef --- /dev/null +++ b/apps/files/l10n/hy.php @@ -0,0 +1,6 @@ + "Ջնջել", +"Close" => "Փակել", +"Save" => "Պահպանել", +"Download" => "Բեռնել" +); diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php index 3ebb9983291dd1dd51920f59a3f851324421a0b9..aff1933e569e9d3b801b5769dcf8d083dbfadf7c 100644 --- a/apps/files/l10n/id.php +++ b/apps/files/l10n/id.php @@ -6,20 +6,23 @@ "Missing a temporary folder" => "Kehilangan folder temporer", "Failed to write to disk" => "Gagal menulis ke disk", "Files" => "Berkas", -"Unshare" => "batalkan berbagi", "Delete" => "Hapus", +"Pending" => "Menunggu", "replace" => "mengganti", "cancel" => "batalkan", "undo" => "batal dikerjakan", "Unable to upload your file as it is a directory or has 0 bytes" => "Gagal mengunggah berkas anda karena berupa direktori atau mempunyai ukuran 0 byte", "Upload Error" => "Terjadi Galat Pengunggahan", "Close" => "tutup", -"Pending" => "Menunggu", "Upload cancelled." => "Pengunggahan dibatalkan.", "URL cannot be empty." => "tautan tidak boleh kosong", "Name" => "Nama", "Size" => "Ukuran", "Modified" => "Dimodifikasi", +"1 folder" => "1 map", +"{count} folders" => "{count} map", +"1 file" => "1 berkas", +"{count} files" => "{count} berkas", "Upload" => "Unggah", "File handling" => "Penanganan berkas", "Maximum upload size" => "Ukuran unggah maksimum", @@ -35,6 +38,7 @@ "Cancel upload" => "Batal mengunggah", "Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!", "Download" => "Unduh", +"Unshare" => "batalkan berbagi", "Upload too large" => "Unggahan terlalu besar", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Berkas yang anda coba unggah melebihi ukuran maksimum untuk pengunggahan berkas di server ini.", "Files are being scanned, please wait." => "Berkas sedang dipindai, silahkan tunggu.", diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php index 43c10ef236e6b17da5255ca2377d190bbe011c93..c0898c555b9f63b158dc087471063d85e292960c 100644 --- a/apps/files/l10n/is.php +++ b/apps/files/l10n/is.php @@ -1,4 +1,7 @@ "Gat ekki fært %s - Skrá með þessu nafni er þegar til", +"Could not move %s" => "Gat ekki fært %s", +"Unable to rename file" => "Gat ekki endurskýrt skrá", "No file was uploaded. Unknown error" => "Engin skrá var send inn. Óþekkt villa.", "There is no error, the file uploaded with success" => "Engin villa, innsending heppnaðist", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Innsend skrá er stærri en upload_max stillingin í php.ini:", @@ -7,12 +10,11 @@ "No file was uploaded" => "Engin skrá skilaði sér", "Missing a temporary folder" => "Vantar bráðabirgðamöppu", "Failed to write to disk" => "Tókst ekki að skrifa á disk", -"Not enough space available" => "Ekki nægt pláss tiltækt", "Invalid directory." => "Ógild mappa.", "Files" => "Skrár", -"Unshare" => "Hætta deilingu", "Delete" => "Eyða", "Rename" => "Endurskýra", +"Pending" => "Bíður", "{new_name} already exists" => "{new_name} er þegar til", "replace" => "yfirskrifa", "suggest name" => "stinga upp á nafni", @@ -26,7 +28,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Innsending á skrá mistókst, hugsanlega sendir þú möppu eða skráin er 0 bæti.", "Upload Error" => "Villa við innsendingu", "Close" => "Loka", -"Pending" => "Bíður", "1 file uploading" => "1 skrá innsend", "{count} files uploading" => "{count} skrár innsendar", "Upload cancelled." => "Hætt við innsendingu.", @@ -56,6 +57,7 @@ "Cancel upload" => "Hætta við innsendingu", "Nothing in here. Upload something!" => "Ekkert hér. Settu eitthvað inn!", "Download" => "Niðurhal", +"Unshare" => "Hætta deilingu", "Upload too large" => "Innsend skrá er of stór", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.", "Files are being scanned, please wait." => "Verið er að skima skrár, vinsamlegast hinkraðu.", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index bb3a5bdf054ddcec2ad3e57321f73b0151b71dfa..33a2fbda7130c207480dfc2927f59b15ccbddd31 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -1,4 +1,7 @@ "Impossibile spostare %s - un file con questo nome esiste già", +"Could not move %s" => "Impossibile spostare %s", +"Unable to rename file" => "Impossibile rinominare il file", "No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto", "There is no error, the file uploaded with success" => "Non ci sono errori, file caricato con successo", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Nessun file è stato caricato", "Missing a temporary folder" => "Cartella temporanea mancante", "Failed to write to disk" => "Scrittura su disco non riuscita", -"Not enough space available" => "Spazio disponibile insufficiente", +"Not enough storage available" => "Spazio di archiviazione insufficiente", "Invalid directory." => "Cartella non valida.", "Files" => "File", -"Unshare" => "Rimuovi condivisione", +"Delete permanently" => "Elimina definitivamente", "Delete" => "Elimina", "Rename" => "Rinomina", +"Pending" => "In corso", "{new_name} already exists" => "{new_name} esiste già", "replace" => "sostituisci", "suggest name" => "suggerisci nome", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte", "Upload Error" => "Errore di invio", "Close" => "Chiudi", -"Pending" => "In corso", "1 file uploading" => "1 file in fase di caricamento", "{count} files uploading" => "{count} file in fase di caricamentoe", "Upload cancelled." => "Invio annullato", @@ -57,10 +60,11 @@ "Text file" => "File di testo", "Folder" => "Cartella", "From link" => "Da collegamento", -"Trash" => "Cestino", +"Deleted files" => "File eliminati", "Cancel upload" => "Annulla invio", "Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!", "Download" => "Scarica", +"Unshare" => "Rimuovi condivisione", "Upload too large" => "Il file caricato è troppo grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", "Files are being scanned, please wait." => "Scansione dei file in corso, attendi", diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index c8b1054f30b10794f70fc76cb74f258189ba7011..8d1a95e243e08eb5fa4495589237d77cda17ff4f 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -1,4 +1,7 @@ "%s を移動できませんでした ― この名前のファイルはすでに存在します", +"Could not move %s" => "%s を移動できませんでした", +"Unable to rename file" => "ファイル名の変更ができません", "No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー", "There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", @@ -7,12 +10,13 @@ "No file was uploaded" => "ファイルはアップロードされませんでした", "Missing a temporary folder" => "テンポラリフォルダが見つかりません", "Failed to write to disk" => "ディスクへの書き込みに失敗しました", -"Not enough space available" => "利用可能なスペースが十分にありません", +"Not enough storage available" => "ストレージに十分な空き容量がありません", "Invalid directory." => "無効なディレクトリです。", "Files" => "ファイル", -"Unshare" => "共有しない", +"Delete permanently" => "完全に削除する", "Delete" => "削除", "Rename" => "名前の変更", +"Pending" => "保留", "{new_name} already exists" => "{new_name} はすでに存在しています", "replace" => "置き換え", "suggest name" => "推奨名称", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのファイルはアップロードできません", "Upload Error" => "アップロードエラー", "Close" => "閉じる", -"Pending" => "保留", "1 file uploading" => "ファイルを1つアップロード中", "{count} files uploading" => "{count} ファイルをアップロード中", "Upload cancelled." => "アップロードはキャンセルされました。", @@ -57,10 +60,11 @@ "Text file" => "テキストファイル", "Folder" => "フォルダ", "From link" => "リンク", -"Trash" => "ゴミ箱", +"Deleted files" => "削除ファイル", "Cancel upload" => "アップロードをキャンセル", "Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。", "Download" => "ダウンロード", +"Unshare" => "共有しない", "Upload too large" => "ファイルサイズが大きすぎます", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。", "Files are being scanned, please wait." => "ファイルをスキャンしています、しばらくお待ちください。", diff --git a/apps/files/l10n/ka.php b/apps/files/l10n/ka.php new file mode 100644 index 0000000000000000000000000000000000000000..148e688547a77524b2b5d762b2b1946469b54eac --- /dev/null +++ b/apps/files/l10n/ka.php @@ -0,0 +1,4 @@ + "ფაილები", +"Download" => "გადმოწერა" +); diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php index 7ab6122c659a82d0c4cd7c0e11ae6415146f0932..a7b58f02d21e37d51ddda793f3cc3e6038dbc7ed 100644 --- a/apps/files/l10n/ka_GE.php +++ b/apps/files/l10n/ka_GE.php @@ -6,9 +6,9 @@ "Missing a temporary folder" => "დროებითი საქაღალდე არ არსებობს", "Failed to write to disk" => "შეცდომა დისკზე ჩაწერისას", "Files" => "ფაილები", -"Unshare" => "გაზიარების მოხსნა", "Delete" => "წაშლა", "Rename" => "გადარქმევა", +"Pending" => "მოცდის რეჟიმში", "{new_name} already exists" => "{new_name} უკვე არსებობს", "replace" => "შეცვლა", "suggest name" => "სახელის შემოთავაზება", @@ -19,7 +19,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს", "Upload Error" => "შეცდომა ატვირთვისას", "Close" => "დახურვა", -"Pending" => "მოცდის რეჟიმში", "1 file uploading" => "1 ფაილის ატვირთვა", "{count} files uploading" => "{count} ფაილი იტვირთება", "Upload cancelled." => "ატვირთვა შეჩერებულ იქნა.", @@ -46,6 +45,7 @@ "Cancel upload" => "ატვირთვის გაუქმება", "Nothing in here. Upload something!" => "აქ არაფერი არ არის. ატვირთე რამე!", "Download" => "ჩამოტვირთვა", +"Unshare" => "გაზიარების მოხსნა", "Upload too large" => "ასატვირთი ფაილი ძალიან დიდია", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", "Files are being scanned, please wait." => "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ.", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index 7774aeea31c0470d2235f850e8568f600f319756..d483f8061a1995810bd8b584b595c8524d80c6fb 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -1,4 +1,7 @@ "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함", +"Could not move %s" => "%s 항목을 이딩시키지 못하였음", +"Unable to rename file" => "파일 이름바꾸기 할 수 없음", "No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다", "There is no error, the file uploaded with success" => "업로드에 성공하였습니다.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", @@ -7,12 +10,11 @@ "No file was uploaded" => "업로드된 파일 없음", "Missing a temporary folder" => "임시 폴더가 사라짐", "Failed to write to disk" => "디스크에 쓰지 못했습니다", -"Not enough space available" => "여유 공간이 부족합니다", "Invalid directory." => "올바르지 않은 디렉터리입니다.", "Files" => "파일", -"Unshare" => "공유 해제", "Delete" => "삭제", "Rename" => "이름 바꾸기", +"Pending" => "보류 중", "{new_name} already exists" => "{new_name}이(가) 이미 존재함", "replace" => "바꾸기", "suggest name" => "이름 제안", @@ -29,7 +31,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다", "Upload Error" => "업로드 오류", "Close" => "닫기", -"Pending" => "보류 중", "1 file uploading" => "파일 1개 업로드 중", "{count} files uploading" => "파일 {count}개 업로드 중", "Upload cancelled." => "업로드가 취소되었습니다.", @@ -59,6 +60,7 @@ "Cancel upload" => "업로드 취소", "Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!", "Download" => "다운로드", +"Unshare" => "공유 해제", "Upload too large" => "업로드 용량 초과", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", "Files are being scanned, please wait." => "파일을 검색하고 있습니다. 기다려 주십시오.", diff --git a/apps/files/l10n/lb.php b/apps/files/l10n/lb.php index 79ef4bc9417fd0729a574c476f6fd85c9be6b924..b052da3a027c540e4535f6ba41352bfcccaae3f5 100644 --- a/apps/files/l10n/lb.php +++ b/apps/files/l10n/lb.php @@ -6,7 +6,6 @@ "Missing a temporary folder" => "Et feelt en temporären Dossier", "Failed to write to disk" => "Konnt net op den Disk schreiwen", "Files" => "Dateien", -"Unshare" => "Net méi deelen", "Delete" => "Läschen", "replace" => "ersetzen", "cancel" => "ofbriechen", @@ -34,6 +33,7 @@ "Cancel upload" => "Upload ofbriechen", "Nothing in here. Upload something!" => "Hei ass näischt. Lued eppes rop!", "Download" => "Eroflueden", +"Unshare" => "Net méi deelen", "Upload too large" => "Upload ze grouss", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.", "Files are being scanned, please wait." => "Fichieren gi gescannt, war weg.", diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php index f4ad655f421f0baae6b136d176fa111bc108e00d..70296b5db9f99c9f9d19f5d75d25cf145743af7a 100644 --- a/apps/files/l10n/lt_LT.php +++ b/apps/files/l10n/lt_LT.php @@ -6,9 +6,9 @@ "Missing a temporary folder" => "Nėra laikinojo katalogo", "Failed to write to disk" => "Nepavyko įrašyti į diską", "Files" => "Failai", -"Unshare" => "Nebesidalinti", "Delete" => "Ištrinti", "Rename" => "Pervadinti", +"Pending" => "Laukiantis", "{new_name} already exists" => "{new_name} jau egzistuoja", "replace" => "pakeisti", "suggest name" => "pasiūlyti pavadinimą", @@ -19,7 +19,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas", "Upload Error" => "Įkėlimo klaida", "Close" => "Užverti", -"Pending" => "Laukiantis", "1 file uploading" => "įkeliamas 1 failas", "{count} files uploading" => "{count} įkeliami failai", "Upload cancelled." => "Įkėlimas atšauktas.", @@ -46,6 +45,7 @@ "Cancel upload" => "Atšaukti siuntimą", "Nothing in here. Upload something!" => "Čia tuščia. Įkelkite ką nors!", "Download" => "Atsisiųsti", +"Unshare" => "Nebesidalinti", "Upload too large" => "Įkėlimui failas per didelis", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų leidžiamą šiame serveryje", "Files are being scanned, please wait." => "Skenuojami failai, prašome palaukti.", diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php index 25c1da73bebe527462c1e3da2bbd6c563808798f..30b1f4eccb11cf526dd98829cd4cf98f8f36049d 100644 --- a/apps/files/l10n/lv.php +++ b/apps/files/l10n/lv.php @@ -1,4 +1,7 @@ "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu", +"Could not move %s" => "Nevarēja pārvietot %s", +"Unable to rename file" => "Nevarēja pārsaukt datni", "No file was uploaded. Unknown error" => "Netika augšupielādēta neviena datne. Nezināma kļūda", "There is no error, the file uploaded with success" => "Augšupielāde pabeigta bez kļūdām", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Neviena datne netika augšupielādēta", "Missing a temporary folder" => "Trūkst pagaidu mapes", "Failed to write to disk" => "Neizdevās saglabāt diskā", -"Not enough space available" => "Nepietiek brīvas vietas", +"Not enough storage available" => "Nav pietiekami daudz vietas", "Invalid directory." => "Nederīga direktorija.", "Files" => "Datnes", -"Unshare" => "Pārtraukt dalīšanos", +"Delete permanently" => "Dzēst pavisam", "Delete" => "Dzēst", "Rename" => "Pārsaukt", +"Pending" => "Gaida savu kārtu", "{new_name} already exists" => "{new_name} jau eksistē", "replace" => "aizvietot", "suggest name" => "ieteiktais nosaukums", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tās izmērs ir 0 baiti", "Upload Error" => "Kļūda augšupielādējot", "Close" => "Aizvērt", -"Pending" => "Gaida savu kārtu", "1 file uploading" => "Augšupielādē 1 datni", "{count} files uploading" => "augšupielādē {count} datnes", "Upload cancelled." => "Augšupielāde ir atcelta.", @@ -57,10 +60,11 @@ "Text file" => "Teksta datne", "Folder" => "Mape", "From link" => "No saites", -"Trash" => "Miskaste", +"Deleted files" => "Dzēstās datnes", "Cancel upload" => "Atcelt augšupielādi", "Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!", "Download" => "Lejupielādēt", +"Unshare" => "Pārtraukt dalīšanos", "Upload too large" => "Datne ir par lielu, lai to augšupielādētu", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu", "Files are being scanned, please wait." => "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet.", diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php index 2580d1e6a97bc4440f4aaf61b5ce5af71ae817c2..5cb7e7205845fe65188807dbdaf8b0a16e9a8b31 100644 --- a/apps/files/l10n/mk.php +++ b/apps/files/l10n/mk.php @@ -8,9 +8,9 @@ "Missing a temporary folder" => "Не постои привремена папка", "Failed to write to disk" => "Неуспеав да запишам на диск", "Files" => "Датотеки", -"Unshare" => "Не споделувај", "Delete" => "Избриши", "Rename" => "Преименувај", +"Pending" => "Чека", "{new_name} already exists" => "{new_name} веќе постои", "replace" => "замени", "suggest name" => "предложи име", @@ -22,7 +22,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти", "Upload Error" => "Грешка при преземање", "Close" => "Затвои", -"Pending" => "Чека", "1 file uploading" => "1 датотека се подига", "{count} files uploading" => "{count} датотеки се подигаат", "Upload cancelled." => "Преземањето е прекинато.", @@ -51,6 +50,7 @@ "Cancel upload" => "Откажи прикачување", "Nothing in here. Upload something!" => "Тука нема ништо. Снимете нешто!", "Download" => "Преземи", +"Unshare" => "Не споделувај", "Upload too large" => "Датотеката е премногу голема", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.", "Files are being scanned, please wait." => "Се скенираат датотеки, ве молам почекајте.", diff --git a/apps/files/l10n/ms_MY.php b/apps/files/l10n/ms_MY.php index 4ac26d80918281f242aafe25f097d28ea350215d..b15a9111e70475f697e409c700c650d4e55f456a 100644 --- a/apps/files/l10n/ms_MY.php +++ b/apps/files/l10n/ms_MY.php @@ -8,12 +8,12 @@ "Failed to write to disk" => "Gagal untuk disimpan", "Files" => "fail", "Delete" => "Padam", +"Pending" => "Dalam proses", "replace" => "ganti", "cancel" => "Batal", "Unable to upload your file as it is a directory or has 0 bytes" => "Tidak boleh memuatnaik fail anda kerana mungkin ianya direktori atau saiz fail 0 bytes", "Upload Error" => "Muat naik ralat", "Close" => "Tutup", -"Pending" => "Dalam proses", "Upload cancelled." => "Muatnaik dibatalkan.", "Name" => "Nama ", "Size" => "Saiz", diff --git a/apps/files/l10n/my_MM.php b/apps/files/l10n/my_MM.php new file mode 100644 index 0000000000000000000000000000000000000000..b791a134ccce079a6f7c47dbc4b5bb61eb1586fc --- /dev/null +++ b/apps/files/l10n/my_MM.php @@ -0,0 +1,4 @@ + "ဖိုင်များ", +"Download" => "ဒေါင်းလုတ်" +); diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php index a6ba6e9c03ff60e219d6c45c5d5f55a87f196ba8..2609923cbf49a93250b51940b22bdba814e57cf3 100644 --- a/apps/files/l10n/nb_NO.php +++ b/apps/files/l10n/nb_NO.php @@ -7,9 +7,9 @@ "Missing a temporary folder" => "Mangler en midlertidig mappe", "Failed to write to disk" => "Klarte ikke å skrive til disk", "Files" => "Filer", -"Unshare" => "Avslutt deling", "Delete" => "Slett", "Rename" => "Omdøp", +"Pending" => "Ventende", "{new_name} already exists" => "{new_name} finnes allerede", "replace" => "erstatt", "suggest name" => "foreslå navn", @@ -21,7 +21,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes", "Upload Error" => "Opplasting feilet", "Close" => "Lukk", -"Pending" => "Ventende", "1 file uploading" => "1 fil lastes opp", "{count} files uploading" => "{count} filer laster opp", "Upload cancelled." => "Opplasting avbrutt.", @@ -50,6 +49,7 @@ "Cancel upload" => "Avbryt opplasting", "Nothing in here. Upload something!" => "Ingenting her. Last opp noe!", "Download" => "Last ned", +"Unshare" => "Avslutt deling", "Upload too large" => "Opplasting for stor", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er for store for å laste opp til denne serveren.", "Files are being scanned, please wait." => "Skanner etter filer, vennligst vent.", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index addd3a9372308ceb034491f7b337b86d75bcf646..a92ec933b220ffc801e8356487ff35adc0c458aa 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -1,4 +1,7 @@ "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", +"Could not move %s" => "Kon %s niet verplaatsen", +"Unable to rename file" => "Kan bestand niet hernoemen", "No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout", "There is no error, the file uploaded with success" => "Geen fout opgetreden, bestand successvol geupload.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Geen bestand geüpload", "Missing a temporary folder" => "Een tijdelijke map mist", "Failed to write to disk" => "Schrijven naar schijf mislukt", -"Not enough space available" => "Niet genoeg ruimte beschikbaar", +"Not enough storage available" => "Niet genoeg opslagruimte beschikbaar", "Invalid directory." => "Ongeldige directory.", "Files" => "Bestanden", -"Unshare" => "Stop delen", +"Delete permanently" => "Verwijder definitief", "Delete" => "Verwijder", "Rename" => "Hernoem", +"Pending" => "Wachten", "{new_name} already exists" => "{new_name} bestaat al", "replace" => "vervang", "suggest name" => "Stel een naam voor", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes", "Upload Error" => "Upload Fout", "Close" => "Sluit", -"Pending" => "Wachten", "1 file uploading" => "1 bestand wordt ge-upload", "{count} files uploading" => "{count} bestanden aan het uploaden", "Upload cancelled." => "Uploaden geannuleerd.", @@ -57,10 +60,11 @@ "Text file" => "Tekstbestand", "Folder" => "Map", "From link" => "Vanaf link", -"Trash" => "Verwijderen", +"Deleted files" => "Verwijderde bestanden", "Cancel upload" => "Upload afbreken", "Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!", "Download" => "Download", +"Unshare" => "Stop delen", "Upload too large" => "Bestanden te groot", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", "Files are being scanned, please wait." => "Bestanden worden gescand, even wachten.", diff --git a/apps/files/l10n/oc.php b/apps/files/l10n/oc.php index 78045b299edd7ce5b727df71a15a4743240386e1..7a39e9399f5c3d7e49ff2af9d07c645996d74a7c 100644 --- a/apps/files/l10n/oc.php +++ b/apps/files/l10n/oc.php @@ -6,16 +6,15 @@ "Missing a temporary folder" => "Un dorsièr temporari manca", "Failed to write to disk" => "L'escriptura sul disc a fracassat", "Files" => "Fichièrs", -"Unshare" => "Non parteja", "Delete" => "Escafa", "Rename" => "Torna nomenar", +"Pending" => "Al esperar", "replace" => "remplaça", "suggest name" => "nom prepausat", "cancel" => "anulla", "undo" => "defar", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossible d'amontcargar lo teu fichièr qu'es un repertòri o que ten pas que 0 octet.", "Upload Error" => "Error d'amontcargar", -"Pending" => "Al esperar", "1 file uploading" => "1 fichièr al amontcargar", "Upload cancelled." => "Amontcargar anullat.", "File upload is in progress. Leaving the page now will cancel the upload." => "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", @@ -37,6 +36,7 @@ "Cancel upload" => " Anulla l'amontcargar", "Nothing in here. Upload something!" => "Pas res dedins. Amontcarga qualquaren", "Download" => "Avalcarga", +"Unshare" => "Non parteja", "Upload too large" => "Amontcargament tròp gròs", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.", "Files are being scanned, please wait." => "Los fiichièrs son a èsser explorats, ", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index 6855850f0dac7506b44a74ffe6b0bc69fb5cc84b..7570f1cb475d3a0e3777d75620f1fa13d0032c3c 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -1,4 +1,7 @@ "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", +"Could not move %s" => "Nie można było przenieść %s", +"Unable to rename file" => "Nie można zmienić nazwy pliku", "No file was uploaded. Unknown error" => "Plik nie został załadowany. Nieznany błąd", "There is no error, the file uploaded with success" => "Przesłano plik", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", @@ -7,12 +10,13 @@ "No file was uploaded" => "Nie przesłano żadnego pliku", "Missing a temporary folder" => "Brak katalogu tymczasowego", "Failed to write to disk" => "Błąd zapisu na dysk", -"Not enough space available" => "Za mało miejsca", +"Not enough storage available" => "Za mało miejsca", "Invalid directory." => "Zła ścieżka.", "Files" => "Pliki", -"Unshare" => "Nie udostępniaj", +"Delete permanently" => "Trwale usuń", "Delete" => "Usuwa element", "Rename" => "Zmień nazwę", +"Pending" => "Oczekujące", "{new_name} already exists" => "{new_name} już istnieje", "replace" => "zastap", "suggest name" => "zasugeruj nazwę", @@ -20,13 +24,16 @@ "replaced {new_name}" => "zastąpiony {new_name}", "undo" => "wróć", "replaced {new_name} with {old_name}" => "zastąpiony {new_name} z {old_name}", +"perform delete operation" => "wykonywanie operacji usuwania", "'.' is an invalid file name." => "'.' jest nieprawidłową nazwą pliku.", "File name cannot be empty." => "Nazwa pliku nie może być pusta.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Niepoprawna nazwa, Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*'są niedozwolone.", +"Your storage is full, files can not be updated or synced anymore!" => "Dysk jest pełny, pliki nie mogą być aktualizowane lub zsynchronizowane!", +"Your storage is almost full ({usedSpacePercent}%)" => "Twój dysk jest prawie pełny ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Pobieranie jest przygotowywane. Może to zająć trochę czasu, jeśli pliki są duże.", "Unable to upload your file as it is a directory or has 0 bytes" => "Nie można wczytać pliku jeśli jest katalogiem lub ma 0 bajtów", "Upload Error" => "Błąd wczytywania", "Close" => "Zamknij", -"Pending" => "Oczekujące", "1 file uploading" => "1 plik wczytany", "{count} files uploading" => "{count} przesyłanie plików", "Upload cancelled." => "Wczytywanie anulowane.", @@ -53,11 +60,14 @@ "Text file" => "Plik tekstowy", "Folder" => "Katalog", "From link" => "Z linku", +"Deleted files" => "Pliki usnięte", "Cancel upload" => "Przestań wysyłać", "Nothing in here. Upload something!" => "Brak zawartości. Proszę wysłać pliki!", "Download" => "Pobiera element", +"Unshare" => "Nie udostępniaj", "Upload too large" => "Wysyłany plik ma za duży rozmiar", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Pliki które próbujesz przesłać, przekraczają maksymalną, dopuszczalną wielkość.", "Files are being scanned, please wait." => "Skanowanie plików, proszę czekać.", -"Current scanning" => "Aktualnie skanowane" +"Current scanning" => "Aktualnie skanowane", +"Upgrading filesystem cache..." => "Uaktualnianie plików pamięci podręcznej..." ); diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index 361e81052b94fa700c9a2d8a6e24341ee7025af4..eb66e154725aa196387daba735d6d1d318612fc8 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -1,4 +1,7 @@ "Não possível mover %s - Um arquivo com este nome já existe", +"Could not move %s" => "Não possível mover %s", +"Unable to rename file" => "Impossível renomear arquivo", "No file was uploaded. Unknown error" => "Nenhum arquivo foi transferido. Erro desconhecido", "There is no error, the file uploaded with success" => "Não houve nenhum erro, o arquivo foi transferido com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", @@ -7,11 +10,13 @@ "No file was uploaded" => "Nenhum arquivo foi transferido", "Missing a temporary folder" => "Pasta temporária não encontrada", "Failed to write to disk" => "Falha ao escrever no disco", +"Not enough storage available" => "Espaço de armazenamento insuficiente", "Invalid directory." => "Diretório inválido.", "Files" => "Arquivos", -"Unshare" => "Descompartilhar", +"Delete permanently" => "Excluir permanentemente", "Delete" => "Excluir", "Rename" => "Renomear", +"Pending" => "Pendente", "{new_name} already exists" => "{new_name} já existe", "replace" => "substituir", "suggest name" => "sugerir nome", @@ -19,14 +24,16 @@ "replaced {new_name}" => "substituído {new_name}", "undo" => "desfazer", "replaced {new_name} with {old_name}" => "Substituído {old_name} por {new_name} ", +"perform delete operation" => "realizar operação de exclusão", "'.' is an invalid file name." => "'.' é um nome de arquivo inválido.", "File name cannot be empty." => "O nome do arquivo não pode estar vazio.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", +"Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não serão mais atualizados nem sincronizados!", +"Your storage is almost full ({usedSpacePercent}%)" => "Seu armazenamento está quase cheio ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes.", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossível enviar seus arquivo como diretório ou ele tem 0 bytes.", "Upload Error" => "Erro de envio", "Close" => "Fechar", -"Pending" => "Pendente", "1 file uploading" => "enviando 1 arquivo", "{count} files uploading" => "Enviando {count} arquivos", "Upload cancelled." => "Envio cancelado.", @@ -53,11 +60,14 @@ "Text file" => "Arquivo texto", "Folder" => "Pasta", "From link" => "Do link", +"Deleted files" => "Arquivos apagados", "Cancel upload" => "Cancelar upload", "Nothing in here. Upload something!" => "Nada aqui.Carrege alguma coisa!", "Download" => "Baixar", +"Unshare" => "Descompartilhar", "Upload too large" => "Arquivo muito grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor.", "Files are being scanned, please wait." => "Arquivos sendo escaneados, por favor aguarde.", -"Current scanning" => "Scanning atual" +"Current scanning" => "Scanning atual", +"Upgrading filesystem cache..." => "Aprimorando cache do sistema de arquivos..." ); diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index b1d7385bc5847e00f3112045577927ff6336fdb0..6f51cc6deaf0385e6a4855716d3bff7a4383bf31 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -1,4 +1,7 @@ "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome", +"Could not move %s" => "Não foi possível move o ficheiro %s", +"Unable to rename file" => "Não foi possível renomear o ficheiro", "No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido", "There is no error, the file uploaded with success" => "Sem erro, ficheiro enviado com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize", @@ -7,12 +10,13 @@ "No file was uploaded" => "Não foi enviado nenhum ficheiro", "Missing a temporary folder" => "Falta uma pasta temporária", "Failed to write to disk" => "Falhou a escrita no disco", -"Not enough space available" => "Espaço em disco insuficiente!", +"Not enough storage available" => "Não há espaço suficiente em disco", "Invalid directory." => "Directório Inválido", "Files" => "Ficheiros", -"Unshare" => "Deixar de partilhar", +"Delete permanently" => "Eliminar permanentemente", "Delete" => "Apagar", "Rename" => "Renomear", +"Pending" => "Pendente", "{new_name} already exists" => "O nome {new_name} já existe", "replace" => "substituir", "suggest name" => "sugira um nome", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes", "Upload Error" => "Erro no envio", "Close" => "Fechar", -"Pending" => "Pendente", "1 file uploading" => "A enviar 1 ficheiro", "{count} files uploading" => "A carregar {count} ficheiros", "Upload cancelled." => "Envio cancelado.", @@ -57,10 +60,11 @@ "Text file" => "Ficheiro de texto", "Folder" => "Pasta", "From link" => "Da ligação", -"Trash" => "Lixo", +"Deleted files" => "Ficheiros eliminados", "Cancel upload" => "Cancelar envio", "Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", "Download" => "Transferir", +"Unshare" => "Deixar de partilhar", "Upload too large" => "Envio muito grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que está a tentar enviar excedem o tamanho máximo de envio permitido neste servidor.", "Files are being scanned, please wait." => "Os ficheiros estão a ser analisados, por favor aguarde.", diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index 7837b1f5b301d98a81213eb9f2567cccb6e1c75c..79604f56ad2fb95536022e1065eff76e6571ab00 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -1,4 +1,7 @@ "Nu se poate de mutat %s - Fișier cu acest nume deja există", +"Could not move %s" => "Nu s-a putut muta %s", +"Unable to rename file" => "Nu s-a putut redenumi fișierul", "No file was uploaded. Unknown error" => "Nici un fișier nu a fost încărcat. Eroare necunoscută", "There is no error, the file uploaded with success" => "Nicio eroare, fișierul a fost încărcat cu succes", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste upload_max_filesize permisi in php.ini: ", @@ -7,12 +10,11 @@ "No file was uploaded" => "Niciun fișier încărcat", "Missing a temporary folder" => "Lipsește un dosar temporar", "Failed to write to disk" => "Eroare la scriere pe disc", -"Not enough space available" => "Nu este suficient spațiu disponibil", "Invalid directory." => "Director invalid.", "Files" => "Fișiere", -"Unshare" => "Anulează partajarea", "Delete" => "Șterge", "Rename" => "Redenumire", +"Pending" => "În așteptare", "{new_name} already exists" => "{new_name} deja exista", "replace" => "înlocuire", "suggest name" => "sugerează nume", @@ -27,7 +29,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes.", "Upload Error" => "Eroare la încărcare", "Close" => "Închide", -"Pending" => "În așteptare", "1 file uploading" => "un fișier se încarcă", "{count} files uploading" => "{count} fisiere incarcate", "Upload cancelled." => "Încărcare anulată.", @@ -57,6 +58,7 @@ "Cancel upload" => "Anulează încărcarea", "Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!", "Download" => "Descarcă", +"Unshare" => "Anulează partajarea", "Upload too large" => "Fișierul încărcat este prea mare", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server.", "Files are being scanned, please wait." => "Fișierele sunt scanate, te rog așteptă.", diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index 52bc439512836871186bb71817dfa3536120bbb7..7bfd93c9e477ed08460075f02d0618aae57e80dc 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -1,4 +1,7 @@ "Невозможно переместить %s - файл с таким именем уже существует", +"Could not move %s" => "Невозможно переместить %s", +"Unable to rename file" => "Невозможно переименовать файл", "No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", "There is no error, the file uploaded with success" => "Файл успешно загружен", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер установленный upload_max_filesize в php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Файл не был загружен", "Missing a temporary folder" => "Невозможно найти временную папку", "Failed to write to disk" => "Ошибка записи на диск", -"Not enough space available" => "Недостаточно свободного места", +"Not enough storage available" => "Недостаточно доступного места в хранилище", "Invalid directory." => "Неправильный каталог.", "Files" => "Файлы", -"Unshare" => "Отменить публикацию", +"Delete permanently" => "Удалено навсегда", "Delete" => "Удалить", "Rename" => "Переименовать", +"Pending" => "Ожидание", "{new_name} already exists" => "{new_name} уже существует", "replace" => "заменить", "suggest name" => "предложить название", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог", "Upload Error" => "Ошибка загрузки", "Close" => "Закрыть", -"Pending" => "Ожидание", "1 file uploading" => "загружается 1 файл", "{count} files uploading" => "{count} файлов загружается", "Upload cancelled." => "Загрузка отменена.", @@ -57,10 +60,11 @@ "Text file" => "Текстовый файл", "Folder" => "Папка", "From link" => "Из ссылки", -"Trash" => "Корзина", +"Deleted files" => "Удалённые файлы", "Cancel upload" => "Отмена загрузки", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Download" => "Скачать", +"Unshare" => "Отменить публикацию", "Upload too large" => "Файл слишком большой", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.", "Files are being scanned, please wait." => "Подождите, файлы сканируются.", diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php index e1952567d318f106aef4135140b3fa8fa7a079d0..dbeab6b351e87ed09a4cada8c012eab7cc0fa805 100644 --- a/apps/files/l10n/ru_RU.php +++ b/apps/files/l10n/ru_RU.php @@ -1,4 +1,7 @@ "Неполучается перенести %s - Файл с таким именем уже существует", +"Could not move %s" => "Неполучается перенести %s ", +"Unable to rename file" => "Невозможно переименовать файл", "No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", "There is no error, the file uploaded with success" => "Ошибка отсутствует, файл загружен успешно.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Размер загружаемого файла превышает upload_max_filesize директиву в php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Файл не был загружен", "Missing a temporary folder" => "Отсутствует временная папка", "Failed to write to disk" => "Не удалось записать на диск", -"Not enough space available" => "Не достаточно свободного места", +"Not enough storage available" => "Недостаточно места в хранилище", "Invalid directory." => "Неверный каталог.", "Files" => "Файлы", -"Unshare" => "Скрыть", +"Delete permanently" => "Удалить навсегда", "Delete" => "Удалить", "Rename" => "Переименовать", +"Pending" => "Ожидающий решения", "{new_name} already exists" => "{новое_имя} уже существует", "replace" => "отмена", "suggest name" => "подобрать название", @@ -20,13 +24,16 @@ "replaced {new_name}" => "заменено {новое_имя}", "undo" => "отменить действие", "replaced {new_name} with {old_name}" => "заменено {новое_имя} с {старое_имя}", +"perform delete operation" => "выполняется процесс удаления", "'.' is an invalid file name." => "'.' является неверным именем файла.", "File name cannot be empty." => "Имя файла не может быть пустым.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.", +"Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище переполнено, фалы больше не могут быть обновлены или синхронизированы!", +"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти полно ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Идёт подготовка к скачке Вашего файла. Это может занять некоторое время, если фалы большие.", "Unable to upload your file as it is a directory or has 0 bytes" => "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией", "Upload Error" => "Ошибка загрузки", "Close" => "Закрыть", -"Pending" => "Ожидающий решения", "1 file uploading" => "загрузка 1 файла", "{count} files uploading" => "{количество} загружено файлов", "Upload cancelled." => "Загрузка отменена", @@ -56,6 +63,7 @@ "Cancel upload" => "Отмена загрузки", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Download" => "Загрузить", +"Unshare" => "Скрыть", "Upload too large" => "Загрузка слишком велика", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Размер файлов, которые Вы пытаетесь загрузить, превышает максимально допустимый размер для загрузки на данный сервер.", "Files are being scanned, please wait." => "Файлы сканируются, пожалуйста, подождите.", diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php index 316470d83965773a1e2f8cffc68db4bf63ec7694..de2b89068451e83d9833f7ec8494fea9b853bb54 100644 --- a/apps/files/l10n/si_LK.php +++ b/apps/files/l10n/si_LK.php @@ -7,7 +7,6 @@ "Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් සොයාගත නොහැක", "Failed to write to disk" => "තැටිගත කිරීම අසාර්ථකයි", "Files" => "ගොනු", -"Unshare" => "නොබෙදු", "Delete" => "මකන්න", "Rename" => "නැවත නම් කරන්න", "replace" => "ප්‍රතිස්ථාපනය කරන්න", @@ -41,6 +40,7 @@ "Cancel upload" => "උඩුගත කිරීම අත් හරින්න", "Nothing in here. Upload something!" => "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න", "Download" => "බාගත කිරීම", +"Unshare" => "නොබෙදු", "Upload too large" => "උඩුගත කිරීම විශාල වැඩිය", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය", "Files are being scanned, please wait." => "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index 9c27e21539700c708878dfbd279b56e080653b1a..f3634af6f2effcfec8c8325b5689bd221201f56c 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -1,4 +1,7 @@ "Nie je možné presunúť %s - súbor s týmto menom už existuje", +"Could not move %s" => "Nie je možné presunúť %s", +"Unable to rename file" => "Nemožno premenovať súbor", "No file was uploaded. Unknown error" => "Žiaden súbor nebol odoslaný. Neznáma chyba", "There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Žiaden súbor nebol nahraný", "Missing a temporary folder" => "Chýbajúci dočasný priečinok", "Failed to write to disk" => "Zápis na disk sa nepodaril", -"Not enough space available" => "Nie je k dispozícii dostatok miesta", -"Invalid directory." => "Neplatný adresár", +"Not enough storage available" => "Nedostatok dostupného úložného priestoru", +"Invalid directory." => "Neplatný priečinok", "Files" => "Súbory", -"Unshare" => "Nezdielať", +"Delete permanently" => "Zmazať trvalo", "Delete" => "Odstrániť", "Rename" => "Premenovať", +"Pending" => "Čaká sa", "{new_name} already exists" => "{new_name} už existuje", "replace" => "nahradiť", "suggest name" => "pomôcť s menom", @@ -30,13 +34,12 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov.", "Upload Error" => "Chyba odosielania", "Close" => "Zavrieť", -"Pending" => "Čaká sa", "1 file uploading" => "1 súbor sa posiela ", "{count} files uploading" => "{count} súborov odosielaných", "Upload cancelled." => "Odosielanie zrušené", "File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", "URL cannot be empty." => "URL nemôže byť prázdne", -"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatné meno adresára. Používanie mena 'Shared' je vyhradené len pre Owncloud", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatné meno priečinka. Používanie mena 'Shared' je vyhradené len pre Owncloud", "Name" => "Meno", "Size" => "Veľkosť", "Modified" => "Upravené", @@ -45,10 +48,10 @@ "1 file" => "1 súbor", "{count} files" => "{count} súborov", "Upload" => "Odoslať", -"File handling" => "Nastavenie správanie k súborom", +"File handling" => "Nastavenie správania sa k súborom", "Maximum upload size" => "Maximálna veľkosť odosielaného súboru", "max. possible: " => "najväčšie možné:", -"Needed for multi-file and folder downloads." => "Vyžadované pre sťahovanie viacerých súborov a adresárov.", +"Needed for multi-file and folder downloads." => "Vyžadované pre sťahovanie viacerých súborov a priečinkov.", "Enable ZIP-download" => "Povoliť sťahovanie ZIP súborov", "0 is unlimited" => "0 znamená neobmedzené", "Maximum input size for ZIP files" => "Najväčšia veľkosť ZIP súborov", @@ -57,13 +60,14 @@ "Text file" => "Textový súbor", "Folder" => "Priečinok", "From link" => "Z odkazu", -"Trash" => "Kôš", +"Deleted files" => "Zmazané súbory", "Cancel upload" => "Zrušiť odosielanie", "Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", "Download" => "Stiahnuť", +"Unshare" => "Nezdielať", "Upload too large" => "Odosielaný súbor je príliš veľký", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", "Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.", -"Current scanning" => "Práve prehliadané", +"Current scanning" => "Práve prezerané", "Upgrading filesystem cache..." => "Aktualizujem medzipamäť súborového systému..." ); diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index d55b4207d2b3d3f583541e2b4e0f3b4d8eed677b..6a379459f0e4d105b7ef1219e15a679cb2d4bf17 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -8,9 +8,9 @@ "Missing a temporary folder" => "Manjka začasna mapa", "Failed to write to disk" => "Pisanje na disk je spodletelo", "Files" => "Datoteke", -"Unshare" => "Odstrani iz souporabe", "Delete" => "Izbriši", "Rename" => "Preimenuj", +"Pending" => "V čakanju ...", "{new_name} already exists" => "{new_name} že obstaja", "replace" => "zamenjaj", "suggest name" => "predlagaj ime", @@ -22,7 +22,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov.", "Upload Error" => "Napaka med nalaganjem", "Close" => "Zapri", -"Pending" => "V čakanju ...", "1 file uploading" => "Pošiljanje 1 datoteke", "{count} files uploading" => "nalagam {count} datotek", "Upload cancelled." => "Pošiljanje je preklicano.", @@ -51,6 +50,7 @@ "Cancel upload" => "Prekliči pošiljanje", "Nothing in here. Upload something!" => "Tukaj ni ničesar. Naložite kaj!", "Download" => "Prejmi", +"Unshare" => "Odstrani iz souporabe", "Upload too large" => "Nalaganje ni mogoče, ker je preveliko", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke, ki jih želite naložiti, presegajo največjo dovoljeno velikost na tem strežniku.", "Files are being scanned, please wait." => "Poteka preučevanje datotek, počakajte ...", diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php index 188c8fc0da641203e0ab5c28ac0dbf6c41e26794..e50d6612c4c43bff2c8eabfb61c36ac0e78e3339 100644 --- a/apps/files/l10n/sr.php +++ b/apps/files/l10n/sr.php @@ -7,9 +7,9 @@ "Missing a temporary folder" => "Недостаје привремена фасцикла", "Failed to write to disk" => "Не могу да пишем на диск", "Files" => "Датотеке", -"Unshare" => "Укини дељење", "Delete" => "Обриши", "Rename" => "Преименуј", +"Pending" => "На чекању", "{new_name} already exists" => "{new_name} већ постоји", "replace" => "замени", "suggest name" => "предложи назив", @@ -21,7 +21,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова", "Upload Error" => "Грешка при отпремању", "Close" => "Затвори", -"Pending" => "На чекању", "1 file uploading" => "Отпремам 1 датотеку", "{count} files uploading" => "Отпремам {count} датотеке/а", "Upload cancelled." => "Отпремање је прекинуто.", @@ -49,6 +48,7 @@ "Cancel upload" => "Прекини отпремање", "Nothing in here. Upload something!" => "Овде нема ничег. Отпремите нешто!", "Download" => "Преузми", +"Unshare" => "Укини дељење", "Upload too large" => "Датотека је превелика", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеке које желите да отпремите прелазе ограничење у величини.", "Files are being scanned, please wait." => "Скенирам датотеке…", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index 55493e24943f32d51f2096a5c652407c9ccb68d3..12fef78dbd0096639af41057feed464c2d9e1ab3 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -1,4 +1,7 @@ "Kunde inte flytta %s - Det finns redan en fil med detta namn", +"Could not move %s" => "Kan inte flytta %s", +"Unable to rename file" => "Kan inte byta namn på filen", "No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel", "There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", @@ -7,12 +10,13 @@ "No file was uploaded" => "Ingen fil blev uppladdad", "Missing a temporary folder" => "Saknar en tillfällig mapp", "Failed to write to disk" => "Misslyckades spara till disk", -"Not enough space available" => "Inte tillräckligt med utrymme tillgängligt", +"Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt", "Invalid directory." => "Felaktig mapp.", "Files" => "Filer", -"Unshare" => "Sluta dela", +"Delete permanently" => "Radera permanent", "Delete" => "Radera", "Rename" => "Byt namn", +"Pending" => "Väntar", "{new_name} already exists" => "{new_name} finns redan", "replace" => "ersätt", "suggest name" => "föreslå namn", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes.", "Upload Error" => "Uppladdningsfel", "Close" => "Stäng", -"Pending" => "Väntar", "1 file uploading" => "1 filuppladdning", "{count} files uploading" => "{count} filer laddas upp", "Upload cancelled." => "Uppladdning avbruten.", @@ -57,10 +60,11 @@ "Text file" => "Textfil", "Folder" => "Mapp", "From link" => "Från länk", -"Trash" => "Papperskorgen", +"Deleted files" => "Raderade filer", "Cancel upload" => "Avbryt uppladdning", "Nothing in here. Upload something!" => "Ingenting här. Ladda upp något!", "Download" => "Ladda ner", +"Unshare" => "Sluta dela", "Upload too large" => "För stor uppladdning", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.", "Files are being scanned, please wait." => "Filer skannas, var god vänta", diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php index 383b4ef6f85c9031f9790a78870fc1d05ee16590..069a2ac58230462ba46cc32381d3ecb769c4a75a 100644 --- a/apps/files/l10n/ta_LK.php +++ b/apps/files/l10n/ta_LK.php @@ -7,9 +7,9 @@ "Missing a temporary folder" => "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", "Failed to write to disk" => "வட்டில் எழுத முடியவில்லை", "Files" => "கோப்புகள்", -"Unshare" => "பகிரப்படாதது", "Delete" => "அழிக்க", "Rename" => "பெயர்மாற்றம்", +"Pending" => "நிலுவையிலுள்ள", "{new_name} already exists" => "{new_name} ஏற்கனவே உள்ளது", "replace" => "மாற்றிடுக", "suggest name" => "பெயரை பரிந்துரைக்க", @@ -21,7 +21,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை", "Upload Error" => "பதிவேற்றல் வழு", "Close" => "மூடுக", -"Pending" => "நிலுவையிலுள்ள", "1 file uploading" => "1 கோப்பு பதிவேற்றப்படுகிறது", "{count} files uploading" => "{எண்ணிக்கை} கோப்புகள் பதிவேற்றப்படுகின்றது", "Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது", @@ -50,6 +49,7 @@ "Cancel upload" => "பதிவேற்றலை இரத்து செய்க", "Nothing in here. Upload something!" => "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!", "Download" => "பதிவிறக்குக", +"Unshare" => "பகிரப்படாதது", "Upload too large" => "பதிவேற்றல் மிகப்பெரியது", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது.", "Files are being scanned, please wait." => "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்.", diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php index 06dab9d8e6cb782c5ac0a05936597c6dd0699308..fce74874f137bbddedcb5b5614b6c560f9cd912a 100644 --- a/apps/files/l10n/th_TH.php +++ b/apps/files/l10n/th_TH.php @@ -1,4 +1,7 @@ "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", +"Could not move %s" => "ไม่สามารถย้าย %s ได้", +"Unable to rename file" => "ไม่สามารถเปลี่ยนชื่อไฟล์ได้", "No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", "There is no error, the file uploaded with success" => "ไม่มีข้อผิดพลาดใดๆ ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", @@ -7,12 +10,12 @@ "No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด", "Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย", "Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", -"Not enough space available" => "มีพื้นที่เหลือไม่เพียงพอ", +"Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", "Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", "Files" => "ไฟล์", -"Unshare" => "ยกเลิกการแชร์ข้อมูล", "Delete" => "ลบ", "Rename" => "เปลี่ยนชื่อ", +"Pending" => "อยู่ระหว่างดำเนินการ", "{new_name} already exists" => "{new_name} มีอยู่แล้วในระบบ", "replace" => "แทนที่", "suggest name" => "แนะนำชื่อ", @@ -30,7 +33,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่หรือมีขนาด 0 ไบต์", "Upload Error" => "เกิดข้อผิดพลาดในการอัพโหลด", "Close" => "ปิด", -"Pending" => "อยู่ระหว่างดำเนินการ", "1 file uploading" => "กำลังอัพโหลดไฟล์ 1 ไฟล์", "{count} files uploading" => "กำลังอัพโหลด {count} ไฟล์", "Upload cancelled." => "การอัพโหลดถูกยกเลิก", @@ -57,10 +59,10 @@ "Text file" => "ไฟล์ข้อความ", "Folder" => "แฟ้มเอกสาร", "From link" => "จากลิงก์", -"Trash" => "ถังขยะ", "Cancel upload" => "ยกเลิกการอัพโหลด", "Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", "Download" => "ดาวน์โหลด", +"Unshare" => "ยกเลิกการแชร์ข้อมูล", "Upload too large" => "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", "Files are being scanned, please wait." => "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่.", diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index 3412d8ad44842bed089a193700a626f2fca15bf2..3dbc8ec7a22bd7ea8f042e3fcccde19d4d8d334b 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -1,4 +1,7 @@ "%s taşınamadı. Bu isimde dosya zaten var.", +"Could not move %s" => "%s taşınamadı", +"Unable to rename file" => "Dosya adı değiştirilemedi", "No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata", "There is no error, the file uploaded with success" => "Bir hata yok, dosya başarıyla yüklendi", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı.", @@ -7,12 +10,13 @@ "No file was uploaded" => "Hiç dosya yüklenmedi", "Missing a temporary folder" => "Geçici bir klasör eksik", "Failed to write to disk" => "Diske yazılamadı", -"Not enough space available" => "Yeterli disk alanı yok", +"Not enough storage available" => "Yeterli disk alanı yok", "Invalid directory." => "Geçersiz dizin.", "Files" => "Dosyalar", -"Unshare" => "Paylaşılmayan", +"Delete permanently" => "Kalıcı olarak sil", "Delete" => "Sil", "Rename" => "İsim değiştir.", +"Pending" => "Bekliyor", "{new_name} already exists" => "{new_name} zaten mevcut", "replace" => "değiştir", "suggest name" => "Öneri ad", @@ -20,14 +24,16 @@ "replaced {new_name}" => "değiştirilen {new_name}", "undo" => "geri al", "replaced {new_name} with {old_name}" => "{new_name} ismi {old_name} ile değiştirildi", +"perform delete operation" => "Silme işlemini gerçekleştir", "'.' is an invalid file name." => "'.' geçersiz dosya adı.", "File name cannot be empty." => "Dosya adı boş olamaz.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", +"Your storage is full, files can not be updated or synced anymore!" => "Depolama alanınız dolu, artık dosyalar güncellenmeyecek yada senkronizasyon edilmeyecek.", +"Your storage is almost full ({usedSpacePercent}%)" => "Depolama alanınız neredeyse dolu ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir.", "Unable to upload your file as it is a directory or has 0 bytes" => "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi", "Upload Error" => "Yükleme hatası", "Close" => "Kapat", -"Pending" => "Bekliyor", "1 file uploading" => "1 dosya yüklendi", "{count} files uploading" => "{count} dosya yükleniyor", "Upload cancelled." => "Yükleme iptal edildi.", @@ -54,11 +60,14 @@ "Text file" => "Metin dosyası", "Folder" => "Klasör", "From link" => "Bağlantıdan", +"Deleted files" => "Dosyalar silindi", "Cancel upload" => "Yüklemeyi iptal et", "Nothing in here. Upload something!" => "Burada hiçbir şey yok. Birşeyler yükleyin!", "Download" => "İndir", +"Unshare" => "Paylaşılmayan", "Upload too large" => "Yüklemeniz çok büyük", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Yüklemeye çalıştığınız dosyalar bu sunucudaki maksimum yükleme boyutunu aşıyor.", "Files are being scanned, please wait." => "Dosyalar taranıyor, lütfen bekleyin.", -"Current scanning" => "Güncel tarama" +"Current scanning" => "Güncel tarama", +"Upgrading filesystem cache..." => "Sistem dosyası önbelleği güncelleniyor" ); diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index 9831dfe0f8ff942f762badbbb129e7a142855e77..20eb355e42d4b3e33126edef90561b534c8ae84a 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -1,4 +1,7 @@ "Не вдалося перемістити %s - Файл з таким ім'ям вже існує", +"Could not move %s" => "Не вдалося перемістити %s", +"Unable to rename file" => "Не вдалося перейменувати файл", "No file was uploaded. Unknown error" => "Не завантажено жодного файлу. Невідома помилка", "There is no error, the file uploaded with success" => "Файл успішно вивантажено без помилок.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ", @@ -7,10 +10,13 @@ "No file was uploaded" => "Не відвантажено жодного файлу", "Missing a temporary folder" => "Відсутній тимчасовий каталог", "Failed to write to disk" => "Невдалося записати на диск", +"Not enough storage available" => "Місця більше немає", +"Invalid directory." => "Невірний каталог.", "Files" => "Файли", -"Unshare" => "Заборонити доступ", +"Delete permanently" => "Видалити назавжди", "Delete" => "Видалити", "Rename" => "Перейменувати", +"Pending" => "Очікування", "{new_name} already exists" => "{new_name} вже існує", "replace" => "заміна", "suggest name" => "запропонуйте назву", @@ -18,16 +24,22 @@ "replaced {new_name}" => "замінено {new_name}", "undo" => "відмінити", "replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}", +"perform delete operation" => "виконати операцію видалення", +"'.' is an invalid file name." => "'.' це невірне ім'я файлу.", +"File name cannot be empty." => " Ім'я файлу не може бути порожнім.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені.", +"Your storage is full, files can not be updated or synced anymore!" => "Ваше сховище переповнене, файли більше не можуть бути оновлені або синхронізовані !", +"Your storage is almost full ({usedSpacePercent}%)" => "Ваше сховище майже повне ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі.", "Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт", "Upload Error" => "Помилка завантаження", "Close" => "Закрити", -"Pending" => "Очікування", "1 file uploading" => "1 файл завантажується", "{count} files uploading" => "{count} файлів завантажується", "Upload cancelled." => "Завантаження перервано.", "File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", "URL cannot be empty." => "URL не може бути пустим.", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Невірне ім'я теки. Використання \"Shared\" зарезервовано Owncloud", "Name" => "Ім'я", "Size" => "Розмір", "Modified" => "Змінено", @@ -48,11 +60,14 @@ "Text file" => "Текстовий файл", "Folder" => "Папка", "From link" => "З посилання", +"Deleted files" => "Видалено файлів", "Cancel upload" => "Перервати завантаження", "Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!", "Download" => "Завантажити", +"Unshare" => "Заборонити доступ", "Upload too large" => "Файл занадто великий", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", "Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.", -"Current scanning" => "Поточне сканування" +"Current scanning" => "Поточне сканування", +"Upgrading filesystem cache..." => "Оновлення кеша файлової системи..." ); diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index 0daf580a2f5a9c8fc1963d7cff6490b8b3e1f8a2..2c97033154b21d94ef51fff7c7ed25388fb9f7f0 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -1,15 +1,22 @@ "Không thể di chuyển %s - Đã có tên file này trên hệ thống", +"Could not move %s" => "Không thể di chuyển %s", +"Unable to rename file" => "Không thể đổi tên file", "No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định", "There is no error, the file uploaded with success" => "Không có lỗi, các tập tin đã được tải lên thành công", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Kích thước những tập tin tải lên vượt quá MAX_FILE_SIZE đã được quy định", "The uploaded file was only partially uploaded" => "Tập tin tải lên mới chỉ tải lên được một phần", "No file was uploaded" => "Không có tập tin nào được tải lên", "Missing a temporary folder" => "Không tìm thấy thư mục tạm", "Failed to write to disk" => "Không thể ghi ", +"Not enough storage available" => "Không đủ không gian lưu trữ", +"Invalid directory." => "Thư mục không hợp lệ", "Files" => "Tập tin", -"Unshare" => "Không chia sẽ", +"Delete permanently" => "Xóa vĩnh vễn", "Delete" => "Xóa", "Rename" => "Sửa tên", +"Pending" => "Chờ", "{new_name} already exists" => "{new_name} đã tồn tại", "replace" => "thay thế", "suggest name" => "tên gợi ý", @@ -17,16 +24,22 @@ "replaced {new_name}" => "đã thay thế {new_name}", "undo" => "lùi lại", "replaced {new_name} with {old_name}" => "đã thay thế {new_name} bằng {old_name}", +"perform delete operation" => "thực hiện việc xóa", +"'.' is an invalid file name." => "'.' là một tên file không hợp lệ", +"File name cannot be empty." => "Tên file không được rỗng", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", +"Your storage is full, files can not be updated or synced anymore!" => "Your storage is full, files can not be updated or synced anymore!", +"Your storage is almost full ({usedSpacePercent}%)" => "Your storage is almost full ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Your download is being prepared. This might take some time if the files are big.", "Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte", "Upload Error" => "Tải lên lỗi", "Close" => "Đóng", -"Pending" => "Chờ", "1 file uploading" => "1 tệp tin đang được tải lên", "{count} files uploading" => "{count} tập tin đang tải lên", "Upload cancelled." => "Hủy tải lên", "File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", "URL cannot be empty." => "URL không được để trống.", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Invalid folder name. Usage of 'Shared' is reserved by Owncloud", "Name" => "Tên", "Size" => "Kích cỡ", "Modified" => "Thay đổi", @@ -47,11 +60,14 @@ "Text file" => "Tập tin văn bản", "Folder" => "Thư mục", "From link" => "Từ liên kết", +"Deleted files" => "File đã bị xóa", "Cancel upload" => "Hủy upload", "Nothing in here. Upload something!" => "Không có gì ở đây .Hãy tải lên một cái gì đó !", "Download" => "Tải xuống", +"Unshare" => "Không chia sẽ", "Upload too large" => "Tập tin tải lên quá lớn", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", "Files are being scanned, please wait." => "Tập tin đang được quét ,vui lòng chờ.", -"Current scanning" => "Hiện tại đang quét" +"Current scanning" => "Hiện tại đang quét", +"Upgrading filesystem cache..." => "Upgrading filesystem cache..." ); diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php index a38e2d3bc60c15df9d67b066a238599bc0f4559a..727b8038000d556e902c919de3387debb8e2fa04 100644 --- a/apps/files/l10n/zh_CN.GB2312.php +++ b/apps/files/l10n/zh_CN.GB2312.php @@ -7,9 +7,9 @@ "Missing a temporary folder" => "丢失了一个临时文件夹", "Failed to write to disk" => "写磁盘失败", "Files" => "文件", -"Unshare" => "取消共享", "Delete" => "删除", "Rename" => "重命名", +"Pending" => "Pending", "{new_name} already exists" => "{new_name} 已存在", "replace" => "替换", "suggest name" => "推荐名称", @@ -20,7 +20,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "不能上传你指定的文件,可能因为它是个文件夹或者大小为0", "Upload Error" => "上传错误", "Close" => "关闭", -"Pending" => "Pending", "1 file uploading" => "1 个文件正在上传", "{count} files uploading" => "{count} 个文件正在上传", "Upload cancelled." => "上传取消了", @@ -49,6 +48,7 @@ "Cancel upload" => "取消上传", "Nothing in here. Upload something!" => "这里没有东西.上传点什么!", "Download" => "下载", +"Unshare" => "取消共享", "Upload too large" => "上传的文件太大了", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "你正在试图上传的文件超过了此服务器支持的最大的文件大小.", "Files are being scanned, please wait." => "正在扫描文件,请稍候.", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 2491d6453403fa556a57f9597fd574745d294edc..569aaf1b0aef7c14213241338860791500cb72e2 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -1,4 +1,7 @@ "无法移动 %s - 同名文件已存在", +"Could not move %s" => "无法移动 %s", +"Unable to rename file" => "无法重命名文件", "No file was uploaded. Unknown error" => "没有文件被上传。未知错误", "There is no error, the file uploaded with success" => "没有发生错误,文件上传成功。", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值", @@ -7,12 +10,11 @@ "No file was uploaded" => "文件没有上传", "Missing a temporary folder" => "缺少临时目录", "Failed to write to disk" => "写入磁盘失败", -"Not enough space available" => "没有足够可用空间", "Invalid directory." => "无效文件夹。", "Files" => "文件", -"Unshare" => "取消分享", "Delete" => "删除", "Rename" => "重命名", +"Pending" => "操作等待中", "{new_name} already exists" => "{new_name} 已存在", "replace" => "替换", "suggest name" => "建议名称", @@ -27,7 +29,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "无法上传文件,因为它是一个目录或者大小为 0 字节", "Upload Error" => "上传错误", "Close" => "关闭", -"Pending" => "操作等待中", "1 file uploading" => "1个文件上传中", "{count} files uploading" => "{count} 个文件上传中", "Upload cancelled." => "上传已取消", @@ -57,6 +58,7 @@ "Cancel upload" => "取消上传", "Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!", "Download" => "下载", +"Unshare" => "取消分享", "Upload too large" => "上传文件过大", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "您正尝试上传的文件超过了此服务器可以上传的最大容量限制", "Files are being scanned, please wait." => "文件正在被扫描,请稍候。", diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php index 104cb3a619fb9e8863bf8c5737487403a0e2c9c7..7be0f1d658c7f4d96463b2ef4a2d6f7c90595dae 100644 --- a/apps/files/l10n/zh_TW.php +++ b/apps/files/l10n/zh_TW.php @@ -1,4 +1,7 @@ "無法移動 %s - 同名的檔案已經存在", +"Could not move %s" => "無法移動 %s", +"Unable to rename file" => "無法重新命名檔案", "No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。", "There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", @@ -7,12 +10,13 @@ "No file was uploaded" => "無已上傳檔案", "Missing a temporary folder" => "遺失暫存資料夾", "Failed to write to disk" => "寫入硬碟失敗", -"Not enough space available" => "沒有足夠的可用空間", +"Not enough storage available" => "儲存空間不足", "Invalid directory." => "無效的資料夾。", "Files" => "檔案", -"Unshare" => "取消共享", +"Delete permanently" => "永久刪除", "Delete" => "刪除", "Rename" => "重新命名", +"Pending" => "等候中", "{new_name} already exists" => "{new_name} 已經存在", "replace" => "取代", "suggest name" => "建議檔名", @@ -30,7 +34,6 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0", "Upload Error" => "上傳發生錯誤", "Close" => "關閉", -"Pending" => "等候中", "1 file uploading" => "1 個檔案正在上傳", "{count} files uploading" => "{count} 個檔案正在上傳", "Upload cancelled." => "上傳取消", @@ -57,10 +60,10 @@ "Text file" => "文字檔", "Folder" => "資料夾", "From link" => "從連結", -"Trash" => "回收筒", "Cancel upload" => "取消上傳", "Nothing in here. Upload something!" => "沒有任何東西。請上傳內容!", "Download" => "下載", +"Unshare" => "取消共享", "Upload too large" => "上傳過大", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。 ", "Files are being scanned, please wait." => "正在掃描檔案,請稍等。", diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 0b4aa21eac32fbe75ece09dc781dbc0da528d846..c7bf0d21c13dcf021d68b106ce22926bd4bc8bb7 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -37,7 +37,7 @@
@@ -59,7 +59,7 @@
t('Nothing in here. Upload something!')?>
- +
diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php index 8778915be846f556c135ff7b2e8fc6f838a6e56a..f01cb8d212a8eb0a7dac203a491509da912e0183 100644 --- a/apps/files/templates/part.breadcrumb.php +++ b/apps/files/templates/part.breadcrumb.php @@ -1,7 +1,7 @@ diff --git a/apps/files_encryption/ajax/mode.php b/apps/files_encryption/ajax/mode.php deleted file mode 100644 index 64c5be944012aa7d447f0644740160ff296bf88b..0000000000000000000000000000000000000000 --- a/apps/files_encryption/ajax/mode.php +++ /dev/null @@ -1,38 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -use OCA\Encryption\Keymanager; - -OCP\JSON::checkAppEnabled('files_encryption'); -OCP\JSON::checkLoggedIn(); -OCP\JSON::callCheck(); - -$mode = $_POST['mode']; -$changePasswd = false; -$passwdChanged = false; - -if ( isset($_POST['newpasswd']) && isset($_POST['oldpasswd']) ) { - $oldpasswd = $_POST['oldpasswd']; - $newpasswd = $_POST['newpasswd']; - $changePasswd = true; - $passwdChanged = Keymanager::changePasswd($oldpasswd, $newpasswd); -} - -$query = \OC_DB::prepare( "SELECT mode FROM *PREFIX*encryption WHERE uid = ?" ); -$result = $query->execute(array(\OCP\User::getUser())); - -if ($result->fetchRow()){ - $query = OC_DB::prepare( 'UPDATE *PREFIX*encryption SET mode = ? WHERE uid = ?' ); -} else { - $query = OC_DB::prepare( 'INSERT INTO *PREFIX*encryption ( mode, uid ) VALUES( ?, ? )' ); -} - -if ( (!$changePasswd || $passwdChanged) && $query->execute(array($mode, \OCP\User::getUser())) ) { - OCP\JSON::success(); -} else { - OCP\JSON::error(); -} \ No newline at end of file diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index f83109a18eaa7c0b49b2a1bab6650fca846781ae..c7cd8ca32de87890a1057fb576e1bb705c0a284a 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -12,7 +12,7 @@ OC_FileProxy::register( new OCA\Encryption\Proxy() ); // User-related hooks OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); -OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'setPassphrase' ); +OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); @@ -43,6 +43,6 @@ if ( } -// Reguster settings scripts +// Register settings scripts OCP\App::registerAdmin( 'files_encryption', 'settings' ); -OCP\App::registerPersonal( 'files_encryption', 'settings-personal' ); \ No newline at end of file +OCP\App::registerPersonal( 'files_encryption', 'settings-personal' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 8bdeee0937b811b56ef599dae766f002da2887f6..2731d5a92f74ad4ed435d77a37d35cc9018cb7df 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -40,7 +40,7 @@ class Hooks { // Manually initialise Filesystem{} singleton with correct // fake root path, in order to avoid fatal webdav errors - \OC\Files\Filesystem::init( $params['uid'] . '/' . 'files' . '/' ); + \OC\Files\Filesystem::init( $params['uid'], $params['uid'] . '/' . 'files' . '/' ); $view = new \OC_FilesystemView( '/' ); @@ -165,16 +165,6 @@ class Hooks { * @brief */ public static function postShared( $params ) { - - // Delete existing catfile - Keymanager::deleteFileKey( ); - - // Generate new catfile and env keys - Crypt::multiKeyEncrypt( $plainContent, $publicKeys ); - - // Save env keys to user folders - - } /** diff --git a/apps/files_encryption/js/settings-personal.js b/apps/files_encryption/js/settings-personal.js deleted file mode 100644 index 1a53e99d2b4da326c10710ac2cb14617e3c68070..0000000000000000000000000000000000000000 --- a/apps/files_encryption/js/settings-personal.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2012, Bjoern Schiessle - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -$(document).ready(function(){ - $('input[name=encryption_mode]').change(function(){ - var prevmode = document.getElementById('prev_encryption_mode').value - var client=$('input[value="client"]:checked').val() - ,server=$('input[value="server"]:checked').val() - ,user=$('input[value="user"]:checked').val() - ,none=$('input[value="none"]:checked').val() - if (client) { - $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'client' }); - if (prevmode == 'server') { - OC.dialogs.info(t('encryption', 'Please switch to your ownCloud client and change your encryption password to complete the conversion.'), t('encryption', 'switched to client side encryption')); - } - } else if (server) { - if (prevmode == 'client') { - OC.dialogs.form([{text:'Login password', name:'newpasswd', type:'password'},{text:'Encryption password used on the client', name:'oldpasswd', type:'password'}],t('encryption', 'Change encryption password to login password'), function(data) { - $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'server', newpasswd: data[0].value, oldpasswd: data[1].value }, function(result) { - if (result.status != 'success') { - document.getElementById(prevmode+'_encryption').checked = true; - OC.dialogs.alert(t('encryption', 'Please check your passwords and try again.'), t('encryption', 'Could not change your file encryption password to your login password')) - } else { - console.log("alles super"); - } - }, true); - }); - } else { - $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'server' }); - } - } else { - $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'none' }); - } - }) -}) \ No newline at end of file diff --git a/apps/files_encryption/js/settings.js b/apps/files_encryption/js/settings.js index 60563bde859cd59683bbb7706fb4c0992b3523f9..0be857bb73e9dd6d35a7ad30e702d3a5c25a08a6 100644 --- a/apps/files_encryption/js/settings.js +++ b/apps/files_encryption/js/settings.js @@ -9,38 +9,11 @@ $(document).ready(function(){ $('#encryption_blacklist').multiSelect({ oncheck:blackListChange, onuncheck:blackListChange, - createText:'...', + createText:'...' }); function blackListChange(){ var blackList=$('#encryption_blacklist').val().join(','); OC.AppConfig.setValue('files_encryption','type_blacklist',blackList); } - - //TODO: Handle switch between client and server side encryption - $('input[name=encryption_mode]').change(function(){ - var client=$('input[value="client"]:checked').val() - ,server=$('input[value="server"]:checked').val() - ,user=$('input[value="user"]:checked').val() - ,none=$('input[value="none"]:checked').val() - ,disable=false - if (client) { - OC.AppConfig.setValue('files_encryption','mode','client'); - disable = true; - } else if (server) { - OC.AppConfig.setValue('files_encryption','mode','server'); - disable = true; - } else if (user) { - OC.AppConfig.setValue('files_encryption','mode','user'); - disable = true; - } else { - OC.AppConfig.setValue('files_encryption','mode','none'); - } - if (disable) { - document.getElementById('server_encryption').disabled = true; - document.getElementById('client_encryption').disabled = true; - document.getElementById('user_encryption').disabled = true; - document.getElementById('none_encryption').disabled = true; - } - }) }) \ No newline at end of file diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php index 1b888f7714bc91834a9aa4a16e4f6e9b53080de9..0c661353a776ce7644bc8ad3e5c954e2becc28ad 100644 --- a/apps/files_encryption/l10n/ca.php +++ b/apps/files_encryption/l10n/ca.php @@ -1,9 +1,4 @@ "Connecteu-vos al client ownCloud i canvieu la contrasenya d'encriptació per completar la conversió.", -"switched to client side encryption" => "s'ha commutat a l'encriptació per part del client", -"Change encryption password to login password" => "Canvia la contrasenya d'encriptació per la d'accés", -"Please check your passwords and try again." => "Comproveu les contrasenyes i proveu-ho de nou.", -"Could not change your file encryption password to your login password" => "No s'ha pogut canviar la contrasenya d'encriptació de fitxers per la d'accés", "Encryption" => "Encriptatge", "File encryption is enabled." => "L'encriptació de fitxers està activada.", "The following file types will not be encrypted:" => "Els tipus de fitxers següents no s'encriptaran:", diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php index 3278f13920ac636f1e0534a8010819138e5cfbe9..d225688a079d78356a3ec1ae5eb3ef9cf4041306 100644 --- a/apps/files_encryption/l10n/cs_CZ.php +++ b/apps/files_encryption/l10n/cs_CZ.php @@ -1,9 +1,4 @@ "Prosím přejděte na svého klienta ownCloud a nastavte šifrovací heslo pro dokončení konverze.", -"switched to client side encryption" => "přepnuto na šifrování na straně klienta", -"Change encryption password to login password" => "Změnit šifrovací heslo na přihlašovací", -"Please check your passwords and try again." => "Zkontrolujte, prosím, své heslo a zkuste to znovu.", -"Could not change your file encryption password to your login password" => "Nelze změnit šifrovací heslo na přihlašovací.", "Encryption" => "Šifrování", "File encryption is enabled." => "Šifrování je povoleno.", "The following file types will not be encrypted:" => "Následující typy souborů nebudou šifrovány:", diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php index c9255759cb8bd6664a22708f7b73bb04904239d7..b085381ea7b2b72f8fb66a9844c771ec9739733a 100644 --- a/apps/files_encryption/l10n/da.php +++ b/apps/files_encryption/l10n/da.php @@ -1,9 +1,7 @@ "Skift venligst til din ownCloud-klient og skift krypteringskoden for at fuldføre konverteringen.", -"switched to client side encryption" => "skiftet til kryptering på klientsiden", -"Change encryption password to login password" => "Udskift krypteringskode til login-adgangskode", -"Please check your passwords and try again." => "Check adgangskoder og forsøg igen.", -"Could not change your file encryption password to your login password" => "Kunne ikke udskifte krypteringskode med login-adgangskode", "Encryption" => "Kryptering", +"File encryption is enabled." => "Fil kryptering aktiveret.", +"The following file types will not be encrypted:" => "De følgende filtyper vil ikke blive krypteret:", +"Exclude the following file types from encryption:" => "Ekskluder de følgende fil typer fra kryptering:", "None" => "Ingen" ); diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php index c3c69e09007d2884cfa153f5bdc928e13fbf7522..cdcd8a40b23c87ae5c13660fd17539a8885b399e 100644 --- a/apps/files_encryption/l10n/de.php +++ b/apps/files_encryption/l10n/de.php @@ -1,9 +1,7 @@ "Bitte wechseln Sie nun zum ownCloud Client und ändern Sie ihr Verschlüsselungspasswort um die Konvertierung abzuschließen.", -"switched to client side encryption" => "Zur Clientseitigen Verschlüsselung gewechselt", -"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort", -"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.", -"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.", "Encryption" => "Verschlüsselung", +"File encryption is enabled." => "Dateiverschlüsselung ist aktiviert", +"The following file types will not be encrypted:" => "Die folgenden Dateitypen werden nicht verschlüsselt:", +"Exclude the following file types from encryption:" => "Schließe die folgenden Dateitypen von der Verschlüsselung aus:", "None" => "Keine" ); diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php index c3c69e09007d2884cfa153f5bdc928e13fbf7522..4f08b98eb29fdb50d0866b4b8ead9a1e9a468e38 100644 --- a/apps/files_encryption/l10n/de_DE.php +++ b/apps/files_encryption/l10n/de_DE.php @@ -1,9 +1,7 @@ "Bitte wechseln Sie nun zum ownCloud Client und ändern Sie ihr Verschlüsselungspasswort um die Konvertierung abzuschließen.", -"switched to client side encryption" => "Zur Clientseitigen Verschlüsselung gewechselt", -"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort", -"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.", -"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.", "Encryption" => "Verschlüsselung", +"File encryption is enabled." => "Datei-Verschlüsselung ist aktiviert", +"The following file types will not be encrypted:" => "Die folgenden Dateitypen werden nicht verschlüsselt:", +"Exclude the following file types from encryption:" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen:", "None" => "Keine" ); diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php index 94bb68bcbca35b4810798d11f4f0633276e99e3c..0031a7319445a45b376950d0e4f1f38d379a3dc4 100644 --- a/apps/files_encryption/l10n/el.php +++ b/apps/files_encryption/l10n/el.php @@ -1,7 +1,7 @@ "Αλλαγή συνθηματικού κρυπτογράφησης στο συνθηματικό εισόδου ", -"Please check your passwords and try again." => "Παρακαλώ ελέγξτε το συνθηματικό σας και προσπαθήστε ξανά.", -"Could not change your file encryption password to your login password" => "Αδυναμία αλλαγής συνθηματικού κρυπτογράφησης αρχείων στο συνθηματικό εισόδου σας", "Encryption" => "Κρυπτογράφηση", +"File encryption is enabled." => "Η κρυπτογράφηση αρχείων είναι ενεργή.", +"The following file types will not be encrypted:" => "Οι παρακάτω τύποι αρχείων δεν θα κρυπτογραφηθούν:", +"Exclude the following file types from encryption:" => "Εξαίρεση των παρακάτω τύπων αρχείων από την κρυπτογράφηση:", "None" => "Καμία" ); diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php index 73b5f273d1f9c1edd0faa677e81315c4a86a033c..4ea87b92e7c490b58b390070529ca0818bb4a367 100644 --- a/apps/files_encryption/l10n/es.php +++ b/apps/files_encryption/l10n/es.php @@ -1,9 +1,4 @@ "Por favor, cambie su cliente de ownCloud y cambie su clave de cifrado para completar la conversión.", -"switched to client side encryption" => "Cambiar a cifrado del lado del cliente", -"Change encryption password to login password" => "Cambie la clave de cifrado para su contraseña de inicio de sesión", -"Please check your passwords and try again." => "Por favor revise su contraseña e intentelo de nuevo.", -"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión", "Encryption" => "Cifrado", "File encryption is enabled." => "La encriptacion de archivo esta activada.", "The following file types will not be encrypted:" => "Los siguientes tipos de archivo no seran encriptados:", diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php index 8160db10df6ffe9b690971a1bb0e8f070d3a7161..af522879e16f7d4559413c22cef8ac754ffc1b4e 100644 --- a/apps/files_encryption/l10n/es_AR.php +++ b/apps/files_encryption/l10n/es_AR.php @@ -1,9 +1,7 @@ "Por favor, cambiá uu cliente de ownCloud y cambiá tu clave de encriptado para completar la conversión.", -"switched to client side encryption" => "Cambiado a encriptación por parte del cliente", -"Change encryption password to login password" => "Cambiá la clave de encriptado para tu contraseña de inicio de sesión", -"Please check your passwords and try again." => "Por favor, revisá tu contraseña e intentalo de nuevo.", -"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión", "Encryption" => "Encriptación", +"File encryption is enabled." => "La encriptación de archivos no está habilitada", +"The following file types will not be encrypted:" => "Los siguientes tipos de archivos no serán encriptados", +"Exclude the following file types from encryption:" => "Excluir los siguientes tipos de archivos de encriptación:", "None" => "Ninguno" ); diff --git a/apps/files_encryption/l10n/et_EE.php b/apps/files_encryption/l10n/et_EE.php index 07f1a48fb0bb01dc978a9872b2dcdb4101cb7eea..0d189ac062ea4cbf9b42654edcd88867e38f3846 100644 --- a/apps/files_encryption/l10n/et_EE.php +++ b/apps/files_encryption/l10n/et_EE.php @@ -1,4 +1,7 @@ "Krüpteerimine", +"File encryption is enabled." => "Faili krüpteerimine on sisse lülitatud.", +"The following file types will not be encrypted:" => "Järgnevaid failitüüpe ei krüpteerita:", +"Exclude the following file types from encryption:" => "Järgnevaid failitüüpe ei krüpteerita:", "None" => "Pole" ); diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php index a2368816f52b79164a665e5e328c916eca6dd9c2..5a22b65728ef5d9d669b57dcd72559cda9830c60 100644 --- a/apps/files_encryption/l10n/eu.php +++ b/apps/files_encryption/l10n/eu.php @@ -1,5 +1,7 @@ "Mesedez egiaztatu zure pasahitza eta saia zaitez berriro:", "Encryption" => "Enkriptazioa", +"File encryption is enabled." => "Fitxategien enkriptazioa gaituta dago.", +"The following file types will not be encrypted:" => "Hurrengo fitxategi motak ez dira enkriptatuko:", +"Exclude the following file types from encryption:" => "Baztertu hurrengo fitxategi motak enkriptatzetik:", "None" => "Bat ere ez" ); diff --git a/apps/files_encryption/l10n/fa.php b/apps/files_encryption/l10n/fa.php index 2186c9025b4b16aa5e9f6598a6bf37f1c67e2773..21ad7e565667e07fb2b69f735dcac5b2f176a9eb 100644 --- a/apps/files_encryption/l10n/fa.php +++ b/apps/files_encryption/l10n/fa.php @@ -1,5 +1,4 @@ "لطفا گذرواژه خود را بررسی کنید و دوباره امتحان کنید.", "Encryption" => "رمزگذاری", "None" => "هیچ‌کدام" ); diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php index 8a9dd30e6708b6cf4db6879dcbaa8cdeaa3a614d..6352d396b3c1ae65fecc57a1ba2a689aace7863b 100644 --- a/apps/files_encryption/l10n/fi_FI.php +++ b/apps/files_encryption/l10n/fi_FI.php @@ -1,5 +1,7 @@ "Tarkista salasanasi ja yritä uudelleen.", "Encryption" => "Salaus", +"File encryption is enabled." => "Tiedostojen salaus on käytössä.", +"The following file types will not be encrypted:" => "Seuraavia tiedostotyyppejä ei salata:", +"Exclude the following file types from encryption:" => "Älä salaa seuravia tiedostotyyppejä:", "None" => "Ei mitään" ); diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php index 608778b2ec8ab104537b59ec1e6637b3d80dde73..88f1e4a393f24ad432ca05cd3e8a17dbd497ef61 100644 --- a/apps/files_encryption/l10n/fr.php +++ b/apps/files_encryption/l10n/fr.php @@ -1,9 +1,7 @@ "Veuillez vous connecter depuis votre client de synchronisation ownCloud et changer votre mot de passe de chiffrement pour finaliser la conversion.", -"switched to client side encryption" => "Mode de chiffrement changé en chiffrement côté client", -"Change encryption password to login password" => "Convertir le mot de passe de chiffrement en mot de passe de connexion", -"Please check your passwords and try again." => "Veuillez vérifier vos mots de passe et réessayer.", -"Could not change your file encryption password to your login password" => "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion", "Encryption" => "Chiffrement", +"File encryption is enabled." => "Le chiffrement des fichiers est activé", +"The following file types will not be encrypted:" => "Les fichiers de types suivants ne seront pas chiffrés :", +"Exclude the following file types from encryption:" => "Ne pas chiffrer les fichiers dont les types sont les suivants :", "None" => "Aucun" ); diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php index b240990f3d57fabbdd56abd3752432172a0209b4..3210f71545312e5b90b9677f90ecacd861e4d157 100644 --- a/apps/files_encryption/l10n/gl.php +++ b/apps/files_encryption/l10n/gl.php @@ -1,4 +1,7 @@ "Cifrado", -"None" => "Nada" +"File encryption is enabled." => "O cifrado de ficheiros está activado", +"The following file types will not be encrypted:" => "Os seguintes tipos de ficheiros non van seren cifrados:", +"Exclude the following file types from encryption:" => "Excluír os seguintes tipos de ficheiros do cifrado:", +"None" => "Ningún" ); diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php index fa62ae75fb6a2220f4c70852a0fee5c0357fae57..4043da108c0e0a991d2d1385f63eedb172779035 100644 --- a/apps/files_encryption/l10n/hu_HU.php +++ b/apps/files_encryption/l10n/hu_HU.php @@ -1,9 +1,7 @@ "Kérjük, hogy váltson át az ownCloud kliensére, és változtassa meg a titkosítási jelszót az átalakítás befejezéséhez.", -"switched to client side encryption" => "átváltva a kliens oldalai titkosításra", -"Change encryption password to login password" => "Titkosítási jelszó módosítása a bejelentkezési jelszóra", -"Please check your passwords and try again." => "Kérjük, ellenőrizze a jelszavait, és próbálja meg újra.", -"Could not change your file encryption password to your login password" => "Nem módosíthatja a fájltitkosítási jelszavát a bejelentkezési jelszavára", "Encryption" => "Titkosítás", +"File encryption is enabled." => "Az állományok titkosítása be van kapcsolva.", +"The following file types will not be encrypted:" => "A következő fájltípusok nem kerülnek titkosításra:", +"Exclude the following file types from encryption:" => "Zárjuk ki a titkosításból a következő fájltípusokat:", "None" => "Egyik sem" ); diff --git a/apps/files_encryption/l10n/id.php b/apps/files_encryption/l10n/id.php index 3f9a6c7d07f89c8f6d1ec9806981af61765b0251..6044348e72e335b5f813e25382185af6bfd9927f 100644 --- a/apps/files_encryption/l10n/id.php +++ b/apps/files_encryption/l10n/id.php @@ -1,4 +1,7 @@ "enkripsi", -"None" => "tidak ada" +"Encryption" => "Enkripsi", +"File encryption is enabled." => "Enkripsi berkas aktif.", +"The following file types will not be encrypted:" => "Tipe berkas berikut tidak akan dienkripsi:", +"Exclude the following file types from encryption:" => "Kecualikan tipe berkas berikut dari enkripsi:", +"None" => "Tidak ada" ); diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php index ffa20b718d98b26537cd55da9df04315288f37e8..9ab9bc492a0fb599349802711ac6ada4df5a7237 100644 --- a/apps/files_encryption/l10n/it.php +++ b/apps/files_encryption/l10n/it.php @@ -1,9 +1,4 @@ "Passa al tuo client ownCloud e cambia la password di cifratura per completare la conversione.", -"switched to client side encryption" => "passato alla cifratura lato client", -"Change encryption password to login password" => "Converti la password di cifratura nella password di accesso", -"Please check your passwords and try again." => "Controlla la password e prova ancora.", -"Could not change your file encryption password to your login password" => "Impossibile convertire la password di cifratura nella password di accesso", "Encryption" => "Cifratura", "File encryption is enabled." => "La cifratura dei file è abilitata.", "The following file types will not be encrypted:" => "I seguenti tipi di file non saranno cifrati:", diff --git a/apps/files_encryption/l10n/ja_JP.php b/apps/files_encryption/l10n/ja_JP.php index 8d3df1f06ae959d6090918982488752fe84a415e..35fba615aec29d6c6974cfd4b369655142e7be79 100644 --- a/apps/files_encryption/l10n/ja_JP.php +++ b/apps/files_encryption/l10n/ja_JP.php @@ -1,9 +1,7 @@ "変換を完了するために、ownCloud クライアントに切り替えて、暗号化パスワードを変更してください。", -"switched to client side encryption" => "クライアントサイドの暗号化に切り替えました", -"Change encryption password to login password" => "暗号化パスワードをログインパスワードに変更", -"Please check your passwords and try again." => "パスワードを確認してもう一度行なってください。", -"Could not change your file encryption password to your login password" => "ファイル暗号化パスワードをログインパスワードに変更できませんでした。", "Encryption" => "暗号化", +"File encryption is enabled." => "ファイルの暗号化は有効です。", +"The following file types will not be encrypted:" => "次のファイルタイプは暗号化されません:", +"Exclude the following file types from encryption:" => "次のファイルタイプを暗号化から除外:", "None" => "なし" ); diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php index 625906d89d6b00833dc4e8f1781c0d3f6ae3a6ad..bd1580578c42146002ac808db852674b847b0c6b 100644 --- a/apps/files_encryption/l10n/ko.php +++ b/apps/files_encryption/l10n/ko.php @@ -1,9 +1,4 @@ "ownCloud로 전환한 다음 암호화에 사용할 암호를 변경하면 변환이 완료됩니다.", -"switched to client side encryption" => "클라이언트 암호화로 변경됨", -"Change encryption password to login password" => "암호화 암호를 로그인 암호로 변경", -"Please check your passwords and try again." => "암호를 확인한 다음 다시 시도하십시오.", -"Could not change your file encryption password to your login password" => "암호화 암호를 로그인 암호로 변경할 수 없습니다", "Encryption" => "암호화", "None" => "없음" ); diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php index 1aae1377516dea0252bd05e6070e985f22630626..fc31ccdb92d25209689358bc5e00522f3f2b1e36 100644 --- a/apps/files_encryption/l10n/lv.php +++ b/apps/files_encryption/l10n/lv.php @@ -1,9 +1,4 @@ "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu.", -"switched to client side encryption" => "Pārslēdzās uz klienta puses šifrēšanu", -"Change encryption password to login password" => "Mainīt šifrēšanas paroli uz ierakstīšanās paroli", -"Please check your passwords and try again." => "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz.", -"Could not change your file encryption password to your login password" => "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli", "Encryption" => "Šifrēšana", "File encryption is enabled." => "Datņu šifrēšana ir aktivēta.", "The following file types will not be encrypted:" => "Sekojošās datnes netiks šifrētas:", diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php index fc8a7954a9e5bf82650cf48c4438cfe5907e950e..b1cba96aad775d5d5256796ab530cf674759651f 100644 --- a/apps/files_encryption/l10n/nl.php +++ b/apps/files_encryption/l10n/nl.php @@ -1,8 +1,7 @@ "overgeschakeld naar client side encryptie", -"Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord", -"Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.", -"Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord", "Encryption" => "Versleuteling", +"File encryption is enabled." => "Bestandsversleuteling geactiveerd.", +"The following file types will not be encrypted:" => "De volgende bestandstypen zullen niet worden versleuteld:", +"Exclude the following file types from encryption:" => "Sluit de volgende bestandstypen uit van versleuteling:", "None" => "Geen" ); diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php index 505e8659f0893acaf0a65c063b17456df9c29630..2fa86f454f9bfbc1bbf6a361e3c44bc9b9f68739 100644 --- a/apps/files_encryption/l10n/pl.php +++ b/apps/files_encryption/l10n/pl.php @@ -1,4 +1,7 @@ "Szyfrowanie", +"File encryption is enabled." => "Szyfrowanie plików jest włączone", +"The following file types will not be encrypted:" => "Poniższe typy plików nie będą szyfrowane:", +"Exclude the following file types from encryption:" => "Wyłącz poniższe typy plików z szyfrowania:", "None" => "Brak" ); diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php index 356419e0e7fb2ac8cf73593e9a7402e05188e823..28807db72ce820c067840756b9e19ef6a3cf6d2a 100644 --- a/apps/files_encryption/l10n/pt_BR.php +++ b/apps/files_encryption/l10n/pt_BR.php @@ -1,9 +1,7 @@ "Por favor, vá ao seu cliente ownCloud e mude sua criptografia de senha para completar a conversão.", -"switched to client side encryption" => "alterado para criptografia por parte do cliente", -"Change encryption password to login password" => "Mudar senha de criptografia para senha de login", -"Please check your passwords and try again." => "Por favor, verifique suas senhas e tente novamente.", -"Could not change your file encryption password to your login password" => "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login", "Encryption" => "Criptografia", +"File encryption is enabled." => "A criptografia de arquivos está ativada.", +"The following file types will not be encrypted:" => "Os seguintes tipos de arquivo não serão criptografados:", +"Exclude the following file types from encryption:" => "Excluir os seguintes tipos de arquivo da criptografia:", "None" => "Nenhuma" ); diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php index 4dac4d2273b230f8d5ed32d1dca65a9e75087eaa..1c46011fc10b48b628dd03826aa913e6f5e9d9a2 100644 --- a/apps/files_encryption/l10n/pt_PT.php +++ b/apps/files_encryption/l10n/pt_PT.php @@ -1,9 +1,7 @@ "Por favor, use o seu cliente de sincronização do ownCloud e altere a sua password de encriptação para concluír a conversão.", -"switched to client side encryption" => "Alterado para encriptação do lado do cliente", -"Change encryption password to login password" => "Alterar a password de encriptação para a password de login", -"Please check your passwords and try again." => "Por favor verifique as suas paswords e tente de novo.", -"Could not change your file encryption password to your login password" => "Não foi possível alterar a password de encriptação de ficheiros para a sua password de login", "Encryption" => "Encriptação", +"File encryption is enabled." => "A encriptação de ficheiros está ligada", +"The following file types will not be encrypted:" => "Os seguintes ficheiros não serão encriptados:", +"Exclude the following file types from encryption:" => "Excluir da encriptação os seguintes tipos de ficheiro:", "None" => "Nenhum" ); diff --git a/apps/files_encryption/l10n/ro.php b/apps/files_encryption/l10n/ro.php index 9a3acc18dd35bc4eca97bfbd0f9f18a6863e521f..a5a6fb3cb787e2440a8993be13150190e60d8888 100644 --- a/apps/files_encryption/l10n/ro.php +++ b/apps/files_encryption/l10n/ro.php @@ -1,9 +1,4 @@ "Te rugăm să mergi în clientul ownCloud și să schimbi parola pentru a finisa conversia", -"switched to client side encryption" => "setat la encriptare locală", -"Change encryption password to login password" => "Schimbă parola de ecriptare în parolă de acces", -"Please check your passwords and try again." => "Verifică te rog parolele și înceracă din nou.", -"Could not change your file encryption password to your login password" => "Nu s-a putut schimba parola de encripție a fișierelor ca parolă de acces", "Encryption" => "Încriptare", "None" => "Niciuna" ); diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php index c11cf74ecfbb36cb64f54551b877f1313cd41323..22c1e3da3747c957863a007ce8bc54708eebe2cf 100644 --- a/apps/files_encryption/l10n/ru.php +++ b/apps/files_encryption/l10n/ru.php @@ -1,4 +1,7 @@ "Шифрование", +"File encryption is enabled." => "Шифрование файла включено.", +"The following file types will not be encrypted:" => "Следующие типы файлов не будут зашифрованы:", +"Exclude the following file types from encryption:" => "Исключить следующие типы файлов из шифрованных:", "None" => "Ничего" ); diff --git a/apps/files_encryption/l10n/ru_RU.php b/apps/files_encryption/l10n/ru_RU.php index dbbb22ed9cf2fd23811e35c6e0eca130aadeadc9..7222235485c6f50a15b797ec924ef7ab27aa2645 100644 --- a/apps/files_encryption/l10n/ru_RU.php +++ b/apps/files_encryption/l10n/ru_RU.php @@ -1,7 +1,4 @@ "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации.", -"switched to client side encryption" => "переключено на шифрование на клиентской стороне", -"Please check your passwords and try again." => "Пожалуйста, проверьте Ваш пароль и попробуйте снова", "Encryption" => "Шифрование", "None" => "Ни один" ); diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php index 3a1e4c7e194c5679016238f154722064f80bdaae..bebb6234710dc2146021ca6a95dcc86a77a658cd 100644 --- a/apps/files_encryption/l10n/sk_SK.php +++ b/apps/files_encryption/l10n/sk_SK.php @@ -1,9 +1,7 @@ "Prosím, prejdite do svojho klienta ownCloud a zmente šifrovacie heslo na dokončenie konverzie.", -"switched to client side encryption" => "prepnuté na šifrovanie prostredníctvom klienta", -"Change encryption password to login password" => "Zmeniť šifrovacie heslo na prihlasovacie", -"Please check your passwords and try again." => "Skontrolujte si heslo a skúste to znovu.", -"Could not change your file encryption password to your login password" => "Nie je možné zmeniť šifrovacie heslo na prihlasovacie", "Encryption" => "Šifrovanie", +"File encryption is enabled." => "Šifrovanie súborov nastavené.", +"The following file types will not be encrypted:" => "Uvedené typy súborov nebudú šifrované:", +"Exclude the following file types from encryption:" => "Nešifrovať uvedené typy súborov", "None" => "Žiadne" ); diff --git a/apps/files_encryption/l10n/sv.php b/apps/files_encryption/l10n/sv.php index e5294974e4efc9f35fda7d7e72f74bc1c6b24d6b..e214a937a1d4195883b87866080a523ca50acaf1 100644 --- a/apps/files_encryption/l10n/sv.php +++ b/apps/files_encryption/l10n/sv.php @@ -1,9 +1,4 @@ "Vänligen växla till ownCloud klienten och ändra ditt krypteringslösenord för att slutföra omvandlingen.", -"switched to client side encryption" => "Bytte till kryptering på klientsidan", -"Change encryption password to login password" => "Ändra krypteringslösenord till loginlösenord", -"Please check your passwords and try again." => "Kontrollera dina lösenord och försök igen.", -"Could not change your file encryption password to your login password" => "Kunde inte ändra ditt filkrypteringslösenord till ditt loginlösenord", "Encryption" => "Kryptering", "File encryption is enabled." => "Filkryptering är aktiverat.", "The following file types will not be encrypted:" => "Följande filtyper kommer inte att krypteras:", diff --git a/apps/files_encryption/l10n/th_TH.php b/apps/files_encryption/l10n/th_TH.php index 28d9e30864fa5e41471430b20701c2b71b44dd35..e46d249118606f7f97352d974cd6054385262726 100644 --- a/apps/files_encryption/l10n/th_TH.php +++ b/apps/files_encryption/l10n/th_TH.php @@ -1,9 +1,4 @@ "กรุณาสลับไปที่โปรแกรมไคลเอนต์ ownCloud ของคุณ แล้วเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสเพื่อแปลงข้อมูลให้เสร็จสมบูรณ์", -"switched to client side encryption" => "สลับไปใช้การเข้ารหัสจากโปรแกรมไคลเอนต์", -"Change encryption password to login password" => "เปลี่ยนรหัสผ่านสำหรับเข้ารหัสไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบ", -"Please check your passwords and try again." => "กรุณาตรวจสอบรหัสผ่านของคุณแล้วลองใหม่อีกครั้ง", -"Could not change your file encryption password to your login password" => "ไม่สามารถเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสไฟล์ของคุณไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบของคุณได้", "Encryption" => "การเข้ารหัส", "None" => "ไม่ต้อง" ); diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php index 0868d0a69053a9779b74f04d672f91d313cbb4c8..6b42c757e6577a64371ba5d57f679eb136d17c48 100644 --- a/apps/files_encryption/l10n/tr.php +++ b/apps/files_encryption/l10n/tr.php @@ -1,4 +1,7 @@ "Şifreleme", +"File encryption is enabled." => "Dosya şifreleme aktif.", +"The following file types will not be encrypted:" => "Belirtilen dosya tipleri şifrelenmeyecek:", +"Exclude the following file types from encryption:" => "Seçilen dosya tiplerini şifreleme:", "None" => "Hiçbiri" ); diff --git a/apps/files_encryption/l10n/uk.php b/apps/files_encryption/l10n/uk.php index 8236c5afefd415f0220732f3bf7ff483910d6206..d495714119163fc5709491d5491a6a2795609cbb 100644 --- a/apps/files_encryption/l10n/uk.php +++ b/apps/files_encryption/l10n/uk.php @@ -1,4 +1,7 @@ "Шифрування", +"File encryption is enabled." => "Увімкнуто шифрування файлів.", +"The following file types will not be encrypted:" => "Такі типи файлів шифруватись не будуть:", +"Exclude the following file types from encryption:" => "Виключити наступні типи файлів з ​​шифрування:", "None" => "Жоден" ); diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php index b86cd8397831a7c30ef324a51743e68a28de9045..0a88d1b2db60b09f23e67d9ed317e9e4aa771cc7 100644 --- a/apps/files_encryption/l10n/vi.php +++ b/apps/files_encryption/l10n/vi.php @@ -1,4 +1,7 @@ "Mã hóa", +"File encryption is enabled." => "Mã hóa file đã mở", +"The following file types will not be encrypted:" => "Loại file sau sẽ không được mã hóa", +"Exclude the following file types from encryption:" => "Việc mã hóa không bao gồm loại file sau", "None" => "Không có gì hết" ); diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php index bd8257ed602ab2edd46cdb624d20efca41a4b0ac..1655e171433828affb536dc94ee161cf710ae901 100644 --- a/apps/files_encryption/l10n/zh_TW.php +++ b/apps/files_encryption/l10n/zh_TW.php @@ -1,9 +1,4 @@ "請至您的 ownCloud 客戶端程式修改您的加密密碼以完成轉換。", -"switched to client side encryption" => "已切換為客戶端加密", -"Change encryption password to login password" => "將加密密碼修改為登入密碼", -"Please check your passwords and try again." => "請檢查您的密碼並再試一次。", -"Could not change your file encryption password to your login password" => "無法變更您的檔案加密密碼為登入密碼", "Encryption" => "加密", "None" => "無" ); diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index d00f71b61414ce4e5360114443cfd7bf56f8e9ee..437a18669e5f2e8d67bb46a9b01752b0873f896b 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -4,8 +4,8 @@ * ownCloud * * @author Sam Tuke, Frank Karlitschek, Robin Appelman - * @copyright 2012 Sam Tuke samtuke@owncloud.com, - * Robin Appelman icewind@owncloud.com, Frank Karlitschek + * @copyright 2012 Sam Tuke samtuke@owncloud.com, + * Robin Appelman icewind@owncloud.com, Frank Karlitschek * frank@owncloud.org * * This library is free software; you can redistribute it and/or @@ -47,15 +47,15 @@ class Crypt { public static function mode( $user = null ) { return 'server'; - + } - - /** - * @brief Create a new encryption keypair - * @return array publicKey, privatekey - */ + + /** + * @brief Create a new encryption keypair + * @return array publicKey, privatekey + */ public static function createKeypair() { - + $res = openssl_pkey_new(); // Get private key @@ -63,570 +63,543 @@ class Crypt { // Get public key $publicKey = openssl_pkey_get_details( $res ); - + $publicKey = $publicKey['key']; - + return( array( 'publicKey' => $publicKey, 'privateKey' => $privateKey ) ); - + } - - /** - * @brief Add arbitrary padding to encrypted data - * @param string $data data to be padded - * @return padded data - * @note In order to end up with data exactly 8192 bytes long we must - * add two letters. It is impossible to achieve exactly 8192 length - * blocks with encryption alone, hence padding is added to achieve the - * required length. - */ + + /** + * @brief Add arbitrary padding to encrypted data + * @param string $data data to be padded + * @return padded data + * @note In order to end up with data exactly 8192 bytes long we must + * add two letters. It is impossible to achieve exactly 8192 length + * blocks with encryption alone, hence padding is added to achieve the + * required length. + */ public static function addPadding( $data ) { - + $padded = $data . 'xx'; - + return $padded; - + } - - /** - * @brief Remove arbitrary padding to encrypted data - * @param string $padded padded data to remove padding from - * @return unpadded data on success, false on error - */ + + /** + * @brief Remove arbitrary padding to encrypted data + * @param string $padded padded data to remove padding from + * @return unpadded data on success, false on error + */ public static function removePadding( $padded ) { - + if ( substr( $padded, -2 ) == 'xx' ) { - + $data = substr( $padded, 0, -2 ); - + return $data; - + } else { - + // TODO: log the fact that unpadded data was submitted for removal of padding return false; - + } - + } - - /** - * @brief Check if a file's contents contains an IV and is symmetrically encrypted - * @return true / false - * @note see also OCA\Encryption\Util->isEncryptedPath() - */ + + /** + * @brief Check if a file's contents contains an IV and is symmetrically encrypted + * @return true / false + * @note see also OCA\Encryption\Util->isEncryptedPath() + */ public static function isCatfile( $content ) { - + + if ( !$content ) { + + return false; + + } + $noPadding = self::removePadding( $content ); - + // Fetch encryption metadata from end of file $meta = substr( $noPadding, -22 ); - + // Fetch IV from end of file $iv = substr( $meta, -16 ); - + // Fetch identifier from start of metadata $identifier = substr( $meta, 0, 6 ); - + if ( $identifier == '00iv00') { - + return true; - + } else { - + return false; - + } - + } - + /** * Check if a file is encrypted according to database file cache * @param string $path * @return bool */ public static function isEncryptedMeta( $path ) { - + // TODO: Use DI to get \OC\Files\Filesystem out of here - + // Fetch all file metadata from DB $metadata = \OC\Files\Filesystem::getFileInfo( $path, '' ); - + // Return encryption status return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted']; - + } - - /** - * @brief Check if a file is encrypted via legacy system - * @param string $relPath The path of the file, relative to user/data; - * e.g. filename or /Docs/filename, NOT admin/files/filename - * @return true / false - */ + + /** + * @brief Check if a file is encrypted via legacy system + * @param string $relPath The path of the file, relative to user/data; + * e.g. filename or /Docs/filename, NOT admin/files/filename + * @return true / false + */ public static function isLegacyEncryptedContent( $data, $relPath ) { - + // Fetch all file metadata from DB $metadata = \OC\Files\Filesystem::getFileInfo( $relPath, '' ); - + // If a file is flagged with encryption in DB, but isn't a // valid content + IV combination, it's probably using the // legacy encryption system - if ( - isset( $metadata['encrypted'] ) - and $metadata['encrypted'] === true - and ! self::isCatfile( $data ) + if ( + isset( $metadata['encrypted'] ) + and $metadata['encrypted'] === true + and ! self::isCatfile( $data ) ) { - + return true; - + } else { - + return false; - + } - + } - - /** - * @brief Symmetrically encrypt a string - * @returns encrypted file - */ + + /** + * @brief Symmetrically encrypt a string + * @returns encrypted file + */ public static function encrypt( $plainContent, $iv, $passphrase = '' ) { - + if ( $encryptedContent = openssl_encrypt( $plainContent, 'AES-128-CFB', $passphrase, false, $iv ) ) { return $encryptedContent; - + } else { - + \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed', \OC_Log::ERROR ); - + return false; - + } - + } - - /** - * @brief Symmetrically decrypt a string - * @returns decrypted file - */ + + /** + * @brief Symmetrically decrypt a string + * @returns decrypted file + */ public static function decrypt( $encryptedContent, $iv, $passphrase ) { - + if ( $plainContent = openssl_decrypt( $encryptedContent, 'AES-128-CFB', $passphrase, false, $iv ) ) { return $plainContent; - - + + } else { - + throw new \Exception( 'Encryption library: Decryption (symmetric) of content failed' ); - - return false; - + } - + } - - /** - * @brief Concatenate encrypted data with its IV and padding - * @param string $content content to be concatenated - * @param string $iv IV to be concatenated - * @returns string concatenated content - */ + + /** + * @brief Concatenate encrypted data with its IV and padding + * @param string $content content to be concatenated + * @param string $iv IV to be concatenated + * @returns string concatenated content + */ public static function concatIv ( $content, $iv ) { - + $combined = $content . '00iv00' . $iv; - + return $combined; - + } - - /** - * @brief Split concatenated data and IV into respective parts - * @param string $catFile concatenated data to be split - * @returns array keys: encrypted, iv - */ + + /** + * @brief Split concatenated data and IV into respective parts + * @param string $catFile concatenated data to be split + * @returns array keys: encrypted, iv + */ public static function splitIv ( $catFile ) { - + // Fetch encryption metadata from end of file $meta = substr( $catFile, -22 ); - + // Fetch IV from end of file $iv = substr( $meta, -16 ); - + // Remove IV and IV identifier text to expose encrypted content $encrypted = substr( $catFile, 0, -22 ); - + $split = array( 'encrypted' => $encrypted - , 'iv' => $iv + , 'iv' => $iv ); - + return $split; - + } - - /** - * @brief Symmetrically encrypts a string and returns keyfile content - * @param $plainContent content to be encrypted in keyfile - * @returns encrypted content combined with IV - * @note IV need not be specified, as it will be stored in the returned keyfile - * and remain accessible therein. - */ + + /** + * @brief Symmetrically encrypts a string and returns keyfile content + * @param $plainContent content to be encrypted in keyfile + * @returns encrypted content combined with IV + * @note IV need not be specified, as it will be stored in the returned keyfile + * and remain accessible therein. + */ public static function symmetricEncryptFileContent( $plainContent, $passphrase = '' ) { - + if ( !$plainContent ) { - + return false; - + } - + $iv = self::generateIv(); - + if ( $encryptedContent = self::encrypt( $plainContent, $iv, $passphrase ) ) { - - // Combine content to encrypt with IV identifier and actual IV - $catfile = self::concatIv( $encryptedContent, $iv ); - - $padded = self::addPadding( $catfile ); - - return $padded; - + + // Combine content to encrypt with IV identifier and actual IV + $catfile = self::concatIv( $encryptedContent, $iv ); + + $padded = self::addPadding( $catfile ); + + return $padded; + } else { - + \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed', \OC_Log::ERROR ); - + return false; - + } - + } /** - * @brief Symmetrically decrypts keyfile content - * @param string $source - * @param string $target - * @param string $key the decryption key - * @returns decrypted content - * - * This function decrypts a file - */ + * @brief Symmetrically decrypts keyfile content + * @param string $source + * @param string $target + * @param string $key the decryption key + * @returns decrypted content + * + * This function decrypts a file + */ public static function symmetricDecryptFileContent( $keyfileContent, $passphrase = '' ) { - + if ( !$keyfileContent ) { - + throw new \Exception( 'Encryption library: no data provided for decryption' ); - + } - + // Remove padding $noPadding = self::removePadding( $keyfileContent ); - + // Split into enc data and catfile $catfile = self::splitIv( $noPadding ); - + if ( $plainContent = self::decrypt( $catfile['encrypted'], $catfile['iv'], $passphrase ) ) { - + return $plainContent; - + } - + } - + /** - * @brief Creates symmetric keyfile content using a generated key - * @param string $plainContent content to be encrypted - * @returns array keys: key, encrypted - * @note symmetricDecryptFileContent() can be used to decrypt files created using this method - * - * This function decrypts a file - */ + * @brief Creates symmetric keyfile content using a generated key + * @param string $plainContent content to be encrypted + * @returns array keys: key, encrypted + * @note symmetricDecryptFileContent() can be used to decrypt files created using this method + * + * This function decrypts a file + */ public static function symmetricEncryptFileContentKeyfile( $plainContent ) { - + $key = self::generateKey(); - + if( $encryptedContent = self::symmetricEncryptFileContent( $plainContent, $key ) ) { - + return array( 'key' => $key - , 'encrypted' => $encryptedContent + , 'encrypted' => $encryptedContent ); - + } else { - + return false; - + } - + } - + /** - * @brief Create asymmetrically encrypted keyfile content using a generated key - * @param string $plainContent content to be encrypted - * @returns array keys: key, encrypted - * @note symmetricDecryptFileContent() can be used to decrypt files created using this method - * - * This function decrypts a file - */ + * @brief Create asymmetrically encrypted keyfile content using a generated key + * @param string $plainContent content to be encrypted + * @returns array keys: key, encrypted + * @note symmetricDecryptFileContent() can be used to decrypt files created using this method + * + * This function decrypts a file + */ public static function multiKeyEncrypt( $plainContent, array $publicKeys ) { - + // Set empty vars to be set by openssl by reference $sealed = ''; $envKeys = array(); - + if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) { - + return array( 'keys' => $envKeys - , 'encrypted' => $sealed + , 'encrypted' => $sealed ); - + } else { - + return false; - + } - + } - + /** - * @brief Asymmetrically encrypt a file using multiple public keys - * @param string $plainContent content to be encrypted - * @returns string $plainContent decrypted string - * @note symmetricDecryptFileContent() can be used to decrypt files created using this method - * - * This function decrypts a file - */ + * @brief Asymmetrically encrypt a file using multiple public keys + * @param string $plainContent content to be encrypted + * @returns string $plainContent decrypted string + * @note symmetricDecryptFileContent() can be used to decrypt files created using this method + * + * This function decrypts a file + */ public static function multiKeyDecrypt( $encryptedContent, $envKey, $privateKey ) { - + if ( !$encryptedContent ) { - + return false; - + } - + if ( openssl_open( $encryptedContent, $plainContent, $envKey, $privateKey ) ) { - + return $plainContent; - + } else { - + \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR ); - + return false; - + } - + } - - /** - * @brief Asymetrically encrypt a string using a public key - * @returns encrypted file - */ + + /** + * @brief Asymmetrically encrypt a string using a public key + * @returns encrypted file + */ public static function keyEncrypt( $plainContent, $publicKey ) { - + openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey ); - + return $encryptedContent; - + } - - /** - * @brief Asymetrically decrypt a file using a private key - * @returns decrypted file - */ + + /** + * @brief Asymetrically decrypt a file using a private key + * @returns decrypted file + */ public static function keyDecrypt( $encryptedContent, $privatekey ) { - + openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey ); - + return $plainContent; - + } - /** - * @brief Encrypts content symmetrically and generates keyfile asymmetrically - * @returns array containing catfile and new keyfile. - * keys: data, key - * @note this method is a wrapper for combining other crypt class methods - */ + /** + * @brief Encrypts content symmetrically and generates keyfile asymmetrically + * @returns array containing catfile and new keyfile. + * keys: data, key + * @note this method is a wrapper for combining other crypt class methods + */ public static function keyEncryptKeyfile( $plainContent, $publicKey ) { - + // Encrypt plain data, generate keyfile & encrypted file $cryptedData = self::symmetricEncryptFileContentKeyfile( $plainContent ); - + // Encrypt keyfile $cryptedKey = self::keyEncrypt( $cryptedData['key'], $publicKey ); - + return array( 'data' => $cryptedData['encrypted'], 'key' => $cryptedKey ); - + } - - /** - * @brief Takes catfile, keyfile, and private key, and - * performs decryption - * @returns decrypted content - * @note this method is a wrapper for combining other crypt class methods - */ + + /** + * @brief Takes catfile, keyfile, and private key, and + * performs decryption + * @returns decrypted content + * @note this method is a wrapper for combining other crypt class methods + */ public static function keyDecryptKeyfile( $catfile, $keyfile, $privateKey ) { - + // Decrypt the keyfile with the user's private key $decryptedKeyfile = self::keyDecrypt( $keyfile, $privateKey ); - + // Decrypt the catfile symmetrically using the decrypted keyfile $decryptedData = self::symmetricDecryptFileContent( $catfile, $decryptedKeyfile ); - + return $decryptedData; - + } - + /** - * @brief Symmetrically encrypt a file by combining encrypted component data blocks - */ + * @brief Symmetrically encrypt a file by combining encrypted component data blocks + */ public static function symmetricBlockEncryptFileContent( $plainContent, $key ) { - + $crypted = ''; - + $remaining = $plainContent; - + $testarray = array(); - + while( strlen( $remaining ) ) { - + //echo "\n\n\$block = ".substr( $remaining, 0, 6126 ); - + // Encrypt a chunk of unencrypted data and add it to the rest $block = self::symmetricEncryptFileContent( substr( $remaining, 0, 6126 ), $key ); - + $padded = self::addPadding( $block ); - + $crypted .= $block; - + $testarray[] = $block; - + // Remove the data already encrypted from remaining unencrypted data $remaining = substr( $remaining, 6126 ); - + } - - //echo "hags "; - - //echo "\n\n\n\$crypted = $crypted\n\n\n"; - - //print_r($testarray); - + return $crypted; } /** - * @brief Symmetrically decrypt a file by combining encrypted component data blocks - */ + * @brief Symmetrically decrypt a file by combining encrypted component data blocks + */ public static function symmetricBlockDecryptFileContent( $crypted, $key ) { - + $decrypted = ''; - + $remaining = $crypted; - + $testarray = array(); - + while( strlen( $remaining ) ) { - + $testarray[] = substr( $remaining, 0, 8192 ); - + // Decrypt a chunk of unencrypted data and add it to the rest $decrypted .= self::symmetricDecryptFileContent( $remaining, $key ); - + // Remove the data already encrypted from remaining unencrypted data $remaining = substr( $remaining, 8192 ); - + } - - //echo "\n\n\$testarray = "; print_r($testarray); - + return $decrypted; - + } - - /** - * @brief Generates a pseudo random initialisation vector - * @return String $iv generated IV - */ + + /** + * @brief Generates a pseudo random initialisation vector + * @return String $iv generated IV + */ public static function generateIv() { - + if ( $random = openssl_random_pseudo_bytes( 12, $strong ) ) { - + if ( !$strong ) { - + // If OpenSSL indicates randomness is insecure, log error \OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OC_Log::WARN ); - + } - + // We encode the iv purely for string manipulation // purposes - it gets decoded before use $iv = base64_encode( $random ); - + return $iv; - + } else { - - throw new Exception( 'Generating IV failed' ); - + + throw new \Exception( 'Generating IV failed' ); + } - + } - - /** - * @brief Generate a pseudo random 1024kb ASCII key - * @returns $key Generated key - */ + + /** + * @brief Generate a pseudo random 1024kb ASCII key + * @returns $key Generated key + */ public static function generateKey() { - + // Generate key if ( $key = base64_encode( openssl_random_pseudo_bytes( 183, $strong ) ) ) { - + if ( !$strong ) { - + // If OpenSSL indicates randomness is insecure, log error - throw new Exception ( 'Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()' ); - + throw new \Exception ( 'Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()' ); + } - + return $key; - + } else { - + return false; - - } - - } - public static function changekeypasscode( $oldPassword, $newPassword ) { - - if ( \OCP\User::isLoggedIn() ) { - - $key = Keymanager::getPrivateKey( $user, $view ); - - if ( ( $key = Crypt::symmetricDecryptFileContent($key,$oldpasswd) ) ) { - - if ( ( $key = Crypt::symmetricEncryptFileContent( $key, $newpasswd ) ) ) { - - Keymanager::setPrivateKey( $key ); - - return true; - } - - } - } - - return false; - + } - + /** * @brief Get the blowfish encryption handeler for a key * @param $key string (optional) @@ -635,21 +608,21 @@ class Crypt { * if the key is left out, the default handeler will be used */ public static function getBlowfish( $key = '' ) { - + if ( $key ) { - + return new \Crypt_Blowfish( $key ); - + } else { - + return false; - + } - + } - + public static function legacyCreateKey( $passphrase ) { - + // Generate a random integer $key = mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ); @@ -657,9 +630,9 @@ class Crypt { $legacyEncKey = self::legacyEncrypt( $key, $passphrase ); return $legacyEncKey; - + } - + /** * @brief encrypts content using legacy blowfish system * @param $content the cleartext message you want to encrypt @@ -669,54 +642,54 @@ class Crypt { * This function encrypts an content */ public static function legacyEncrypt( $content, $passphrase = '' ) { - + $bf = self::getBlowfish( $passphrase ); - + return $bf->encrypt( $content ); - + } - + /** - * @brief decrypts content using legacy blowfish system - * @param $content the cleartext message you want to decrypt - * @param $key the encryption key (optional) - * @returns cleartext content - * - * This function decrypts an content - */ + * @brief decrypts content using legacy blowfish system + * @param $content the cleartext message you want to decrypt + * @param $key the encryption key (optional) + * @returns cleartext content + * + * This function decrypts an content + */ public static function legacyDecrypt( $content, $passphrase = '' ) { - + $bf = self::getBlowfish( $passphrase ); - + $decrypted = $bf->decrypt( $content ); - + $trimmed = rtrim( $decrypted, "\0" ); - + return $trimmed; - + } - + public static function legacyKeyRecryptKeyfile( $legacyEncryptedContent, $legacyPassphrase, $publicKey, $newPassphrase ) { - + $decrypted = self::legacyDecrypt( $legacyEncryptedContent, $legacyPassphrase ); - + $recrypted = self::keyEncryptKeyfile( $decrypted, $publicKey ); - + return $recrypted; - + } - + /** - * @brief Re-encryptes a legacy blowfish encrypted file using AES with integrated IV - * @param $legacyContent the legacy encrypted content to re-encrypt - * @returns cleartext content - * - * This function decrypts an content - */ + * @brief Re-encryptes a legacy blowfish encrypted file using AES with integrated IV + * @param $legacyContent the legacy encrypted content to re-encrypt + * @returns cleartext content + * + * This function decrypts an content + */ public static function legacyRecrypt( $legacyContent, $legacyPassphrase, $newPassphrase ) { - + // TODO: write me - + } - -} \ No newline at end of file + +} diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 43af70dacc2be7a6b502bc68dd397130cbb738a2..955877971540bf86144ec6048ec47742cefff752 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -1,325 +1,323 @@ - - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE - * License as published by the Free Software Foundation; either - * version 3 of the License, or any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU AFFERO GENERAL PUBLIC LICENSE for more details. - * - * You should have received a copy of the GNU Affero General Public - * License along with this library. If not, see . - * - */ - -namespace OCA\Encryption; - -/** - * @brief Class to manage storage and retrieval of encryption keys - * @note Where a method requires a view object, it's root must be '/' - */ -class Keymanager { - - /** - * @brief retrieve the ENCRYPTED private key from a user - * - * @return string private key or false - * @note the key returned by this method must be decrypted before use - */ - public static function getPrivateKey( \OC_FilesystemView $view, $user ) { - - $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key'; - - $key = $view->file_get_contents( $path ); - - return $key; - } - - /** - * @brief retrieve public key for a specified user - * @return string public key or false - */ - public static function getPublicKey( \OC_FilesystemView $view, $userId ) { - - return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); - - } - - /** - * @brief retrieve both keys from a user (private and public) - * @return array keys: privateKey, publicKey - */ - public static function getUserKeys( \OC_FilesystemView $view, $userId ) { - - return array( - 'publicKey' => self::getPublicKey( $view, $userId ) - , 'privateKey' => self::getPrivateKey( $view, $userId ) - ); - - } - - /** - * @brief Retrieve public keys of all users with access to a file - * @param string $path Path to file - * @return array of public keys for the given file - * @note Checks that the sharing app is enabled should be performed - * by client code, that isn't checked here - */ - public static function getPublicKeys( \OC_FilesystemView $view, $userId, $filePath ) { - - $path = ltrim( $path, '/' ); - - $filepath = '/' . $userId . '/files/' . $filePath; - - // Check if sharing is enabled - if ( OC_App::isEnabled( 'files_sharing' ) ) { - - - - } else { - - // check if it is a file owned by the user and not shared at all - $userview = new \OC_FilesystemView( '/'.$userId.'/files/' ); - - if ( $userview->file_exists( $path ) ) { - - $users[] = $userId; - - } - - } - - $view = new \OC_FilesystemView( '/public-keys/' ); - - $keylist = array(); - - $count = 0; - - foreach ( $users as $user ) { - - $keylist['key'.++$count] = $view->file_get_contents( $user.'.public.key' ); - - } - - return $keylist; - - } - - /** - * @brief store file encryption key - * - * @param string $path relative path of the file, including filename - * @param string $key - * @return bool true/false - * @note The keyfile is not encrypted here. Client code must - * asymmetrically encrypt the keyfile before passing it to this method - */ - public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { - - $basePath = '/' . $userId . '/files_encryption/keyfiles'; - - $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - - if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { - - - - } else { - - // Save the keyfile in parallel directory - return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); - - } - - } - - /** - * @brief retrieve keyfile for an encrypted file - * @param string file name - * @return string file key or false on failure - * @note The keyfile returned is asymmetrically encrypted. Decryption - * of the keyfile must be performed by client code - */ - public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { - - $filePath_f = ltrim( $filePath, '/' ); - - $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - - if ( $view->file_exists( $catfilePath ) ) { - - return $view->file_get_contents( $catfilePath ); - - } else { - - return false; - - } - - } - - /** - * @brief Delete a keyfile - * - * @param OC_FilesystemView $view - * @param string $userId username - * @param string $path path of the file the key belongs to - * @return bool Outcome of unlink operation - * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT - * /data/admin/files/mydoc.txt - */ - public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) { - - $trimmed = ltrim( $path, '/' ); - $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key'; - - // Unlink doesn't tell us if file was deleted (not found returns - // true), so we perform our own test - if ( $view->file_exists( $keyPath ) ) { - - return $view->unlink( $keyPath ); - - } else { - - \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR ); - - return false; - - } - - } - - /** - * @brief store private key from the user - * @param string key - * @return bool - * @note Encryption of the private key must be performed by client code - * as no encryption takes place here - */ - public static function setPrivateKey( $key ) { - - $user = \OCP\User::getUser(); - - $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); - - \OC_FileProxy::$enabled = false; - - if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - - return $view->file_put_contents( $user . '.private.key', $key ); - - \OC_FileProxy::$enabled = true; - - } - - /** - * @brief store private keys from the user - * - * @param string privatekey - * @param string publickey - * @return bool true/false - */ - public static function setUserKeys($privatekey, $publickey) { - - return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) ); - - } - - /** - * @brief store public key of the user - * - * @param string key - * @return bool true/false - */ - public static function setPublicKey( $key ) { - - $view = new \OC_FilesystemView( '/public-keys' ); - - \OC_FileProxy::$enabled = false; - - if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - - return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); - - \OC_FileProxy::$enabled = true; - - } - - /** - * @note 'shareKey' is a more user-friendly name for env_key - */ - public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { - - $basePath = '/' . $userId . '/files_encryption/share-keys'; - - $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - - return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey ); - - } - - /** - * @brief Make preparations to vars and filesystem for saving a keyfile - */ - public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) { - - $targetPath = ltrim( $path, '/' ); - - $path_parts = pathinfo( $targetPath ); - - // If the file resides within a subdirectory, create it - if ( - isset( $path_parts['dirname'] ) - && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] ) - ) { - - $view->mkdir( $basePath . '/' . $path_parts['dirname'] ); - - } - - return $targetPath; - - } - - /** - * @brief change password of private encryption key - * - * @param string $oldpasswd old password - * @param string $newpasswd new password - * @return bool true/false - */ - public static function changePasswd($oldpasswd, $newpasswd) { - - if ( \OCP\User::checkPassword(\OCP\User::getUser(), $newpasswd) ) { - return Crypt::changekeypasscode($oldpasswd, $newpasswd); - } - return false; - - } - - /** - * @brief Fetch the legacy encryption key from user files - * @param string $login used to locate the legacy key - * @param string $passphrase used to decrypt the legacy key - * @return true / false - * - * if the key is left out, the default handeler will be used - */ - public function getLegacyKey() { - - $user = \OCP\User::getUser(); - $view = new \OC_FilesystemView( '/' . $user ); - return $view->file_get_contents( 'encryption.key' ); - - } - + + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + * + */ + +namespace OCA\Encryption; + +/** + * @brief Class to manage storage and retrieval of encryption keys + * @note Where a method requires a view object, it's root must be '/' + */ +class Keymanager { + + /** + * @brief retrieve the ENCRYPTED private key from a user + * + * @return string private key or false + * @note the key returned by this method must be decrypted before use + */ + public static function getPrivateKey( \OC_FilesystemView $view, $user ) { + + $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key'; + + $key = $view->file_get_contents( $path ); + + return $key; + } + + /** + * @brief retrieve public key for a specified user + * @param \OC_FilesystemView $view + * @param $userId + * @return string public key or false + */ + public static function getPublicKey( \OC_FilesystemView $view, $userId ) { + + return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); + + } + + /** + * @brief retrieve both keys from a user (private and public) + * @param \OC_FilesystemView $view + * @param $userId + * @return array keys: privateKey, publicKey + */ + public static function getUserKeys( \OC_FilesystemView $view, $userId ) { + + return array( + 'publicKey' => self::getPublicKey( $view, $userId ) + , 'privateKey' => self::getPrivateKey( $view, $userId ) + ); + + } + + /** + * @brief Retrieve public keys of all users with access to a file + * @param string $path Path to file + * @return array of public keys for the given file + * @note Checks that the sharing app is enabled should be performed + * by client code, that isn't checked here + */ + public static function getPublicKeys( \OC_FilesystemView $view, $userId, $filePath ) { + + $path = ltrim( $path, '/' ); + + $filepath = '/' . $userId . '/files/' . $filePath; + + // Check if sharing is enabled + if ( OC_App::isEnabled( 'files_sharing' ) ) { + + + + } else { + + // check if it is a file owned by the user and not shared at all + $userview = new \OC_FilesystemView( '/'.$userId.'/files/' ); + + if ( $userview->file_exists( $path ) ) { + + $users[] = $userId; + + } + + } + + $view = new \OC_FilesystemView( '/public-keys/' ); + + $keylist = array(); + + $count = 0; + + foreach ( $users as $user ) { + + $keylist['key'.++$count] = $view->file_get_contents( $user.'.public.key' ); + + } + + return $keylist; + + } + + /** + * @brief store file encryption key + * + * @param string $path relative path of the file, including filename + * @param string $key + * @return bool true/false + * @note The keyfile is not encrypted here. Client code must + * asymmetrically encrypt the keyfile before passing it to this method + */ + public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { + + $basePath = '/' . $userId . '/files_encryption/keyfiles'; + + $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + + if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { + + + + } else { + + // Save the keyfile in parallel directory + return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); + + } + + } + + /** + * @brief retrieve keyfile for an encrypted file + * @param \OC_FilesystemView $view + * @param $userId + * @param $filePath + * @internal param \OCA\Encryption\file $string name + * @return string file key or false + * @note The keyfile returned is asymmetrically encrypted. Decryption + * of the keyfile must be performed by client code + */ + public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { + + $filePath_f = ltrim( $filePath, '/' ); + + $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + + if ( $view->file_exists( $catfilePath ) ) { + + return $view->file_get_contents( $catfilePath ); + + } else { + + return false; + + } + + } + + /** + * @brief Delete a keyfile + * + * @param OC_FilesystemView $view + * @param string $userId username + * @param string $path path of the file the key belongs to + * @return bool Outcome of unlink operation + * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT + * /data/admin/files/mydoc.txt + */ + public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) { + + $trimmed = ltrim( $path, '/' ); + $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key'; + + // Unlink doesn't tell us if file was deleted (not found returns + // true), so we perform our own test + if ( $view->file_exists( $keyPath ) ) { + + return $view->unlink( $keyPath ); + + } else { + + \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR ); + + return false; + + } + + } + + /** + * @brief store private key from the user + * @param string key + * @return bool + * @note Encryption of the private key must be performed by client code + * as no encryption takes place here + */ + public static function setPrivateKey( $key ) { + + $user = \OCP\User::getUser(); + + $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); + + \OC_FileProxy::$enabled = false; + + if ( !$view->file_exists( '' ) ) + $view->mkdir( '' ); + + return $view->file_put_contents( $user . '.private.key', $key ); + + } + + /** + * @brief store private keys from the user + * + * @param string privatekey + * @param string publickey + * @return bool true/false + */ + public static function setUserKeys($privatekey, $publickey) { + + return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) ); + + } + + /** + * @brief store public key of the user + * + * @param string key + * @return bool true/false + */ + public static function setPublicKey( $key ) { + + $view = new \OC_FilesystemView( '/public-keys' ); + + \OC_FileProxy::$enabled = false; + + if ( !$view->file_exists( '' ) ) + $view->mkdir( '' ); + + return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); + + + } + + /** + * @brief store file encryption key + * + * @param string $path relative path of the file, including filename + * @param string $key + * @param null $view + * @param string $dbClassName + * @return bool true/false + * @note The keyfile is not encrypted here. Client code must + * asymmetrically encrypt the keyfile before passing it to this method + */ + public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { + + $basePath = '/' . $userId . '/files_encryption/share-keys'; + + $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + + return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey ); + + } + + /** + * @brief Make preparations to vars and filesystem for saving a keyfile + */ + public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) { + + $targetPath = ltrim( $path, '/' ); + + $path_parts = pathinfo( $targetPath ); + + // If the file resides within a subdirectory, create it + if ( + isset( $path_parts['dirname'] ) + && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] ) + ) { + + $view->mkdir( $basePath . '/' . $path_parts['dirname'] ); + + } + + return $targetPath; + + } + + /** + * @brief Fetch the legacy encryption key from user files + * @param string $login used to locate the legacy key + * @param string $passphrase used to decrypt the legacy key + * @return true / false + * + * if the key is left out, the default handler will be used + */ + public function getLegacyKey() { + + $user = \OCP\User::getUser(); + $view = new \OC_FilesystemView( '/' . $user ); + return $view->file_get_contents( 'encryption.key' ); + + } + } \ No newline at end of file diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index d4b993b4c0638a7a6596c56cfc5edd8fd7955814..65d7d57a05a740bd164e7476b1c3910afcd7f49f 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -173,7 +173,7 @@ class Stream { // $count will always be 8192 https://bugs.php.net/bug.php?id=21641 // This makes this function a lot simpler, but will break this class if the above 'bug' gets 'fixed' - \OCP\Util::writeLog( 'files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', OCP\Util::FATAL ); + \OCP\Util::writeLog( 'files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', \OCP\Util::FATAL ); die(); @@ -209,7 +209,7 @@ class Stream { } /** - * @brief Encrypt and pad data ready for writting to disk + * @brief Encrypt and pad data ready for writing to disk * @param string $plainData data to be encrypted * @param string $key key to use for encryption * @return encrypted data on success, false on failure @@ -403,7 +403,7 @@ class Stream { $encrypted = $this->preWriteEncrypt( $chunk, $this->keyfile ); // Write the data chunk to disk. This will be - // addended to the last data chunk if the file + // attended to the last data chunk if the file // being handled totals more than 6126 bytes fwrite( $this->handle, $encrypted ); diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php index 6fe4ea6d564c1b84ed64901941155aaf77c32ccf..af0273cfdc4dc4cf1a5c31f6155ff158c8b04d5b 100644 --- a/apps/files_encryption/settings-personal.php +++ b/apps/files_encryption/settings-personal.php @@ -12,8 +12,6 @@ $blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_b $tmpl->assign( 'blacklist', $blackList ); -OCP\Util::addscript('files_encryption','settings-personal'); - return $tmpl->fetchPage(); return null; diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php index 1f71efb1735772e8c864c7886ae3d36c903f6471..8c3bf491d840fba150d5689082007d1cd2787d2f 100644 --- a/apps/files_encryption/templates/settings-personal.php +++ b/apps/files_encryption/templates/settings-personal.php @@ -8,7 +8,7 @@

- t( 'The following file types will not be encrypted:' ); ?> + t( 'The following file types will not be encrypted:' ); ?>

    @@ -16,7 +16,7 @@ -

    +
diff --git a/apps/files_external/3rdparty/phpseclib/AUTHORS b/apps/files_external/3rdparty/phpseclib/AUTHORS new file mode 100644 index 0000000000000000000000000000000000000000..7bae8ab94e1a2b05c0fe3f81f7897dfc114af773 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/AUTHORS @@ -0,0 +1,3 @@ +phpseclib Lead Developer: TerraFrost (Jim Wigginton) + +phpseclib Developers: monnerat (Patrick Monnerat) \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/LICENSE b/apps/files_external/3rdparty/phpseclib/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..6ecd9b9bec11f7587fd76974810a90bb7faad537 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/LICENSE @@ -0,0 +1,21 @@ +Copyright 2007-2012 TerraFrost and other contributors +http://phpseclib.sourceforge.net/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/README.md b/apps/files_external/3rdparty/phpseclib/README.md new file mode 100644 index 0000000000000000000000000000000000000000..fbd58bd82b1f2c1b3cc25c13994359c12325e56c --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/README.md @@ -0,0 +1,16 @@ +# phpseclib - PHP Secure Communications Library + +[![Build Status](https://secure.travis-ci.org/phpseclib/phpseclib.png?branch=master)](http://travis-ci.org/phpseclib/phpseclib) + +MIT-licensed pure-PHP implementations of an arbitrary-precision integer +arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, Rijndael, +AES, SSH-1, SSH-2, SFTP, and X.509 + +* [Download (0.3.1)](http://sourceforge.net/projects/phpseclib/files/phpseclib0.3.1.zip/download) +* [Browse Git](https://github.com/phpseclib/phpseclib) +* [Documentation](http://phpseclib.sourceforge.net/) +* [Support](http://www.frostjedi.com/phpbb/viewforum.php?f=46) +* [Code Coverage Report](http://phpseclib.bantux.org/code_coverage/latest/) + +PEAR Channel +PEAR Channel: [phpseclib.sourceforge.net](http://phpseclib.sourceforge.net/pear.htm) diff --git a/apps/files_external/3rdparty/phpseclib/composer.json b/apps/files_external/3rdparty/phpseclib/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..11008cd81d1279b744b109df6bb094bb3d6d75e0 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/composer.json @@ -0,0 +1,48 @@ +{ + "name": "phpseclib/phpseclib", + "type": "library", + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "keywords": [ + "security", + "crypto", + "cryptography", + "encryption", + "signature", + "signing", + "rsa", + "aes", + "ssh", + "sftp", + "x509", + "x.509", + "asn1", + "asn.1", + "BigInteger" + ], + "homepage": "http://phpseclib.sourceforge.net", + "license": "MIT", + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Developer" + } + ], + "require": { + "php": ">=5.0.0" + }, + "suggest": { + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP >= 4.3.3." + }, + "include-path": ["phpseclib/"], + "autoload": { + "psr-0": { + "Crypt": "phpseclib/", + "File": "phpseclib/", + "Math": "phpseclib/", + "Net": "phpseclib/" + } + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/AES.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/AES.php new file mode 100644 index 0000000000000000000000000000000000000000..bc05adf67a710925749176d6c1c2a595a9c4f274 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/AES.php @@ -0,0 +1,946 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $aes->decrypt($aes->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_AES + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: AES.php,v 1.7 2010/02/09 06:10:25 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Rijndael + */ +if (!class_exists('Crypt_Rijndael')) { + require_once 'Rijndael.php'; +} + +/**#@+ + * @access public + * @see Crypt_AES::encrypt() + * @see Crypt_AES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_AES_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_AES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_AES_MODE_CBC', 2); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_AES_MODE_CFB', 3); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_AES_MODE_OFB', 4); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_AES::Crypt_AES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_AES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_AES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of AES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_AES + */ +class Crypt_AES extends Crypt_Rijndael { + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * mcrypt resource for CFB mode + * + * @see Crypt_AES::encrypt() + * @see Crypt_AES::decrypt() + * @var String + * @access private + */ + var $ecb; + + /** + * The SubByte S-Box + * + * @see Crypt_AES::_encryptBlock() + * @var Array + * @access intern + */ + var $sbox = array( + 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, + 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, + 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, + 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, + 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, + 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, + 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, + 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, + 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, + 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, + 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, + 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, + 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, + 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, + 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, + 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 + ); + + /** + * The inverse SubByte S-Box + * + * @see Crypt_AES::_decryptBlock() + * @var Array + * @access intern + */ + var $isbox = array( + 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, + 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, + 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, + 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, + 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, + 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, + 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, + 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, + 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, + 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, + 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, + 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, + 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, + 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, + 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D + ); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC. If not explictly set, CRYPT_AES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_AES + * @access public + */ + function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + { + if ( !defined('CRYPT_AES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && in_array('rijndael-128', mcrypt_list_algorithms()): + define('CRYPT_AES_MODE', CRYPT_AES_MODE_MCRYPT); + break; + default: + define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL); + } + } + + switch ( CRYPT_AES_MODE ) { + case CRYPT_AES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->paddable = true; + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_AES_MODE_CTR: + // ctr doesn't have a constant associated with it even though it appears to be fairly widely + // supported. in lieu of knowing just how widely supported it is, i've, for now, opted not to + // include a compatibility layer. the layer has been implemented but, for now, is commented out. + $this->mode = 'ctr'; + //$this->mode = in_array('ctr', mcrypt_list_modes()) ? 'ctr' : CRYPT_AES_MODE_CTR; + break; + case CRYPT_AES_MODE_CFB: + $this->mode = 'ncfb'; + break; + case CRYPT_AES_MODE_OFB: + $this->mode = MCRYPT_MODE_NOFB; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->paddable = true; + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->paddable = true; + $this->mode = CRYPT_RIJNDAEL_MODE_ECB; + break; + case CRYPT_AES_MODE_CTR: + $this->mode = CRYPT_RIJNDAEL_MODE_CTR; + break; + case CRYPT_AES_MODE_CFB: + $this->mode = CRYPT_RIJNDAEL_MODE_CFB; + break; + case CRYPT_AES_MODE_OFB: + $this->mode = CRYPT_RIJNDAEL_MODE_OFB; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->paddable = true; + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + } + + if (CRYPT_AES_MODE == CRYPT_AES_MODE_INTERNAL) { + parent::Crypt_Rijndael($this->mode); + } + } + + /** + * Extended Crypt_Rijndael::_setup() + * + * Optimizing the key schedule arrays ($w, $dw) for _encryptBlock() and _decryptBlock() after Crypt_Rijndael::_setup() + * + * @see Crypt_Rijndael::_setup() + * @access private + */ + function _setup() + { + if (!$this->changed) { + return; + } + + $this->w = $this->dw = array(); + parent::_setup(); + + $this->dw = array_reverse($this->dw); + $w = array_pop($this->w); + $dw = array_pop($this->dw); + foreach ($this->w as $r => $wr) { + foreach ($wr as $c => $wc) { + $w[] = $wc; + $dw[] = $this->dw[$r][$c]; + } + } + $this->w = $w; + $this->dw = $dw; + } + + /** + * Dummy function + * + * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + return; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + parent::setIV($iv); + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->changed = true; + } + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 16 additional bytes. Other AES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 16, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_AES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + + // re: http://phpseclib.sourceforge.net/cfb-demo.phps + // using mcrypt's default handing of CFB the above would output two different things. using phpseclib's + // rewritten CFB implementation the above outputs the same thing twice. + if ($this->mode == 'ncfb' && $this->continuousBuffer) { + $iv = &$this->encryptIV; + $pos = &$this->enbuffer['pos']; + $len = strlen($plaintext); + $ciphertext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 16 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + $this->enbuffer['enmcrypt_init'] = true; + } + if ($len >= 16) { + if ($this->enbuffer['enmcrypt_init'] === false || $len > 280) { + if ($this->enbuffer['enmcrypt_init'] === true) { + mcrypt_generic_init($this->enmcrypt, $this->key, $iv); + $this->enbuffer['enmcrypt_init'] = false; + } + $ciphertext.= mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % 16)); + $iv = substr($ciphertext, -16); + $len%= 16; + } else { + while ($len >= 16) { + $iv = mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, 16); + $ciphertext.= $iv; + $len-= 16; + $i+= 16; + } + } + } + + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $block = $iv ^ substr($plaintext, -$len); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + + return $ciphertext; + } + + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->iv); + } + + return $ciphertext; + } + + return parent::encrypt($plaintext); + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 16, null bytes will be added to the end of the string until it is. + * + * @see Crypt_AES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + + if ($this->mode == 'ncfb' && $this->continuousBuffer) { + $iv = &$this->decryptIV; + $pos = &$this->debuffer['pos']; + $len = strlen($ciphertext); + $plaintext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 16 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + if ($len >= 16) { + $cb = substr($ciphertext, $i, $len - $len % 16); + $plaintext.= mcrypt_generic($this->ecb, $iv . $cb) ^ $cb; + $iv = substr($cb, -16); + $len%= 16; + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $plaintext.= $iv ^ substr($ciphertext, -$len); + $iv = substr_replace($iv, substr($ciphertext, -$len), 0, $len); + $pos = $len; + } + + return $plaintext; + } + + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 15) & 0xFFFFFFF0, chr(0)); + } + + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->iv); + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + return parent::decrypt($ciphertext); + } + + /** + * Setup mcrypt + * + * Validates all the variables. + * + * @access private + */ + function _mcryptSetup() + { + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // this just copied from Crypt_Rijndael::_setup() + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + switch ($this->Nk) { + case 4: // 128 + $this->key_size = 16; + break; + case 5: // 160 + case 6: // 192 + $this->key_size = 24; + break; + case 7: // 224 + case 8: // 256 + $this->key_size = 32; + } + + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0)); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, 16), 16, chr(0)); + + if (!isset($this->enmcrypt)) { + $mode = $this->mode; + //$mode = $this->mode == CRYPT_AES_MODE_CTR ? MCRYPT_MODE_ECB : $this->mode; + + $this->demcrypt = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', $mode, ''); + $this->enmcrypt = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', $mode, ''); + + if ($mode == 'ncfb') { + $this->ecb = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); + } + + } // else should mcrypt_generic_deinit be called? + + mcrypt_generic_init($this->demcrypt, $this->key, $this->iv); + mcrypt_generic_init($this->enmcrypt, $this->key, $this->iv); + + if ($this->mode == 'ncfb') { + mcrypt_generic_init($this->ecb, $this->key, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); + } + + $this->changed = false; + } + + /** + * Encrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_encryptBlock() + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = unpack('N*', $in); + + $sbox = $this->sbox; + $w = $this->w; + $t0 = $this->t0; + $t1 = $this->t1; + $t2 = $this->t2; + $t3 = $this->t3; + + // addRoundKey + $s0 = $state[1] ^ $w[4]; + $s1 = $state[2] ^ $w[5]; + $s2 = $state[3] ^ $w[6]; + $s3 = $state[4] ^ $w[7]; + + // shiftRows + subWord + mixColumns + addRoundKey + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[8]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[9]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[10]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[11]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[12]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[13]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[14]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[15]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[16]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[17]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[18]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[19]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[20]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[21]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[22]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[23]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[24]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[25]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[26]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[27]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[28]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[29]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[30]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[31]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[32]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[33]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[34]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[35]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[36]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[37]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[38]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[39]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[40]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[41]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[42]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[43]; + + switch ($this->Nr) { + case 10: + break; + + case 14: + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[44]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[45]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[46]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[47]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[48]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[49]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[50]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[51]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[52]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[53]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[54]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[55]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[56]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[57]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[58]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[59]; + break; + + case 12: + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[44]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[45]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[46]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[47]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[48]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[49]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[50]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[51]; + break; + + case 13: + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[44]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[45]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[46]; + $s3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[47]; + + $e0 = $t0[($s0 >> 24) & 0xff] ^ $t1[($s1 >> 16) & 0xff] ^ $t2[($s2 >> 8) & 0xff] ^ $t3[$s3 & 0xff] ^ $w[48]; + $e1 = $t0[($s1 >> 24) & 0xff] ^ $t1[($s2 >> 16) & 0xff] ^ $t2[($s3 >> 8) & 0xff] ^ $t3[$s0 & 0xff] ^ $w[49]; + $e2 = $t0[($s2 >> 24) & 0xff] ^ $t1[($s3 >> 16) & 0xff] ^ $t2[($s0 >> 8) & 0xff] ^ $t3[$s1 & 0xff] ^ $w[50]; + $e3 = $t0[($s3 >> 24) & 0xff] ^ $t1[($s0 >> 16) & 0xff] ^ $t2[($s1 >> 8) & 0xff] ^ $t3[$s2 & 0xff] ^ $w[51]; + + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[52]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[53]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[54]; + $e3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[55]; + // Note: Here we skip $s3 but using $e3 + + $e0 = $s0; + $e1 = $s1; + $e2 = $s2; + // $e3 = $s3; + break; + + default: // 11 + $s0 = $t0[($e0 >> 24) & 0xff] ^ $t1[($e1 >> 16) & 0xff] ^ $t2[($e2 >> 8) & 0xff] ^ $t3[$e3 & 0xff] ^ $w[44]; + $s1 = $t0[($e1 >> 24) & 0xff] ^ $t1[($e2 >> 16) & 0xff] ^ $t2[($e3 >> 8) & 0xff] ^ $t3[$e0 & 0xff] ^ $w[45]; + $s2 = $t0[($e2 >> 24) & 0xff] ^ $t1[($e3 >> 16) & 0xff] ^ $t2[($e0 >> 8) & 0xff] ^ $t3[$e1 & 0xff] ^ $w[46]; + $e3 = $t0[($e3 >> 24) & 0xff] ^ $t1[($e0 >> 16) & 0xff] ^ $t2[($e1 >> 8) & 0xff] ^ $t3[$e2 & 0xff] ^ $w[47]; + // Note: Here we skip $s3 but using $e3 + + $e0 = $s0; + $e1 = $s1; + $e2 = $s2; + // $e3 = $s3; + } + + // subWord + $e0 = $sbox[$e0 & 0xff] | ($sbox[($e0 >> 8) & 0xff] << 8) | ($sbox[($e0 >> 16) & 0xff] << 16) | ($sbox[($e0 >> 24) & 0xff] << 24); + $e1 = $sbox[$e1 & 0xff] | ($sbox[($e1 >> 8) & 0xff] << 8) | ($sbox[($e1 >> 16) & 0xff] << 16) | ($sbox[($e1 >> 24) & 0xff] << 24); + $e2 = $sbox[$e2 & 0xff] | ($sbox[($e2 >> 8) & 0xff] << 8) | ($sbox[($e2 >> 16) & 0xff] << 16) | ($sbox[($e2 >> 24) & 0xff] << 24); + $e3 = $sbox[$e3 & 0xff] | ($sbox[($e3 >> 8) & 0xff] << 8) | ($sbox[($e3 >> 16) & 0xff] << 16) | ($sbox[($e3 >> 24) & 0xff] << 24); + + // shiftRows + addRoundKey + return pack('N*', + ($e0 & 0xFF000000) ^ ($e1 & 0x00FF0000) ^ ($e2 & 0x0000FF00) ^ ($e3 & 0x000000FF) ^ $w[0], + ($e1 & 0xFF000000) ^ ($e2 & 0x00FF0000) ^ ($e3 & 0x0000FF00) ^ ($e0 & 0x000000FF) ^ $w[1], + ($e2 & 0xFF000000) ^ ($e3 & 0x00FF0000) ^ ($e0 & 0x0000FF00) ^ ($e1 & 0x000000FF) ^ $w[2], + ($e3 & 0xFF000000) ^ ($e0 & 0x00FF0000) ^ ($e1 & 0x0000FF00) ^ ($e2 & 0x000000FF) ^ $w[3] + ); + } + + /** + * Decrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_decryptBlock() + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = unpack('N*', $in); + + $sbox = $this->isbox; + $dw = $this->dw; + $dt0 = $this->dt0; + $dt1 = $this->dt1; + $dt2 = $this->dt2; + $dt3 = $this->dt3; + + // addRoundKey + $s0 = $state[1] ^ $dw[4]; + $s1 = $state[2] ^ $dw[5]; + $s2 = $state[3] ^ $dw[6]; + $s3 = $state[4] ^ $dw[7]; + + // invShiftRows + invSubBytes + invMixColumns + addRoundKey + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[8]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[9]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[10]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[11]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[12]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[13]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[14]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[15]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[16]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[17]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[18]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[19]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[20]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[21]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[22]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[23]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[24]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[25]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[26]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[27]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[28]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[29]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[30]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[31]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[32]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[33]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[34]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[35]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[36]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[37]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[38]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[39]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[40]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[41]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[42]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[43]; + + switch ($this->Nr) { + case 10: + break; + + case 14: + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[44]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[45]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[46]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[47]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[48]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[49]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[50]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[51]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[52]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[53]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[54]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[55]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[56]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[57]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[58]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[59]; + break; + + case 12: + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[44]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[45]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[46]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[47]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[48]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[49]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[50]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[51]; + break; + + case 13: + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[44]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[45]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[46]; + $s3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[47]; + + $e0 = $dt0[($s0 >> 24) & 0xff] ^ $dt1[($s3 >> 16) & 0xff] ^ $dt2[($s2 >> 8) & 0xff] ^ $dt3[$s1 & 0xff] ^ $dw[48]; + $e1 = $dt0[($s1 >> 24) & 0xff] ^ $dt1[($s0 >> 16) & 0xff] ^ $dt2[($s3 >> 8) & 0xff] ^ $dt3[$s2 & 0xff] ^ $dw[49]; + $e2 = $dt0[($s2 >> 24) & 0xff] ^ $dt1[($s1 >> 16) & 0xff] ^ $dt2[($s0 >> 8) & 0xff] ^ $dt3[$s3 & 0xff] ^ $dw[50]; + $e3 = $dt0[($s3 >> 24) & 0xff] ^ $dt1[($s2 >> 16) & 0xff] ^ $dt2[($s1 >> 8) & 0xff] ^ $dt3[$s0 & 0xff] ^ $dw[51]; + + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[52]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[53]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[54]; + $e3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[55]; + // Note: Here we skip $s3 but using $e3 + + $e0 = $s0; + $e1 = $s1; + $e2 = $s2; + // $e3 = $s3; + break; + + default: // 11 + $s0 = $dt0[($e0 >> 24) & 0xff] ^ $dt1[($e3 >> 16) & 0xff] ^ $dt2[($e2 >> 8) & 0xff] ^ $dt3[$e1 & 0xff] ^ $dw[44]; + $s1 = $dt0[($e1 >> 24) & 0xff] ^ $dt1[($e0 >> 16) & 0xff] ^ $dt2[($e3 >> 8) & 0xff] ^ $dt3[$e2 & 0xff] ^ $dw[45]; + $s2 = $dt0[($e2 >> 24) & 0xff] ^ $dt1[($e1 >> 16) & 0xff] ^ $dt2[($e0 >> 8) & 0xff] ^ $dt3[$e3 & 0xff] ^ $dw[46]; + $e3 = $dt0[($e3 >> 24) & 0xff] ^ $dt1[($e2 >> 16) & 0xff] ^ $dt2[($e1 >> 8) & 0xff] ^ $dt3[$e0 & 0xff] ^ $dw[47]; + // Note: Here we skip $s3 but using $e3 + + $e0 = $s0; + $e1 = $s1; + $e2 = $s2; + // $e3 = $s3; + } + + // invSubWord + $e0 = $sbox[$e0 & 0xff] | ($sbox[($e0 >> 8) & 0xff] << 8) | ($sbox[($e0 >> 16) & 0xff] << 16) | ($sbox[($e0 >> 24) & 0xff] << 24); + $e1 = $sbox[$e1 & 0xff] | ($sbox[($e1 >> 8) & 0xff] << 8) | ($sbox[($e1 >> 16) & 0xff] << 16) | ($sbox[($e1 >> 24) & 0xff] << 24); + $e2 = $sbox[$e2 & 0xff] | ($sbox[($e2 >> 8) & 0xff] << 8) | ($sbox[($e2 >> 16) & 0xff] << 16) | ($sbox[($e2 >> 24) & 0xff] << 24); + $e3 = $sbox[$e3 & 0xff] | ($sbox[($e3 >> 8) & 0xff] << 8) | ($sbox[($e3 >> 16) & 0xff] << 16) | ($sbox[($e3 >> 24) & 0xff] << 24); + + // invShiftRows + addRoundKey + return pack('N*', + ($e0 & 0xFF000000) ^ ($e3 & 0x00FF0000) ^ ($e2 & 0x0000FF00) ^ ($e1 & 0x000000FF) ^ $dw[0], + ($e1 & 0xFF000000) ^ ($e0 & 0x00FF0000) ^ ($e3 & 0x0000FF00) ^ ($e2 & 0x000000FF) ^ $dw[1], + ($e2 & 0xFF000000) ^ ($e1 & 0x00FF0000) ^ ($e0 & 0x0000FF00) ^ ($e3 & 0x000000FF) ^ $dw[2], + ($e3 & 0xFF000000) ^ ($e2 & 0x00FF0000) ^ ($e1 & 0x0000FF00) ^ ($e0 & 0x000000FF) ^ $dw[3] + ); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * The default behavior. + * + * @see Crypt_Rijndael::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + parent::enableContinuousBuffer(); + + if (CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT) { + $this->enbuffer['enmcrypt_init'] = true; + $this->debuffer['demcrypt_init'] = true; + } + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + parent::disableContinuousBuffer(); + + if (CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->iv); + mcrypt_generic_init($this->demcrypt, $this->key, $this->iv); + } + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/DES.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/DES.php new file mode 100644 index 0000000000000000000000000000000000000000..1197a50ab72df4c032eb87a1168ce77458452f85 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/DES.php @@ -0,0 +1,1334 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_DES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: DES.php,v 1.12 2010/02/09 06:10:26 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_DES::_prepareKey() + * @see Crypt_DES::_processBlock() + */ +/** + * Contains array_reverse($keys[CRYPT_DES_DECRYPT]) + */ +define('CRYPT_DES_ENCRYPT', 0); +/** + * Contains array_reverse($keys[CRYPT_DES_ENCRYPT]) + */ +define('CRYPT_DES_DECRYPT', 1); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_DES::encrypt() + * @see Crypt_DES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_DES_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_DES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_DES_MODE_CBC', 2); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_DES_MODE_CFB', 3); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_DES_MODE_OFB', 4); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_DES::Crypt_DES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_DES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_DES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_DES + */ +class Crypt_DES { + /** + * The Key Schedule + * + * @see Crypt_DES::setKey() + * @var Array + * @access private + */ + var $keys = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_DES::Crypt_DES() + * @var Integer + * @access private + */ + var $mode; + + /** + * Continuous Buffer status + * + * @see Crypt_DES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_DES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_DES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_DES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_DES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * Does the enmcrypt resource need to be (re)initialized? + * + * @see Crypt_DES::setKey() + * @see Crypt_DES::setIV() + * @var Boolean + * @access private + */ + var $enchanged = true; + + /** + * Does the demcrypt resource need to be (re)initialized? + * + * @see Crypt_DES::setKey() + * @see Crypt_DES::setIV() + * @var Boolean + * @access private + */ + var $dechanged = true; + + /** + * Is the mode one that is paddable? + * + * @see Crypt_DES::Crypt_DES() + * @var Boolean + * @access private + */ + var $paddable = false; + + /** + * Encryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_DES::encrypt() + * @var Array + * @access private + */ + var $enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); + + /** + * Decryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_DES::decrypt() + * @var Array + * @access private + */ + var $debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'demcrypt_init' => true); + + /** + * mcrypt resource for CFB mode + * + * @see Crypt_DES::encrypt() + * @see Crypt_DES::decrypt() + * @var String + * @access private + */ + var $ecb; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_DES + * @access public + */ + function Crypt_DES($mode = CRYPT_DES_MODE_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && in_array('des', mcrypt_list_algorithms()): + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->paddable = true; + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_DES_MODE_CTR: + $this->mode = 'ctr'; + //$this->mode = in_array('ctr', mcrypt_list_modes()) ? 'ctr' : CRYPT_DES_MODE_CTR; + break; + case CRYPT_DES_MODE_CFB: + $this->mode = 'ncfb'; + $this->ecb = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, ''); + break; + case CRYPT_DES_MODE_OFB: + $this->mode = MCRYPT_MODE_NOFB; + break; + case CRYPT_DES_MODE_CBC: + default: + $this->paddable = true; + $this->mode = MCRYPT_MODE_CBC; + } + $this->enmcrypt = mcrypt_module_open(MCRYPT_DES, '', $this->mode, ''); + $this->demcrypt = mcrypt_module_open(MCRYPT_DES, '', $this->mode, ''); + + break; + default: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CBC: + $this->paddable = true; + $this->mode = $mode; + break; + case CRYPT_DES_MODE_CTR: + case CRYPT_DES_MODE_CFB: + case CRYPT_DES_MODE_OFB: + $this->mode = $mode; + break; + default: + $this->paddable = true; + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we + * only use the first eight, if $key has more then eight characters in it, and pad $key with the + * null byte if it is less then eight characters long. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->keys = ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) ? str_pad(substr($key, 0, 8), 8, chr(0)) : $this->_prepareKey($key); + $this->enchanged = true; + $this->dechanged = true; + } + + /** + * Sets the password. + * + * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: + * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2}: + * $hash, $salt, $count + * + * @param String $password + * @param optional String $method + * @access public + */ + function setPassword($password, $method = 'pbkdf2') + { + $key = ''; + + switch ($method) { + default: // 'pbkdf2' + list(, , $hash, $salt, $count) = func_get_args(); + if (!isset($hash)) { + $hash = 'sha1'; + } + // WPA and WPA2 use the SSID as the salt + if (!isset($salt)) { + $salt = 'phpseclib/salt'; + } + // RFC2898#section-4.2 uses 1,000 iterations by default + // WPA and WPA2 use 4,096. + if (!isset($count)) { + $count = 1000; + } + + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + + $i = 1; + while (strlen($key) < 8) { // $dkLen == 8 + //$dk.= $this->_pbkdf($password, $salt, $count, $i++); + $hmac = new Crypt_Hash(); + $hmac->setHash($hash); + $hmac->setKey($password); + $f = $u = $hmac->hash($salt . pack('N', $i++)); + for ($j = 2; $j <= $count; $j++) { + $u = $hmac->hash($u); + $f^= $u; + } + $key.= $f; + } + } + + $this->setKey($key); + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); + $this->enchanged = true; + $this->dechanged = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_DES::decrypt() + * @see Crypt_DES::encrypt() + * @access public + * @param String $iv + */ + function _generate_xor(&$iv) + { + $xor = $iv; + for ($j = 4; $j <= 8; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 8 additional bytes. Other DES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_DES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->enchanged) { + mcrypt_generic_init($this->enmcrypt, $this->keys, $this->encryptIV); + if ($this->mode == 'ncfb') { + mcrypt_generic_init($this->ecb, $this->keys, "\0\0\0\0\0\0\0\0"); + } + $this->enchanged = false; + } + + if ($this->mode != 'ncfb' || !$this->continuousBuffer) { + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + } else { + $iv = &$this->encryptIV; + $pos = &$this->enbuffer['pos']; + $len = strlen($plaintext); + $ciphertext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + $this->enbuffer['enmcrypt_init'] = true; + } + if ($len >= 8) { + if ($this->enbuffer['enmcrypt_init'] === false || $len > 600) { + if ($this->enbuffer['enmcrypt_init'] === true) { + mcrypt_generic_init($this->enmcrypt, $this->keys, $iv); + $this->enbuffer['enmcrypt_init'] = false; + } + $ciphertext.= mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % 8)); + $iv = substr($ciphertext, -8); + $len%= 8; + } else { + while ($len >= 8) { + $iv = mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, 8); + $ciphertext.= $iv; + $len-= 8; + $i+= 8; + } + } + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $block = $iv ^ substr($plaintext, -$len); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + return $ciphertext; + } + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->keys, $this->encryptIV); + } + + return $ciphertext; + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $buffer = &$this->enbuffer; + $continuousBuffer = $this->continuousBuffer; + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $ciphertext.= $this->_processBlock(substr($plaintext, $i, 8), CRYPT_DES_ENCRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $block = $this->_processBlock($block ^ $xor, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->encryptIV; + if (strlen($buffer['encrypted'])) { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $buffer['encrypted'].= $this->_processBlock($this->_generate_xor($xor), CRYPT_DES_ENCRYPT); + $key = $this->_string_shift($buffer['encrypted'], 8); + $ciphertext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $key = $this->_processBlock($this->_generate_xor($xor), CRYPT_DES_ENCRYPT); + $ciphertext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) & 7) { + $buffer['encrypted'] = substr($key, $start) . $buffer['encrypted']; + } + } + break; + case CRYPT_DES_MODE_CFB: + if ($this->continuousBuffer) { + $iv = &$this->encryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->encryptIV; + $pos = 0; + } + $len = strlen($plaintext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + } + while ($len >= 8) { + $iv = $this->_processBlock($iv, CRYPT_DES_ENCRYPT) ^ substr($plaintext, $i, 8); + $ciphertext.= $iv; + $len-= 8; + $i+= 8; + } + if ($len) { + $iv = $this->_processBlock($iv, CRYPT_DES_ENCRYPT); + $block = $iv ^ substr($plaintext, $i); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + return $ciphertext; + case CRYPT_DES_MODE_OFB: + $xor = $this->encryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $xor = $this->_processBlock($xor, CRYPT_DES_ENCRYPT); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], 8); + $ciphertext.= substr($plaintext, $i, 8) ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $xor = $this->_processBlock($xor, CRYPT_DES_ENCRYPT); + $ciphertext.= substr($plaintext, $i, 8) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) & 7) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 8, null bytes will be added to the end of the string until it is. + * + * @see Crypt_DES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->dechanged) { + mcrypt_generic_init($this->demcrypt, $this->keys, $this->decryptIV); + if ($this->mode == 'ncfb') { + mcrypt_generic_init($this->ecb, $this->keys, "\0\0\0\0\0\0\0\0"); + } + $this->dechanged = false; + } + + if ($this->mode != 'ncfb' || !$this->continuousBuffer) { + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + } else { + $iv = &$this->decryptIV; + $pos = &$this->debuffer['pos']; + $len = strlen($ciphertext); + $plaintext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + if ($len >= 8) { + $cb = substr($ciphertext, $i, $len - $len % 8); + $plaintext.= mcrypt_generic($this->ecb, $iv . $cb) ^ $cb; + $iv = substr($cb, -8); + $len%= 8; + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $plaintext.= $iv ^ substr($ciphertext, -$len); + $iv = substr_replace($iv, substr($ciphertext, -$len), 0, $len); + $pos = $len; + } + return $plaintext; + } + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->keys, $this->decryptIV); + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $buffer = &$this->debuffer; + $continuousBuffer = $this->continuousBuffer; + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $plaintext.= $this->_processBlock(substr($ciphertext, $i, 8), CRYPT_DES_DECRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $plaintext.= $this->_processBlock($block, CRYPT_DES_DECRYPT) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->decryptIV; + if (strlen($buffer['ciphertext'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $buffer['ciphertext'].= $this->_processBlock($this->_generate_xor($xor), CRYPT_DES_ENCRYPT); + $key = $this->_string_shift($buffer['ciphertext'], 8); + $plaintext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $key = $this->_processBlock($this->_generate_xor($xor), CRYPT_DES_ENCRYPT); + $plaintext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % 8) { + $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; + } + } + break; + case CRYPT_DES_MODE_CFB: + if ($this->continuousBuffer) { + $iv = &$this->decryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->decryptIV; + $pos = 0; + } + $len = strlen($ciphertext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + while ($len >= 8) { + $iv = $this->_processBlock($iv, CRYPT_DES_ENCRYPT); + $cb = substr($ciphertext, $i, 8); + $plaintext.= $iv ^ $cb; + $iv = $cb; + $len-= 8; + $i+= 8; + } + if ($len) { + $iv = $this->_processBlock($iv, CRYPT_DES_ENCRYPT); + $plaintext.= $iv ^ substr($ciphertext, $i); + $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); + $pos = $len; + } + return $plaintext; + case CRYPT_DES_MODE_OFB: + $xor = $this->decryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $xor = $this->_processBlock($xor, CRYPT_DES_ENCRYPT); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], 8); + $plaintext.= substr($ciphertext, $i, 8) ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $xor = $this->_processBlock($xor, CRYPT_DES_ENCRYPT); + $plaintext.= substr($ciphertext, $i, 8) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % 8) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_DES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_DES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + $this->enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); + $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'demcrypt_init' => true); + + if (CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT) { + mcrypt_generic_init($this->enmcrypt, $this->keys, $this->iv); + mcrypt_generic_init($this->demcrypt, $this->keys, $this->iv); + } + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_DES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_DES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_DES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)"); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_DES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * Encrypts or decrypts a 64-bit block + * + * $mode should be either CRYPT_DES_ENCRYPT or CRYPT_DES_DECRYPT. See + * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general + * idea of what this function does. + * + * @access private + * @param String $block + * @param Integer $mode + * @return String + */ + function _processBlock($block, $mode) + { + // s-boxes. in the official DES docs, they're described as being matrices that + // one accesses by using the first and last bits to determine the row and the + // middle four bits to determine the column. in this implementation, they've + // been converted to vectors + static $sbox = array( + array( + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, + 3, 10 ,10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, + 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, + 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13 + ), + array( + 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, + 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, + 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, + 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9 + ), + array( + 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, + 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, + 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, + 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12 + ), + array( + 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, + 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, + 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14 + ), + array( + 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, + 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, + 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, + 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3 + ), + array( + 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, + 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, + 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, + 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13 + ), + array( + 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, + 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, + 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, + 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12 + ), + array( + 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, + 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, + 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, + 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 + ) + ); + + $keys = $this->keys; + + $temp = unpack('Na/Nb', $block); + $block = array($temp['a'], $temp['b']); + + // because php does arithmetic right shifts, if the most significant bits are set, right + // shifting those into the correct position will add 1's - not 0's. this will intefere + // with the | operation unless a second & is done. so we isolate these bits and left shift + // them into place. we then & each block with 0x7FFFFFFF to prevennt 1's from being added + // for any other shifts. + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + // we isolate the appropriate bit in the appropriate integer and shift as appropriate. in + // some cases, there are going to be multiple bits in the same integer that need to be shifted + // in the same way. we combine those into one shift operation. + $block = array( + (($block[1] & 0x00000040) << 25) | (($block[1] & 0x00004000) << 16) | + (($block[1] & 0x00400001) << 7) | (($block[1] & 0x40000100) >> 2) | + (($block[0] & 0x00000040) << 21) | (($block[0] & 0x00004000) << 12) | + (($block[0] & 0x00400001) << 3) | (($block[0] & 0x40000100) >> 6) | + (($block[1] & 0x00000010) << 19) | (($block[1] & 0x00001000) << 10) | + (($block[1] & 0x00100000) << 1) | (($block[1] & 0x10000000) >> 8) | + (($block[0] & 0x00000010) << 15) | (($block[0] & 0x00001000) << 6) | + (($block[0] & 0x00100000) >> 3) | (($block[0] & 0x10000000) >> 12) | + (($block[1] & 0x00000004) << 13) | (($block[1] & 0x00000400) << 4) | + (($block[1] & 0x00040000) >> 5) | (($block[1] & 0x04000000) >> 14) | + (($block[0] & 0x00000004) << 9) | ( $block[0] & 0x00000400 ) | + (($block[0] & 0x00040000) >> 9) | (($block[0] & 0x04000000) >> 18) | + (($block[1] & 0x00010000) >> 11) | (($block[1] & 0x01000000) >> 20) | + (($block[0] & 0x00010000) >> 15) | (($block[0] & 0x01000000) >> 24) + , + (($block[1] & 0x00000080) << 24) | (($block[1] & 0x00008000) << 15) | + (($block[1] & 0x00800002) << 6) | (($block[0] & 0x00000080) << 20) | + (($block[0] & 0x00008000) << 11) | (($block[0] & 0x00800002) << 2) | + (($block[1] & 0x00000020) << 18) | (($block[1] & 0x00002000) << 9) | + ( $block[1] & 0x00200000 ) | (($block[1] & 0x20000000) >> 9) | + (($block[0] & 0x00000020) << 14) | (($block[0] & 0x00002000) << 5) | + (($block[0] & 0x00200000) >> 4) | (($block[0] & 0x20000000) >> 13) | + (($block[1] & 0x00000008) << 12) | (($block[1] & 0x00000800) << 3) | + (($block[1] & 0x00080000) >> 6) | (($block[1] & 0x08000000) >> 15) | + (($block[0] & 0x00000008) << 8) | (($block[0] & 0x00000800) >> 1) | + (($block[0] & 0x00080000) >> 10) | (($block[0] & 0x08000000) >> 19) | + (($block[1] & 0x00000200) >> 3) | (($block[0] & 0x00000200) >> 7) | + (($block[1] & 0x00020000) >> 12) | (($block[1] & 0x02000000) >> 21) | + (($block[0] & 0x00020000) >> 16) | (($block[0] & 0x02000000) >> 25) | + ($msb[1] << 28) | ($msb[0] << 24) + ); + + for ($i = 0; $i < 16; $i++) { + // start of "the Feistel (F) function" - see the following URL: + // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png + $temp = (($sbox[0][((($block[1] >> 27) & 0x1F) | (($block[1] & 1) << 5)) ^ $keys[$mode][$i][0]]) << 28) + | (($sbox[1][(($block[1] & 0x1F800000) >> 23) ^ $keys[$mode][$i][1]]) << 24) + | (($sbox[2][(($block[1] & 0x01F80000) >> 19) ^ $keys[$mode][$i][2]]) << 20) + | (($sbox[3][(($block[1] & 0x001F8000) >> 15) ^ $keys[$mode][$i][3]]) << 16) + | (($sbox[4][(($block[1] & 0x0001F800) >> 11) ^ $keys[$mode][$i][4]]) << 12) + | (($sbox[5][(($block[1] & 0x00001F80) >> 7) ^ $keys[$mode][$i][5]]) << 8) + | (($sbox[6][(($block[1] & 0x000001F8) >> 3) ^ $keys[$mode][$i][6]]) << 4) + | ( $sbox[7][((($block[1] & 0x1F) << 1) | (($block[1] >> 31) & 1)) ^ $keys[$mode][$i][7]]); + + $msb = ($temp >> 31) & 1; + $temp &= 0x7FFFFFFF; + $newBlock = (($temp & 0x00010000) << 15) | (($temp & 0x02020120) << 5) + | (($temp & 0x00001800) << 17) | (($temp & 0x01000000) >> 10) + | (($temp & 0x00000008) << 24) | (($temp & 0x00100000) << 6) + | (($temp & 0x00000010) << 21) | (($temp & 0x00008000) << 9) + | (($temp & 0x00000200) << 12) | (($temp & 0x10000000) >> 27) + | (($temp & 0x00000040) << 14) | (($temp & 0x08000000) >> 8) + | (($temp & 0x00004000) << 4) | (($temp & 0x00000002) << 16) + | (($temp & 0x00442000) >> 6) | (($temp & 0x40800000) >> 15) + | (($temp & 0x00000001) << 11) | (($temp & 0x20000000) >> 20) + | (($temp & 0x00080000) >> 13) | (($temp & 0x00000004) << 3) + | (($temp & 0x04000000) >> 22) | (($temp & 0x00000480) >> 7) + | (($temp & 0x00200000) >> 19) | ($msb << 23); + // end of "the Feistel (F) function" - $newBlock is F's output + + $temp = $block[1]; + $block[1] = $block[0] ^ $newBlock; + $block[0] = $temp; + } + + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + $block = array( + (($block[0] & 0x01000004) << 7) | (($block[1] & 0x01000004) << 6) | + (($block[0] & 0x00010000) << 13) | (($block[1] & 0x00010000) << 12) | + (($block[0] & 0x00000100) << 19) | (($block[1] & 0x00000100) << 18) | + (($block[0] & 0x00000001) << 25) | (($block[1] & 0x00000001) << 24) | + (($block[0] & 0x02000008) >> 2) | (($block[1] & 0x02000008) >> 3) | + (($block[0] & 0x00020000) << 4) | (($block[1] & 0x00020000) << 3) | + (($block[0] & 0x00000200) << 10) | (($block[1] & 0x00000200) << 9) | + (($block[0] & 0x00000002) << 16) | (($block[1] & 0x00000002) << 15) | + (($block[0] & 0x04000000) >> 11) | (($block[1] & 0x04000000) >> 12) | + (($block[0] & 0x00040000) >> 5) | (($block[1] & 0x00040000) >> 6) | + (($block[0] & 0x00000400) << 1) | ( $block[1] & 0x00000400 ) | + (($block[0] & 0x08000000) >> 20) | (($block[1] & 0x08000000) >> 21) | + (($block[0] & 0x00080000) >> 14) | (($block[1] & 0x00080000) >> 15) | + (($block[0] & 0x00000800) >> 8) | (($block[1] & 0x00000800) >> 9) + , + (($block[0] & 0x10000040) << 3) | (($block[1] & 0x10000040) << 2) | + (($block[0] & 0x00100000) << 9) | (($block[1] & 0x00100000) << 8) | + (($block[0] & 0x00001000) << 15) | (($block[1] & 0x00001000) << 14) | + (($block[0] & 0x00000010) << 21) | (($block[1] & 0x00000010) << 20) | + (($block[0] & 0x20000080) >> 6) | (($block[1] & 0x20000080) >> 7) | + ( $block[0] & 0x00200000 ) | (($block[1] & 0x00200000) >> 1) | + (($block[0] & 0x00002000) << 6) | (($block[1] & 0x00002000) << 5) | + (($block[0] & 0x00000020) << 12) | (($block[1] & 0x00000020) << 11) | + (($block[0] & 0x40000000) >> 15) | (($block[1] & 0x40000000) >> 16) | + (($block[0] & 0x00400000) >> 9) | (($block[1] & 0x00400000) >> 10) | + (($block[0] & 0x00004000) >> 3) | (($block[1] & 0x00004000) >> 4) | + (($block[0] & 0x00800000) >> 18) | (($block[1] & 0x00800000) >> 19) | + (($block[0] & 0x00008000) >> 12) | (($block[1] & 0x00008000) >> 13) | + ($msb[0] << 7) | ($msb[1] << 6) + ); + + return pack('NN', $block[0], $block[1]); + } + + /** + * Creates the key schedule. + * + * @access private + * @param String $key + * @return Array + */ + function _prepareKey($key) + { + static $shifts = array( // number of key bits shifted per round + 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 + ); + + // pad the key and remove extra characters as appropriate. + $key = str_pad(substr($key, 0, 8), 8, chr(0)); + + $temp = unpack('Na/Nb', $key); + $key = array($temp['a'], $temp['b']); + $msb = array( + ($key[0] >> 31) & 1, + ($key[1] >> 31) & 1 + ); + $key[0] &= 0x7FFFFFFF; + $key[1] &= 0x7FFFFFFF; + + $key = array( + (($key[1] & 0x00000002) << 26) | (($key[1] & 0x00000204) << 17) | + (($key[1] & 0x00020408) << 8) | (($key[1] & 0x02040800) >> 1) | + (($key[0] & 0x00000002) << 22) | (($key[0] & 0x00000204) << 13) | + (($key[0] & 0x00020408) << 4) | (($key[0] & 0x02040800) >> 5) | + (($key[1] & 0x04080000) >> 10) | (($key[0] & 0x04080000) >> 14) | + (($key[1] & 0x08000000) >> 19) | (($key[0] & 0x08000000) >> 23) | + (($key[0] & 0x00000010) >> 1) | (($key[0] & 0x00001000) >> 10) | + (($key[0] & 0x00100000) >> 19) | (($key[0] & 0x10000000) >> 28) + , + (($key[1] & 0x00000080) << 20) | (($key[1] & 0x00008000) << 11) | + (($key[1] & 0x00800000) << 2) | (($key[0] & 0x00000080) << 16) | + (($key[0] & 0x00008000) << 7) | (($key[0] & 0x00800000) >> 2) | + (($key[1] & 0x00000040) << 13) | (($key[1] & 0x00004000) << 4) | + (($key[1] & 0x00400000) >> 5) | (($key[1] & 0x40000000) >> 14) | + (($key[0] & 0x00000040) << 9) | ( $key[0] & 0x00004000 ) | + (($key[0] & 0x00400000) >> 9) | (($key[0] & 0x40000000) >> 18) | + (($key[1] & 0x00000020) << 6) | (($key[1] & 0x00002000) >> 3) | + (($key[1] & 0x00200000) >> 12) | (($key[1] & 0x20000000) >> 21) | + (($key[0] & 0x00000020) << 2) | (($key[0] & 0x00002000) >> 7) | + (($key[0] & 0x00200000) >> 16) | (($key[0] & 0x20000000) >> 25) | + (($key[1] & 0x00000010) >> 1) | (($key[1] & 0x00001000) >> 10) | + (($key[1] & 0x00100000) >> 19) | (($key[1] & 0x10000000) >> 28) | + ($msb[1] << 24) | ($msb[0] << 20) + ); + + $keys = array(); + for ($i = 0; $i < 16; $i++) { + $key[0] <<= $shifts[$i]; + $temp = ($key[0] & 0xF0000000) >> 28; + $key[0] = ($key[0] | $temp) & 0x0FFFFFFF; + + $key[1] <<= $shifts[$i]; + $temp = ($key[1] & 0xF0000000) >> 28; + $key[1] = ($key[1] | $temp) & 0x0FFFFFFF; + + $temp = array( + (($key[1] & 0x00004000) >> 9) | (($key[1] & 0x00000800) >> 7) | + (($key[1] & 0x00020000) >> 14) | (($key[1] & 0x00000010) >> 2) | + (($key[1] & 0x08000000) >> 26) | (($key[1] & 0x00800000) >> 23) + , + (($key[1] & 0x02400000) >> 20) | (($key[1] & 0x00000001) << 4) | + (($key[1] & 0x00002000) >> 10) | (($key[1] & 0x00040000) >> 18) | + (($key[1] & 0x00000080) >> 6) + , + ( $key[1] & 0x00000020 ) | (($key[1] & 0x00000200) >> 5) | + (($key[1] & 0x00010000) >> 13) | (($key[1] & 0x01000000) >> 22) | + (($key[1] & 0x00000004) >> 1) | (($key[1] & 0x00100000) >> 20) + , + (($key[1] & 0x00001000) >> 7) | (($key[1] & 0x00200000) >> 17) | + (($key[1] & 0x00000002) << 2) | (($key[1] & 0x00000100) >> 6) | + (($key[1] & 0x00008000) >> 14) | (($key[1] & 0x04000000) >> 26) + , + (($key[0] & 0x00008000) >> 10) | ( $key[0] & 0x00000010 ) | + (($key[0] & 0x02000000) >> 22) | (($key[0] & 0x00080000) >> 17) | + (($key[0] & 0x00000200) >> 8) | (($key[0] & 0x00000002) >> 1) + , + (($key[0] & 0x04000000) >> 21) | (($key[0] & 0x00010000) >> 12) | + (($key[0] & 0x00000020) >> 2) | (($key[0] & 0x00000800) >> 9) | + (($key[0] & 0x00800000) >> 22) | (($key[0] & 0x00000100) >> 8) + , + (($key[0] & 0x00001000) >> 7) | (($key[0] & 0x00000088) >> 3) | + (($key[0] & 0x00020000) >> 14) | (($key[0] & 0x00000001) << 2) | + (($key[0] & 0x00400000) >> 21) + , + (($key[0] & 0x00000400) >> 5) | (($key[0] & 0x00004000) >> 10) | + (($key[0] & 0x00000040) >> 3) | (($key[0] & 0x00100000) >> 18) | + (($key[0] & 0x08000000) >> 26) | (($key[0] & 0x01000000) >> 24) + ); + + $keys[] = $temp; + } + + $temp = array( + CRYPT_DES_ENCRYPT => $keys, + CRYPT_DES_DECRYPT => array_reverse($keys) + ); + + return $temp; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Hash.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Hash.php new file mode 100644 index 0000000000000000000000000000000000000000..c5d314f009f87ab00cc283d629a9f52ad4572764 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Hash.php @@ -0,0 +1,825 @@ + + * setKey('abcdefg'); + * + * echo base64_encode($hash->hash('abcdefg')); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Hash + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: Hash.php,v 1.6 2009/11/23 23:37:07 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_Hash::Crypt_Hash() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_HASH_MODE_INTERNAL', 1); +/** + * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+. + */ +define('CRYPT_HASH_MODE_MHASH', 2); +/** + * Toggles the hash() implementation, which works on PHP 5.1.2+. + */ +define('CRYPT_HASH_MODE_HASH', 3); +/**#@-*/ + +/** + * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Hash + */ +class Crypt_Hash { + /** + * Byte-length of compression blocks / key (Internal HMAC) + * + * @see Crypt_Hash::setAlgorithm() + * @var Integer + * @access private + */ + var $b; + + /** + * Byte-length of hash output (Internal HMAC) + * + * @see Crypt_Hash::setHash() + * @var Integer + * @access private + */ + var $l = false; + + /** + * Hash Algorithm + * + * @see Crypt_Hash::setHash() + * @var String + * @access private + */ + var $hash; + + /** + * Key + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $key = false; + + /** + * Outer XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $opad; + + /** + * Inner XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $ipad; + + /** + * Default Constructor. + * + * @param optional String $hash + * @return Crypt_Hash + * @access public + */ + function Crypt_Hash($hash = 'sha1') + { + if ( !defined('CRYPT_HASH_MODE') ) { + switch (true) { + case extension_loaded('hash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH); + break; + case extension_loaded('mhash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_MHASH); + break; + default: + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); + } + } + + $this->setHash($hash); + } + + /** + * Sets the key for HMACs + * + * Keys can be of any length. + * + * @access public + * @param String $key + */ + function setKey($key = false) + { + $this->key = $key; + } + + /** + * Sets the hash function. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + $hash = strtolower($hash); + switch ($hash) { + case 'md5-96': + case 'sha1-96': + $this->l = 12; // 96 / 8 = 12 + break; + case 'md2': + case 'md5': + $this->l = 16; + break; + case 'sha1': + $this->l = 20; + break; + case 'sha256': + $this->l = 32; + break; + case 'sha384': + $this->l = 48; + break; + case 'sha512': + $this->l = 64; + } + + switch ($hash) { + case 'md2': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ? + CRYPT_HASH_MODE_HASH : CRYPT_HASH_MODE_INTERNAL; + break; + case 'sha384': + case 'sha512': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_MHASH ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + break; + default: + $mode = CRYPT_HASH_MODE; + } + + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = MHASH_MD5; + break; + case 'sha256': + $this->hash = MHASH_SHA256; + break; + case 'sha1': + case 'sha1-96': + default: + $this->hash = MHASH_SHA1; + } + return; + case CRYPT_HASH_MODE_HASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = 'md5'; + return; + case 'md2': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = $hash; + return; + case 'sha1': + case 'sha1-96': + default: + $this->hash = 'sha1'; + } + return; + } + + switch ($hash) { + case 'md2': + $this->b = 16; + $this->hash = array($this, '_md2'); + break; + case 'md5': + case 'md5-96': + $this->b = 64; + $this->hash = array($this, '_md5'); + break; + case 'sha256': + $this->b = 64; + $this->hash = array($this, '_sha256'); + break; + case 'sha384': + case 'sha512': + $this->b = 128; + $this->hash = array($this, '_sha512'); + break; + case 'sha1': + case 'sha1-96': + default: + $this->b = 64; + $this->hash = array($this, '_sha1'); + } + + $this->ipad = str_repeat(chr(0x36), $this->b); + $this->opad = str_repeat(chr(0x5C), $this->b); + } + + /** + * Compute the HMAC. + * + * @access public + * @param String $text + * @return String + */ + function hash($text) + { + $mode = is_array($this->hash) ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + + if (!empty($this->key) || is_string($this->key)) { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text, $this->key); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash_hmac($this->hash, $text, $this->key, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + /* "Applications that use keys longer than B bytes will first hash the key using H and then use the + resultant L byte string as the actual key to HMAC." + + -- http://tools.ietf.org/html/rfc2104#section-2 */ + $key = strlen($this->key) > $this->b ? call_user_func($this->hash, $this->key) : $this->key; + + $key = str_pad($key, $this->b, chr(0)); // step 1 + $temp = $this->ipad ^ $key; // step 2 + $temp .= $text; // step 3 + $temp = call_user_func($this->hash, $temp); // step 4 + $output = $this->opad ^ $key; // step 5 + $output.= $temp; // step 6 + $output = call_user_func($this->hash, $output); // step 7 + } + } else { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash($this->hash, $text, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + $output = call_user_func($this->hash, $text); + } + } + + return substr($output, 0, $this->l); + } + + /** + * Returns the hash length (in bytes) + * + * @access public + * @return Integer + */ + function getLength() + { + return $this->l; + } + + /** + * Wrapper for MD5 + * + * @access private + * @param String $text + */ + function _md5($m) + { + return pack('H*', md5($m)); + } + + /** + * Wrapper for SHA1 + * + * @access private + * @param String $text + */ + function _sha1($m) + { + return pack('H*', sha1($m)); + } + + /** + * Pure-PHP implementation of MD2 + * + * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}. + * + * @access private + * @param String $text + */ + function _md2($m) + { + static $s = array( + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, + 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, + 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, + 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, + 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, + 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, + 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, + 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, + 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, + 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, + 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, + 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, + 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, + 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, + 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, + 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, + 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 + ); + + // Step 1. Append Padding Bytes + $pad = 16 - (strlen($m) & 0xF); + $m.= str_repeat(chr($pad), $pad); + + $length = strlen($m); + + // Step 2. Append Checksum + $c = str_repeat(chr(0), 16); + $l = chr(0); + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + // RFC1319 incorrectly states that C[j] should be set to S[c xor L] + //$c[$j] = chr($s[ord($m[$i + $j] ^ $l)]); + // per , however, C[j] should be set to S[c xor L] xor C[j] + $c[$j] = chr($s[ord($m[$i + $j] ^ $l)] ^ ord($c[$j])); + $l = $c[$j]; + } + } + $m.= $c; + + $length+= 16; + + // Step 3. Initialize MD Buffer + $x = str_repeat(chr(0), 48); + + // Step 4. Process Message in 16-Byte Blocks + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $x[$j + 16] = $m[$i + $j]; + $x[$j + 32] = $x[$j + 16] ^ $x[$j]; + } + $t = chr(0); + for ($j = 0; $j < 18; $j++) { + for ($k = 0; $k < 48; $k++) { + $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]); + //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]); + } + $t = chr(ord($t) + $j); + } + } + + // Step 5. Output + return substr($x, 0, 16); + } + + /** + * Pure-PHP implementation of SHA256 + * + * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}. + * + * @access private + * @param String $text + */ + function _sha256($m) + { + if (extension_loaded('suhosin')) { + return pack('H*', sha256($m)); + } + + // Initialize variables + $hash = array( + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ); + // Initialize table of round constants + // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + static $k = array( + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ); + + // Pre-processing + $length = strlen($m); + // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64 + $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N2', 0, $length << 3); + + // Process the message in successive 512-bit chunks + $chunks = str_split($m, 64); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + extract(unpack('Ntemp', $this->_string_shift($chunk, 4))); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into sixty-four 32-bit words + for ($i = 16; $i < 64; $i++) { + $s0 = $this->_rightRotate($w[$i - 15], 7) ^ + $this->_rightRotate($w[$i - 15], 18) ^ + $this->_rightShift( $w[$i - 15], 3); + $s1 = $this->_rightRotate($w[$i - 2], 17) ^ + $this->_rightRotate($w[$i - 2], 19) ^ + $this->_rightShift( $w[$i - 2], 10); + $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1); + + } + + // Initialize hash value for this chunk + list($a, $b, $c, $d, $e, $f, $g, $h) = $hash; + + // Main loop + for ($i = 0; $i < 64; $i++) { + $s0 = $this->_rightRotate($a, 2) ^ + $this->_rightRotate($a, 13) ^ + $this->_rightRotate($a, 22); + $maj = ($a & $b) ^ + ($a & $c) ^ + ($b & $c); + $t2 = $this->_add($s0, $maj); + + $s1 = $this->_rightRotate($e, 6) ^ + $this->_rightRotate($e, 11) ^ + $this->_rightRotate($e, 25); + $ch = ($e & $f) ^ + ($this->_not($e) & $g); + $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]); + + $h = $g; + $g = $f; + $f = $e; + $e = $this->_add($d, $t1); + $d = $c; + $c = $b; + $b = $a; + $a = $this->_add($t1, $t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $this->_add($hash[0], $a), + $this->_add($hash[1], $b), + $this->_add($hash[2], $c), + $this->_add($hash[3], $d), + $this->_add($hash[4], $e), + $this->_add($hash[5], $f), + $this->_add($hash[6], $g), + $this->_add($hash[7], $h) + ); + } + + // Produce the final hash value (big-endian) + return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]); + } + + /** + * Pure-PHP implementation of SHA384 and SHA512 + * + * @access private + * @param String $text + */ + function _sha512($m) + { + if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); + } + + static $init384, $init512, $k; + + if (!isset($k)) { + // Initialize variables + $init384 = array( // initial values for SHA384 + 'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939', + '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4' + ); + $init512 = array( // initial values for SHA512 + '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', + '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179' + ); + + for ($i = 0; $i < 8; $i++) { + $init384[$i] = new Math_BigInteger($init384[$i], 16); + $init384[$i]->setPrecision(64); + $init512[$i] = new Math_BigInteger($init512[$i], 16); + $init512[$i]->setPrecision(64); + } + + // Initialize table of round constants + // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) + $k = array( + '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', + '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', + 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', + '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694', + 'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65', + '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5', + '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4', + 'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70', + '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df', + '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b', + 'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30', + 'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8', + '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8', + '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3', + '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec', + '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b', + 'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178', + '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', + '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', + '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' + ); + + for ($i = 0; $i < 80; $i++) { + $k[$i] = new Math_BigInteger($k[$i], 16); + } + } + + $hash = $this->l == 48 ? $init384 : $init512; + + // Pre-processing + $length = strlen($m); + // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128 + $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N4', 0, 0, 0, $length << 3); + + // Process the message in successive 1024-bit chunks + $chunks = str_split($m, 128); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + $temp = new Math_BigInteger($this->_string_shift($chunk, 8), 256); + $temp->setPrecision(64); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into eighty 32-bit words + for ($i = 16; $i < 80; $i++) { + $temp = array( + $w[$i - 15]->bitwise_rightRotate(1), + $w[$i - 15]->bitwise_rightRotate(8), + $w[$i - 15]->bitwise_rightShift(7) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $w[$i - 2]->bitwise_rightRotate(19), + $w[$i - 2]->bitwise_rightRotate(61), + $w[$i - 2]->bitwise_rightShift(6) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $w[$i] = $w[$i - 16]->copy(); + $w[$i] = $w[$i]->add($s0); + $w[$i] = $w[$i]->add($w[$i - 7]); + $w[$i] = $w[$i]->add($s1); + } + + // Initialize hash value for this chunk + $a = $hash[0]->copy(); + $b = $hash[1]->copy(); + $c = $hash[2]->copy(); + $d = $hash[3]->copy(); + $e = $hash[4]->copy(); + $f = $hash[5]->copy(); + $g = $hash[6]->copy(); + $h = $hash[7]->copy(); + + // Main loop + for ($i = 0; $i < 80; $i++) { + $temp = array( + $a->bitwise_rightRotate(28), + $a->bitwise_rightRotate(34), + $a->bitwise_rightRotate(39) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $a->bitwise_and($b), + $a->bitwise_and($c), + $b->bitwise_and($c) + ); + $maj = $temp[0]->bitwise_xor($temp[1]); + $maj = $maj->bitwise_xor($temp[2]); + $t2 = $s0->add($maj); + + $temp = array( + $e->bitwise_rightRotate(14), + $e->bitwise_rightRotate(18), + $e->bitwise_rightRotate(41) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $temp = array( + $e->bitwise_and($f), + $g->bitwise_and($e->bitwise_not()) + ); + $ch = $temp[0]->bitwise_xor($temp[1]); + $t1 = $h->add($s1); + $t1 = $t1->add($ch); + $t1 = $t1->add($k[$i]); + $t1 = $t1->add($w[$i]); + + $h = $g->copy(); + $g = $f->copy(); + $f = $e->copy(); + $e = $d->add($t1); + $d = $c->copy(); + $c = $b->copy(); + $b = $a->copy(); + $a = $t1->add($t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $hash[0]->add($a), + $hash[1]->add($b), + $hash[2]->add($c), + $hash[3]->add($d), + $hash[4]->add($e), + $hash[5]->add($f), + $hash[6]->add($g), + $hash[7]->add($h) + ); + } + + // Produce the final hash value (big-endian) + // (Crypt_Hash::hash() trims the output for hashes but not for HMACs. as such, we trim the output here) + $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() . + $hash[4]->toBytes() . $hash[5]->toBytes(); + if ($this->l != 48) { + $temp.= $hash[6]->toBytes() . $hash[7]->toBytes(); + } + + return $temp; + } + + /** + * Right Rotate + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightRotate($int, $amt) + { + $invamt = 32 - $amt; + $mask = (1 << $invamt) - 1; + return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask); + } + + /** + * Right Shift + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightShift($int, $amt) + { + $mask = (1 << (32 - $amt)) - 1; + return ($int >> $amt) & $mask; + } + + /** + * Not + * + * @access private + * @param Integer $int + * @see _sha256() + * @return Integer + */ + function _not($int) + { + return ~$int & 0xFFFFFFFF; + } + + /** + * Add + * + * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the + * possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster. + * + * @param String $string + * @param optional Integer $index + * @return String + * @see _sha256() + * @access private + */ + function _add() + { + static $mod; + if (!isset($mod)) { + $mod = pow(2, 32); + } + + $result = 0; + $arguments = func_get_args(); + foreach ($arguments as $argument) { + $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; + } + + return fmod($result, $mod); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RC4.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RC4.php new file mode 100644 index 0000000000000000000000000000000000000000..390108e04800c99bde2053ec924cb7a53fd8459e --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RC4.php @@ -0,0 +1,519 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rc4->decrypt($rc4->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_RC4 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: RC4.php,v 1.8 2009/06/09 04:00:38 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_RC4::Crypt_RC4() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RC4_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RC4_MODE_MCRYPT', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RC4::_crypt() + */ +define('CRYPT_RC4_ENCRYPT', 0); +define('CRYPT_RC4_DECRYPT', 1); +/**#@-*/ + +/** + * Pure-PHP implementation of RC4. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RC4 + */ +class Crypt_RC4 { + /** + * The Key + * + * @see Crypt_RC4::setKey() + * @var String + * @access private + */ + var $key = "\0"; + + /** + * The Key Stream for encryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $encryptStream = false; + + /** + * The Key Stream for decryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $decryptStream = false; + + /** + * The $i and $j indexes for encryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $encryptIndex = 0; + + /** + * The $i and $j indexes for decryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $decryptIndex = 0; + + /** + * The Encryption Algorithm + * + * Only used if CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT. Only possible values are MCRYPT_RC4 or MCRYPT_ARCFOUR. + * + * @see Crypt_RC4::Crypt_RC4() + * @var Integer + * @access private + */ + var $mode; + + /** + * Continuous Buffer status + * + * @see Crypt_RC4::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * @return Crypt_RC4 + * @access public + */ + function Crypt_RC4() + { + if ( !defined('CRYPT_RC4_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && (defined('MCRYPT_ARCFOUR') || defined('MCRYPT_RC4')) && in_array('arcfour', mcrypt_list_algorithms()): + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_MCRYPT); + break; + default: + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_INTERNAL); + } + } + + switch ( CRYPT_RC4_MODE ) { + case CRYPT_RC4_MODE_MCRYPT: + switch (true) { + case defined('MCRYPT_ARCFOUR'): + $this->mode = MCRYPT_ARCFOUR; + break; + case defined('MCRYPT_RC4'); + $this->mode = MCRYPT_RC4; + } + $this->encryptStream = mcrypt_module_open($this->mode, '', MCRYPT_MODE_STREAM, ''); + $this->decryptStream = mcrypt_module_open($this->mode, '', MCRYPT_MODE_STREAM, ''); + + } + } + + /** + * Sets the key. + * + * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will + * be used. If no key is explicitly set, it'll be assumed to be a single null byte. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + mcrypt_generic_init($this->encryptStream, $this->key, ''); + mcrypt_generic_init($this->decryptStream, $this->key, ''); + return; + } + + $keyLength = strlen($key); + $keyStream = array(); + for ($i = 0; $i < 256; $i++) { + $keyStream[$i] = $i; + } + $j = 0; + for ($i = 0; $i < 256; $i++) { + $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + } + + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->encryptStream = $this->decryptStream = $keyStream; + } + + /** + * Sets the password. + * + * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: + * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2}: + * $hash, $salt, $count, $dkLen + * + * @param String $password + * @param optional String $method + * @access public + */ + function setPassword($password, $method = 'pbkdf2') + { + $key = ''; + + switch ($method) { + default: // 'pbkdf2' + list(, , $hash, $salt, $count) = func_get_args(); + if (!isset($hash)) { + $hash = 'sha1'; + } + // WPA and WPA2 use the SSID as the salt + if (!isset($salt)) { + $salt = 'phpseclib/salt'; + } + // RFC2898#section-4.2 uses 1,000 iterations by default + // WPA and WPA2 use 4,096. + if (!isset($count)) { + $count = 1000; + } + if (!isset($dkLen)) { + $dkLen = 128; + } + + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + + $i = 1; + while (strlen($key) < $dkLen) { + //$dk.= $this->_pbkdf($password, $salt, $count, $i++); + $hmac = new Crypt_Hash(); + $hmac->setHash($hash); + $hmac->setKey($password); + $f = $u = $hmac->hash($salt . pack('N', $i++)); + for ($j = 2; $j <= $count; $j++) { + $u = $hmac->hash($u); + $f^= $u; + } + $key.= $f; + } + } + + $this->setKey(substr($key, 0, $dkLen)); + } + + /** + * Dummy function. + * + * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1]. + * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before + * calling setKey(). + * + * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way. Since, in that protocol, + * the IV's are relatively easy to predict, an attack described by + * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir} + * can be used to quickly guess at the rest of the key. The following links elaborate: + * + * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009} + * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack} + * + * @param String $iv + * @see Crypt_RC4::setKey() + * @access public + */ + function setIV($iv) + { + } + + /** + * Encrypts a message. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + return $this->_crypt($plaintext, CRYPT_RC4_ENCRYPT); + } + + /** + * Decrypts a message. + * + * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). + * Atleast if the continuous buffer is disabled. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + return $this->_crypt($ciphertext, CRYPT_RC4_DECRYPT); + } + + /** + * Encrypts or decrypts a message. + * + * @see Crypt_RC4::encrypt() + * @see Crypt_RC4::decrypt() + * @access private + * @param String $text + * @param Integer $mode + */ + function _crypt($text, $mode) + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $keyStream = $mode == CRYPT_RC4_ENCRYPT ? 'encryptStream' : 'decryptStream'; + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->$keyStream, $this->key, ''); + } + + return mcrypt_generic($this->$keyStream, $text); + } + + if ($this->encryptStream === false) { + $this->setKey($this->key); + } + + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $keyStream = $this->encryptStream; + list($i, $j) = $this->encryptIndex; + break; + case CRYPT_RC4_DECRYPT: + $keyStream = $this->decryptStream; + list($i, $j) = $this->decryptIndex; + } + + $newText = ''; + for ($k = 0; $k < strlen($text); $k++) { + $i = ($i + 1) & 255; + $j = ($j + $keyStream[$i]) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + $temp = $keyStream[($keyStream[$i] + $keyStream[$j]) & 255]; + $newText.= chr(ord($text[$k]) ^ $temp); + } + + if ($this->continuousBuffer) { + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $this->encryptStream = $keyStream; + $this->encryptIndex = array($i, $j); + break; + case CRYPT_RC4_DECRYPT: + $this->decryptStream = $keyStream; + $this->decryptIndex = array($i, $j); + } + } + + return $newText; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $rc4->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_RC4::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + mcrypt_generic_init($this->encryptStream, $this->key, ''); + mcrypt_generic_init($this->decryptStream, $this->key, ''); + } + + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_RC4::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_INTERNAL ) { + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->encryptStream = $this->decryptStream = false; + } + + $this->continuousBuffer = false; + } + + /** + * Dummy function. + * + * Since RC4 is a stream cipher and not a block cipher, no padding is necessary. The only reason this function is + * included is so that you can switch between a block cipher and a stream cipher transparently. + * + * @see Crypt_RC4::disablePadding() + * @access public + */ + function enablePadding() + { + } + + /** + * Dummy function. + * + * @see Crypt_RC4::enablePadding() + * @access public + */ + function disablePadding() + { + } + + /** + * Class destructor. + * + * Will be called, automatically, if you're using PHP5. If you're using PHP4, call it yourself. Only really + * needs to be called if mcrypt is being used. + * + * @access public + */ + function __destruct() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $this->_closeMCrypt(); + } + } + + /** + * Properly close the MCrypt objects. + * + * @access prviate + */ + function _closeMCrypt() + { + mcrypt_module_close($this->encryptStream); + mcrypt_module_close($this->decryptStream); + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RSA.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RSA.php new file mode 100644 index 0000000000000000000000000000000000000000..db1ba1581b684001eaadad51f2bc086171036746 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/RSA.php @@ -0,0 +1,2646 @@ + + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $ciphertext = $rsa->encrypt($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->decrypt($ciphertext); + * ?> + * + * + * Here's an example of how to create signatures and verify signatures with this library: + * + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $signature = $rsa->sign($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_RSA + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: RSA.php,v 1.19 2010/09/12 21:58:54 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + */ +if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); +} + +/** + * Include Crypt_Random + */ +// the class_exists() will only be called if the crypt_random_string function hasn't been defined and +// will trigger a call to __autoload() if you're wanting to auto-load classes +// call function_exists() a second time to stop the require_once from being called outside +// of the auto loader +if (!function_exists('crypt_random_string') && !class_exists('Crypt_Random') && !function_exists('crypt_random_string')) { + require_once('Crypt/Random.php'); +} + +/** + * Include Crypt_Hash + */ +if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); +} + +/**#@+ + * @access public + * @see Crypt_RSA::encrypt() + * @see Crypt_RSA::decrypt() + */ +/** + * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} + * (OAEP) for encryption / decryption. + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setHash() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_ENCRYPTION_OAEP', 1); +/** + * Use PKCS#1 padding. + * + * Although CRYPT_RSA_ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards + * compatability with protocols (like SSH-1) written before OAEP's introduction. + */ +define('CRYPT_RSA_ENCRYPTION_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::sign() + * @see Crypt_RSA::verify() + * @see Crypt_RSA::setHash() + */ +/** + * Use the Probabilistic Signature Scheme for signing + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setSaltLength() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_SIGNATURE_PSS', 1); +/** + * Use the PKCS#1 scheme by default. + * + * Although CRYPT_RSA_SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards + * compatability with protocols (like SSH-2) written before PSS's introduction. + */ +define('CRYPT_RSA_SIGNATURE_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::createKey() + */ +/** + * ASN1 Integer + */ +define('CRYPT_RSA_ASN1_INTEGER', 2); +/** + * ASN1 Bit String + */ +define('CRYPT_RSA_ASN1_BITSTRING', 3); +/** + * ASN1 Sequence (with the constucted bit set) + */ +define('CRYPT_RSA_ASN1_SEQUENCE', 48); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::Crypt_RSA() + */ +/** + * To use the pure-PHP implementation + */ +define('CRYPT_RSA_MODE_INTERNAL', 1); +/** + * To use the OpenSSL library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('CRYPT_RSA_MODE_OPENSSL', 2); +/**#@-*/ + +/** + * Default openSSL configuration file. + */ +define('CRYPT_RSA_OPENSSL_CONFIG', dirname(__FILE__) . '/../openssl.cnf'); + + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPrivateKeyFormat() + */ +/** + * PKCS#1 formatted private key + * + * Used by OpenSSH + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PKCS1', 0); +/** + * PuTTY formatted private key + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PUTTY', 1); +/** + * XML formatted private key + */ +define('CRYPT_RSA_PRIVATE_FORMAT_XML', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPublicKeyFormat() + */ +/** + * Raw public key + * + * An array containing two Math_BigInteger objects. + * + * The exponent can be indexed with any of the following: + * + * 0, e, exponent, publicExponent + * + * The modulus can be indexed with any of the following: + * + * 1, n, modulo, modulus + */ +define('CRYPT_RSA_PUBLIC_FORMAT_RAW', 3); +/** + * PKCS#1 formatted public key (raw) + * + * Used by File/X509.php + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW', 4); +/** + * XML formatted public key + */ +define('CRYPT_RSA_PUBLIC_FORMAT_XML', 5); +/** + * OpenSSH formatted public key + * + * Place in $HOME/.ssh/authorized_keys + */ +define('CRYPT_RSA_PUBLIC_FORMAT_OPENSSH', 6); +/** + * PKCS#1 formatted public key (encapsulated) + * + * Used by PHP's openssl_public_encrypt() and openssl's rsautl (when -pubin is set) + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1', 7); +/**#@-*/ + +/** + * Pure-PHP PKCS#1 compliant implementation of RSA. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RSA + */ +class Crypt_RSA { + /** + * Precomputed Zero + * + * @var Array + * @access private + */ + var $zero; + + /** + * Precomputed One + * + * @var Array + * @access private + */ + var $one; + + /** + * Private Key Format + * + * @var Integer + * @access private + */ + var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1; + + /** + * Public Key Format + * + * @var Integer + * @access public + */ + var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS1; + + /** + * Modulus (ie. n) + * + * @var Math_BigInteger + * @access private + */ + var $modulus; + + /** + * Modulus length + * + * @var Math_BigInteger + * @access private + */ + var $k; + + /** + * Exponent (ie. e or d) + * + * @var Math_BigInteger + * @access private + */ + var $exponent; + + /** + * Primes for Chinese Remainder Theorem (ie. p and q) + * + * @var Array + * @access private + */ + var $primes; + + /** + * Exponents for Chinese Remainder Theorem (ie. dP and dQ) + * + * @var Array + * @access private + */ + var $exponents; + + /** + * Coefficients for Chinese Remainder Theorem (ie. qInv) + * + * @var Array + * @access private + */ + var $coefficients; + + /** + * Hash name + * + * @var String + * @access private + */ + var $hashName; + + /** + * Hash function + * + * @var Crypt_Hash + * @access private + */ + var $hash; + + /** + * Length of hash function output + * + * @var Integer + * @access private + */ + var $hLen; + + /** + * Length of salt + * + * @var Integer + * @access private + */ + var $sLen; + + /** + * Hash function for the Mask Generation Function + * + * @var Crypt_Hash + * @access private + */ + var $mgfHash; + + /** + * Length of MGF hash function output + * + * @var Integer + * @access private + */ + var $mgfHLen; + + /** + * Encryption mode + * + * @var Integer + * @access private + */ + var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP; + + /** + * Signature mode + * + * @var Integer + * @access private + */ + var $signatureMode = CRYPT_RSA_SIGNATURE_PSS; + + /** + * Public Exponent + * + * @var Mixed + * @access private + */ + var $publicExponent = false; + + /** + * Password + * + * @var String + * @access private + */ + var $password = false; + + /** + * Components + * + * For use with parsing XML formatted keys. PHP's XML Parser functions use utilized - instead of PHP's DOM functions - + * because PHP's XML Parser functions work on PHP4 whereas PHP's DOM functions - although surperior - don't. + * + * @see Crypt_RSA::_start_element_handler() + * @var Array + * @access private + */ + var $components = array(); + + /** + * Current String + * + * For use with parsing XML formatted keys. + * + * @see Crypt_RSA::_character_handler() + * @see Crypt_RSA::_stop_element_handler() + * @var Mixed + * @access private + */ + var $current; + + /** + * OpenSSL configuration file name. + * + * Set to NULL to use system configuration file. + * @see Crypt_RSA::createKey() + * @var Mixed + * @Access public + */ + var $configFile; + + /** + * The constructor + * + * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason + * Crypt_RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires + * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. + * + * @return Crypt_RSA + * @access public + */ + function Crypt_RSA() + { + $this->configFile = CRYPT_RSA_OPENSSL_CONFIG; + + if ( !defined('CRYPT_RSA_MODE') ) { + switch (true) { + case extension_loaded('openssl') && version_compare(PHP_VERSION, '4.2.0', '>='): + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_OPENSSL); + break; + default: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + } + } + + if (!defined('CRYPT_RSA_COMMENT')) { + define('CRYPT_RSA_COMMENT', 'phpseclib-generated-key'); + } + + $this->zero = new Math_BigInteger(); + $this->one = new Math_BigInteger(1); + + $this->hash = new Crypt_Hash('sha1'); + $this->hLen = $this->hash->getLength(); + $this->hashName = 'sha1'; + $this->mgfHash = new Crypt_Hash('sha1'); + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Create public / private key pair + * + * Returns an array with the following three elements: + * - 'privatekey': The private key. + * - 'publickey': The public key. + * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). + * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing. + * + * @access public + * @param optional Integer $bits + * @param optional Integer $timeout + * @param optional Math_BigInteger $p + */ + function createKey($bits = 1024, $timeout = false, $partial = array()) + { + if (!defined('CRYPT_RSA_EXPONENT')) { + // http://en.wikipedia.org/wiki/65537_%28number%29 + define('CRYPT_RSA_EXPONENT', '65537'); + } + // per , this number ought not result in primes smaller + // than 256 bits. as a consequence if the key you're trying to create is 1024 bits and you've set CRYPT_RSA_SMALLEST_PRIME + // to 384 bits then you're going to get a 384 bit prime and a 640 bit prime (384 + 1024 % 384). at least if + // CRYPT_RSA_MODE is set to CRYPT_RSA_MODE_INTERNAL. if CRYPT_RSA_MODE is set to CRYPT_RSA_MODE_OPENSSL then + // CRYPT_RSA_SMALLEST_PRIME is ignored (ie. multi-prime RSA support is more intended as a way to speed up RSA key + // generation when there's a chance neither gmp nor OpenSSL are installed) + if (!defined('CRYPT_RSA_SMALLEST_PRIME')) { + define('CRYPT_RSA_SMALLEST_PRIME', 4096); + } + + // OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum + if ( CRYPT_RSA_MODE == CRYPT_RSA_MODE_OPENSSL && $bits >= 384 && CRYPT_RSA_EXPONENT == 65537) { + $config = array(); + if (isset($this->configFile)) { + $config['config'] = $this->configFile; + } + $rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config); + openssl_pkey_export($rsa, $privatekey, NULL, $config); + $publickey = openssl_pkey_get_details($rsa); + $publickey = $publickey['key']; + + $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1))); + $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, CRYPT_RSA_PUBLIC_FORMAT_PKCS1))); + + // clear the buffer of error strings stemming from a minimalistic openssl.cnf + while (openssl_error_string() !== false); + + return array( + 'privatekey' => $privatekey, + 'publickey' => $publickey, + 'partialkey' => false + ); + } + + static $e; + if (!isset($e)) { + $e = new Math_BigInteger(CRYPT_RSA_EXPONENT); + } + + extract($this->_generateMinMax($bits)); + $absoluteMin = $min; + $temp = $bits >> 1; // divide by two to see how many bits P and Q would be + if ($temp > CRYPT_RSA_SMALLEST_PRIME) { + $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME); + $temp = CRYPT_RSA_SMALLEST_PRIME; + } else { + $num_primes = 2; + } + extract($this->_generateMinMax($temp + $bits % $temp)); + $finalMax = $max; + extract($this->_generateMinMax($temp)); + + $generator = new Math_BigInteger(); + + $n = $this->one->copy(); + if (!empty($partial)) { + extract(unserialize($partial)); + } else { + $exponents = $coefficients = $primes = array(); + $lcm = array( + 'top' => $this->one->copy(), + 'bottom' => false + ); + } + + $start = time(); + $i0 = count($primes) + 1; + + do { + for ($i = $i0; $i <= $num_primes; $i++) { + if ($timeout !== false) { + $timeout-= time() - $start; + $start = time(); + if ($timeout <= 0) { + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => serialize(array( + 'primes' => $primes, + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + )) + ); + } + } + + if ($i == $num_primes) { + list($min, $temp) = $absoluteMin->divide($n); + if (!$temp->equals($this->zero)) { + $min = $min->add($this->one); // ie. ceil() + } + $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); + } else { + $primes[$i] = $generator->randomPrime($min, $max, $timeout); + } + + if ($primes[$i] === false) { // if we've reached the timeout + if (count($primes) > 1) { + $partialkey = ''; + } else { + array_pop($primes); + $partialkey = serialize(array( + 'primes' => $primes, + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + )); + } + + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => $partialkey + ); + } + + // the first coefficient is calculated differently from the rest + // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) + if ($i > 2) { + $coefficients[$i] = $n->modInverse($primes[$i]); + } + + $n = $n->multiply($primes[$i]); + + $temp = $primes[$i]->subtract($this->one); + + // textbook RSA implementations use Euler's totient function instead of the least common multiple. + // see http://en.wikipedia.org/wiki/Euler%27s_totient_function + $lcm['top'] = $lcm['top']->multiply($temp); + $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp); + + $exponents[$i] = $e->modInverse($temp); + } + + list($lcm) = $lcm['top']->divide($lcm['bottom']); + $gcd = $lcm->gcd($e); + $i0 = 1; + } while (!$gcd->equals($this->one)); + + $d = $e->modInverse($lcm); + + $coefficients[2] = $primes[2]->modInverse($primes[1]); + + // from : + // RSAPrivateKey ::= SEQUENCE { + // version Version, + // modulus INTEGER, -- n + // publicExponent INTEGER, -- e + // privateExponent INTEGER, -- d + // prime1 INTEGER, -- p + // prime2 INTEGER, -- q + // exponent1 INTEGER, -- d mod (p-1) + // exponent2 INTEGER, -- d mod (q-1) + // coefficient INTEGER, -- (inverse of q) mod p + // otherPrimeInfos OtherPrimeInfos OPTIONAL + // } + + return array( + 'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), + 'publickey' => $this->_convertPublicKey($n, $e), + 'partialkey' => false + ); + } + + /** + * Convert a private key to the appropriate format. + * + * @access private + * @see setPrivateKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) + { + $num_primes = count($primes); + $raw = array( + 'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true), + 'privateExponent' => $d->toBytes(true), + 'prime1' => $primes[1]->toBytes(true), + 'prime2' => $primes[2]->toBytes(true), + 'exponent1' => $exponents[1]->toBytes(true), + 'exponent2' => $exponents[2]->toBytes(true), + 'coefficient' => $coefficients[2]->toBytes(true) + ); + + // if the format in question does not support multi-prime rsa and multi-prime rsa was used, + // call _convertPublicKey() instead. + switch ($this->privateKeyFormat) { + case CRYPT_RSA_PRIVATE_FORMAT_XML: + if ($num_primes != 2) { + return false; + } + return "\r\n" . + ' ' . base64_encode($raw['modulus']) . "\r\n" . + ' ' . base64_encode($raw['publicExponent']) . "\r\n" . + '

' . base64_encode($raw['prime1']) . "

\r\n" . + ' ' . base64_encode($raw['prime2']) . "\r\n" . + ' ' . base64_encode($raw['exponent1']) . "\r\n" . + ' ' . base64_encode($raw['exponent2']) . "\r\n" . + ' ' . base64_encode($raw['coefficient']) . "\r\n" . + ' ' . base64_encode($raw['privateExponent']) . "\r\n" . + '
'; + break; + case CRYPT_RSA_PRIVATE_FORMAT_PUTTY: + if ($num_primes != 2) { + return false; + } + $key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: "; + $encryption = (!empty($this->password) || is_string($this->password)) ? 'aes256-cbc' : 'none'; + $key.= $encryption; + $key.= "\r\nComment: " . CRYPT_RSA_COMMENT . "\r\n"; + $public = pack('Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($raw['publicExponent']), $raw['publicExponent'], strlen($raw['modulus']), $raw['modulus'] + ); + $source = pack('Na*Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($encryption), $encryption, + strlen(CRYPT_RSA_COMMENT), CRYPT_RSA_COMMENT, strlen($public), $public + ); + $public = base64_encode($public); + $key.= "Public-Lines: " . ((strlen($public) + 32) >> 6) . "\r\n"; + $key.= chunk_split($public, 64); + $private = pack('Na*Na*Na*Na*', + strlen($raw['privateExponent']), $raw['privateExponent'], strlen($raw['prime1']), $raw['prime1'], + strlen($raw['prime2']), $raw['prime2'], strlen($raw['coefficient']), $raw['coefficient'] + ); + if (empty($this->password) && !is_string($this->password)) { + $source.= pack('Na*', strlen($private), $private); + $hashkey = 'putty-private-key-file-mac-key'; + } else { + $private.= crypt_random_string(16 - (strlen($private) & 15)); + $source.= pack('Na*', strlen($private), $private); + if (!class_exists('Crypt_AES')) { + require_once('Crypt/AES.php'); + } + $sequence = 0; + $symkey = ''; + while (strlen($symkey) < 32) { + $temp = pack('Na*', $sequence++, $this->password); + $symkey.= pack('H*', sha1($temp)); + } + $symkey = substr($symkey, 0, 32); + $crypto = new Crypt_AES(); + + $crypto->setKey($symkey); + $crypto->disablePadding(); + $private = $crypto->encrypt($private); + $hashkey = 'putty-private-key-file-mac-key' . $this->password; + } + + $private = base64_encode($private); + $key.= 'Private-Lines: ' . ((strlen($private) + 32) >> 6) . "\r\n"; + $key.= chunk_split($private, 64); + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + $hash = new Crypt_Hash('sha1'); + $hash->setKey(pack('H*', sha1($hashkey))); + $key.= 'Private-MAC: ' . bin2hex($hash->hash($source)) . "\r\n"; + + return $key; + default: // eg. CRYPT_RSA_PRIVATE_FORMAT_PKCS1 + $components = array(); + foreach ($raw as $name => $value) { + $components[$name] = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value); + } + + $RSAPrivateKey = implode('', $components); + + if ($num_primes > 2) { + $OtherPrimeInfos = ''; + for ($i = 3; $i <= $num_primes; $i++) { + // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo + // + // OtherPrimeInfo ::= SEQUENCE { + // prime INTEGER, -- ri + // exponent INTEGER, -- di + // coefficient INTEGER -- ti + // } + $OtherPrimeInfo = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true)); + $OtherPrimeInfos.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo); + } + $RSAPrivateKey.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos); + } + + $RSAPrivateKey = pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey); + + if (!empty($this->password) || is_string($this->password)) { + $iv = crypt_random_string(8); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $des = new Crypt_TripleDES(); + $des->setKey($symkey); + $des->setIV($iv); + $iv = strtoupper(bin2hex($iv)); + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + "Proc-Type: 4,ENCRYPTED\r\n" . + "DEK-Info: DES-EDE3-CBC,$iv\r\n" . + "\r\n" . + chunk_split(base64_encode($des->encrypt($RSAPrivateKey)), 64) . + '-----END RSA PRIVATE KEY-----'; + } else { + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + chunk_split(base64_encode($RSAPrivateKey), 64) . + '-----END RSA PRIVATE KEY-----'; + } + + return $RSAPrivateKey; + } + } + + /** + * Convert a public key to the appropriate format + * + * @access private + * @see setPublicKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPublicKey($n, $e) + { + $modulus = $n->toBytes(true); + $publicExponent = $e->toBytes(true); + + switch ($this->publicKeyFormat) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + return array('e' => $e->copy(), 'n' => $n->copy()); + case CRYPT_RSA_PUBLIC_FORMAT_XML: + return "\r\n" . + ' ' . base64_encode($modulus) . "\r\n" . + ' ' . base64_encode($publicExponent) . "\r\n" . + ''; + break; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + // from : + // string "ssh-rsa" + // mpint e + // mpint n + $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus); + $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . CRYPT_RSA_COMMENT; + + return $RSAPublicKey; + default: // eg. CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW or CRYPT_RSA_PUBLIC_FORMAT_PKCS1 + // from : + // RSAPublicKey ::= SEQUENCE { + // modulus INTEGER, -- n + // publicExponent INTEGER -- e + // } + $components = array( + 'modulus' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus), + 'publicExponent' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent) + ); + + $RSAPublicKey = pack('Ca*a*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + if ($this->publicKeyFormat == CRYPT_RSA_PUBLIC_FORMAT_PKCS1) { + // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption. + $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $RSAPublicKey = chr(0) . $RSAPublicKey; + $RSAPublicKey = chr(3) . $this->_encodeLength(strlen($RSAPublicKey)) . $RSAPublicKey; + + $RSAPublicKey = pack('Ca*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey + ); + } + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($RSAPublicKey), 64) . + '-----END PUBLIC KEY-----'; + + return $RSAPublicKey; + } + } + + /** + * Break a public or private key down into its constituant components + * + * @access private + * @see _convertPublicKey() + * @see _convertPrivateKey() + * @param String $key + * @param Integer $type + * @return Array + */ + function _parseKey($key, $type) + { + if ($type != CRYPT_RSA_PUBLIC_FORMAT_RAW && !is_string($key)) { + return false; + } + + switch ($type) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + if (!is_array($key)) { + return false; + } + $components = array(); + switch (true) { + case isset($key['e']): + $components['publicExponent'] = $key['e']->copy(); + break; + case isset($key['exponent']): + $components['publicExponent'] = $key['exponent']->copy(); + break; + case isset($key['publicExponent']): + $components['publicExponent'] = $key['publicExponent']->copy(); + break; + case isset($key[0]): + $components['publicExponent'] = $key[0]->copy(); + } + switch (true) { + case isset($key['n']): + $components['modulus'] = $key['n']->copy(); + break; + case isset($key['modulo']): + $components['modulus'] = $key['modulo']->copy(); + break; + case isset($key['modulus']): + $components['modulus'] = $key['modulus']->copy(); + break; + case isset($key[1]): + $components['modulus'] = $key[1]->copy(); + } + return isset($components['modulus']) && isset($components['publicExponent']) ? $components : false; + case CRYPT_RSA_PRIVATE_FORMAT_PKCS1: + case CRYPT_RSA_PUBLIC_FORMAT_PKCS1: + /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is + "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to + protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding + two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: + + http://tools.ietf.org/html/rfc1421#section-4.6.1.1 + http://tools.ietf.org/html/rfc1421#section-4.6.1.3 + + DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. + DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation + function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's + own implementation. ie. the implementation *is* the standard and any bugs that may exist in that + implementation are part of the standard, as well. + + * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ + if (preg_match('#DEK-Info: (.+),(.+)#', $key, $matches)) { + $iv = pack('H*', trim($matches[2])); + $symkey = pack('H*', md5($this->password . substr($iv, 0, 8))); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + $ciphertext = preg_replace('#.+(\r|\n|\r\n)\1|[\r\n]|-.+-| #s', '', $key); + $ciphertext = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $ciphertext) ? base64_decode($ciphertext) : false; + if ($ciphertext === false) { + $ciphertext = $key; + } + switch ($matches[1]) { + case 'AES-128-CBC': + if (!class_exists('Crypt_AES')) { + require_once('Crypt/AES.php'); + } + $symkey = substr($symkey, 0, 16); + $crypto = new Crypt_AES(); + break; + case 'DES-EDE3-CFB': + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CFB); + break; + case 'DES-EDE3-CBC': + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $crypto = new Crypt_TripleDES(); + break; + case 'DES-CBC': + if (!class_exists('Crypt_DES')) { + require_once('Crypt/DES.php'); + } + $crypto = new Crypt_DES(); + break; + default: + return false; + } + $crypto->setKey($symkey); + $crypto->setIV($iv); + $decoded = $crypto->decrypt($ciphertext); + } else { + $decoded = preg_replace('#-.+-|[\r\n]| #', '', $key); + $decoded = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $decoded) ? base64_decode($decoded) : false; + } + + if ($decoded !== false) { + $key = $decoded; + } + + $components = array(); + + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + + $tag = ord($this->_string_shift($key)); + /* intended for keys for which OpenSSL's asn1parse returns the following: + + 0:d=0 hl=4 l= 631 cons: SEQUENCE + 4:d=1 hl=2 l= 1 prim: INTEGER :00 + 7:d=1 hl=2 l= 13 cons: SEQUENCE + 9:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption + 20:d=2 hl=2 l= 0 prim: NULL + 22:d=1 hl=4 l= 609 prim: OCTET STRING */ + + if ($tag == CRYPT_RSA_ASN1_INTEGER && substr($key, 0, 3) == "\x01\x00\x30") { + $this->_string_shift($key, 3); + $tag = CRYPT_RSA_ASN1_SEQUENCE; + } + + if ($tag == CRYPT_RSA_ASN1_SEQUENCE) { + /* intended for keys for which OpenSSL's asn1parse returns the following: + + 0:d=0 hl=4 l= 290 cons: SEQUENCE + 4:d=1 hl=2 l= 13 cons: SEQUENCE + 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption + 17:d=2 hl=2 l= 0 prim: NULL + 19:d=1 hl=4 l= 271 prim: BIT STRING */ + $this->_string_shift($key, $this->_decodeLength($key)); + $tag = ord($this->_string_shift($key)); // skip over the BIT STRING / OCTET STRING tag + $this->_decodeLength($key); // skip over the BIT STRING / OCTET STRING length + // "The initial octet shall encode, as an unsigned binary integer wtih bit 1 as the least significant bit, the number of + // unused bits in the final subsequent octet. The number shall be in the range zero to seven." + // -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf (section 8.6.2.2) + if ($tag == CRYPT_RSA_ASN1_BITSTRING) { + $this->_string_shift($key); + } + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + $tag = ord($this->_string_shift($key)); + } + if ($tag != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + + $length = $this->_decodeLength($key); + $temp = $this->_string_shift($key, $length); + if (strlen($temp) != 1 || ord($temp) > 2) { + $components['modulus'] = new Math_BigInteger($temp, 256); + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $components[$type == CRYPT_RSA_PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + + return $components; + } + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + $length = $this->_decodeLength($key); + $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + + if (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + while (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + $key = substr($key, 1); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + } + } + + return $components; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + $key = base64_decode(preg_replace('#^ssh-rsa | .+$#', '', $key)); + if ($key === false) { + return false; + } + + $cleanup = substr($key, 0, 11) == "\0\0\0\7ssh-rsa"; + + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $publicExponent = new Math_BigInteger($this->_string_shift($key, $length), -256); + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $modulus = new Math_BigInteger($this->_string_shift($key, $length), -256); + + if ($cleanup && strlen($key)) { + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $realModulus = new Math_BigInteger($this->_string_shift($key, $length), -256); + return strlen($key) ? false : array( + 'modulus' => $realModulus, + 'publicExponent' => $modulus + ); + } else { + return strlen($key) ? false : array( + 'modulus' => $modulus, + 'publicExponent' => $publicExponent + ); + } + // http://www.w3.org/TR/xmldsig-core/#sec-RSAKeyValue + // http://en.wikipedia.org/wiki/XML_Signature + case CRYPT_RSA_PRIVATE_FORMAT_XML: + case CRYPT_RSA_PUBLIC_FORMAT_XML: + $this->components = array(); + + $xml = xml_parser_create('UTF-8'); + xml_set_object($xml, $this); + xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler'); + xml_set_character_data_handler($xml, '_data_handler'); + // add to account for "dangling" tags like ... that are sometimes added + if (!xml_parse($xml, '' . $key . '')) { + return false; + } + + return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : false; + // from PuTTY's SSHPUBK.C + case CRYPT_RSA_PRIVATE_FORMAT_PUTTY: + $components = array(); + $key = preg_split('#\r\n|\r|\n#', $key); + $type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0])); + if ($type != 'ssh-rsa') { + return false; + } + $encryption = trim(preg_replace('#Encryption: (.+)#', '$1', $key[1])); + + $publicLength = trim(preg_replace('#Public-Lines: (\d+)#', '$1', $key[3])); + $public = base64_decode(implode('', array_map('trim', array_slice($key, 4, $publicLength)))); + $public = substr($public, 11); + extract(unpack('Nlength', $this->_string_shift($public, 4))); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($public, $length), -256); + extract(unpack('Nlength', $this->_string_shift($public, 4))); + $components['modulus'] = new Math_BigInteger($this->_string_shift($public, $length), -256); + + $privateLength = trim(preg_replace('#Private-Lines: (\d+)#', '$1', $key[$publicLength + 4])); + $private = base64_decode(implode('', array_map('trim', array_slice($key, $publicLength + 5, $privateLength)))); + + switch ($encryption) { + case 'aes256-cbc': + if (!class_exists('Crypt_AES')) { + require_once('Crypt/AES.php'); + } + $symkey = ''; + $sequence = 0; + while (strlen($symkey) < 32) { + $temp = pack('Na*', $sequence++, $this->password); + $symkey.= pack('H*', sha1($temp)); + } + $symkey = substr($symkey, 0, 32); + $crypto = new Crypt_AES(); + } + + if ($encryption != 'none') { + $crypto->setKey($symkey); + $crypto->disablePadding(); + $private = $crypto->decrypt($private); + if ($private === false) { + return false; + } + } + + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($private, $length), -256); + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($private, $length), -256)); + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['primes'][] = new Math_BigInteger($this->_string_shift($private, $length), -256); + + $temp = $components['primes'][1]->subtract($this->one); + $components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp)); + $temp = $components['primes'][2]->subtract($this->one); + $components['exponents'][] = $components['publicExponent']->modInverse($temp); + + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($private, $length), -256)); + + return $components; + } + } + + /** + * Returns the key size + * + * More specifically, this returns the size of the modulo in bits. + * + * @access public + * @return Integer + */ + function getSize() + { + return !isset($this->modulus) ? 0 : strlen($this->modulus->toBits()); + } + + /** + * Start Element Handler + * + * Called by xml_set_element_handler() + * + * @access private + * @param Resource $parser + * @param String $name + * @param Array $attribs + */ + function _start_element_handler($parser, $name, $attribs) + { + //$name = strtoupper($name); + switch ($name) { + case 'MODULUS': + $this->current = &$this->components['modulus']; + break; + case 'EXPONENT': + $this->current = &$this->components['publicExponent']; + break; + case 'P': + $this->current = &$this->components['primes'][1]; + break; + case 'Q': + $this->current = &$this->components['primes'][2]; + break; + case 'DP': + $this->current = &$this->components['exponents'][1]; + break; + case 'DQ': + $this->current = &$this->components['exponents'][2]; + break; + case 'INVERSEQ': + $this->current = &$this->components['coefficients'][2]; + break; + case 'D': + $this->current = &$this->components['privateExponent']; + break; + default: + unset($this->current); + } + $this->current = ''; + } + + /** + * Stop Element Handler + * + * Called by xml_set_element_handler() + * + * @access private + * @param Resource $parser + * @param String $name + */ + function _stop_element_handler($parser, $name) + { + //$name = strtoupper($name); + if ($name == 'RSAKEYVALUE') { + return; + } + $this->current = new Math_BigInteger(base64_decode($this->current), 256); + } + + /** + * Data Handler + * + * Called by xml_set_character_data_handler() + * + * @access private + * @param Resource $parser + * @param String $data + */ + function _data_handler($parser, $data) + { + if (!isset($this->current) || is_object($this->current)) { + return; + } + $this->current.= trim($data); + } + + /** + * Loads a public or private key + * + * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed) + * + * @access public + * @param String $key + * @param Integer $type optional + */ + function loadKey($key, $type = false) + { + if ($type === false) { + $types = array( + CRYPT_RSA_PUBLIC_FORMAT_RAW, + CRYPT_RSA_PRIVATE_FORMAT_PKCS1, + CRYPT_RSA_PRIVATE_FORMAT_XML, + CRYPT_RSA_PRIVATE_FORMAT_PUTTY, + CRYPT_RSA_PUBLIC_FORMAT_OPENSSH + ); + foreach ($types as $type) { + $components = $this->_parseKey($key, $type); + if ($components !== false) { + break; + } + } + + } else { + $components = $this->_parseKey($key, $type); + } + + if ($components === false) { + return false; + } + + $this->modulus = $components['modulus']; + $this->k = strlen($this->modulus->toBytes()); + $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; + if (isset($components['primes'])) { + $this->primes = $components['primes']; + $this->exponents = $components['exponents']; + $this->coefficients = $components['coefficients']; + $this->publicExponent = $components['publicExponent']; + } else { + $this->primes = array(); + $this->exponents = array(); + $this->coefficients = array(); + $this->publicExponent = false; + } + + return true; + } + + /** + * Sets the password + * + * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. + * Or rather, pass in $password such that empty($password) && !is_string($password) is true. + * + * @see createKey() + * @see loadKey() + * @access public + * @param String $password + */ + function setPassword($password = false) + { + $this->password = $password; + } + + /** + * Defines the public key + * + * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when + * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a + * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys + * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public + * exponent this won't work unless you manually add the public exponent. + * + * Do note that when a new key is loaded the index will be cleared. + * + * Returns true on success, false on failure + * + * @see getPublicKey() + * @access public + * @param String $key optional + * @param Integer $type optional + * @return Boolean + */ + function setPublicKey($key = false, $type = false) + { + if ($key === false && !empty($this->modulus)) { + $this->publicExponent = $this->exponent; + return true; + } + + if ($type === false) { + $types = array( + CRYPT_RSA_PUBLIC_FORMAT_RAW, + CRYPT_RSA_PUBLIC_FORMAT_PKCS1, + CRYPT_RSA_PUBLIC_FORMAT_XML, + CRYPT_RSA_PUBLIC_FORMAT_OPENSSH + ); + foreach ($types as $type) { + $components = $this->_parseKey($key, $type); + if ($components !== false) { + break; + } + } + } else { + $components = $this->_parseKey($key, $type); + } + + if ($components === false) { + return false; + } + + if (empty($this->modulus) || !$this->modulus->equals($components['modulus'])) { + $this->modulus = $components['modulus']; + $this->exponent = $this->publicExponent = $components['publicExponent']; + return true; + } + + $this->publicExponent = $components['publicExponent']; + + return true; + } + + /** + * Returns the public key + * + * The public key is only returned under two circumstances - if the private key had the public key embedded within it + * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this + * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->modulus) || empty($this->publicExponent)) { + return false; + } + + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $type; + $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * Returns the private key + * + * The private key is only returned if the currently loaded key contains the constituent prime numbers. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPrivateKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->primes)) { + return false; + } + + $oldFormat = $this->privateKeyFormat; + $this->privateKeyFormat = $type; + $temp = $this->_convertPrivateKey($this->modulus, $this->publicExponent, $this->exponent, $this->primes, $this->exponents, $this->coefficients); + $this->privateKeyFormat = $oldFormat; + return $temp; + } + + /** + * Returns a minimalistic private key + * + * Returns the private key without the prime number constituants. Structurally identical to a public key that + * hasn't been set as the public key + * + * @see getPrivateKey() + * @access private + * @param String $key + * @param Integer $type optional + */ + function _getPrivatePublicKey($mode = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $mode; + $temp = $this->_convertPublicKey($this->modulus, $this->exponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * __toString() magic method + * + * @access public + */ + function __toString() + { + $key = $this->getPrivateKey($this->privateKeyFormat); + if ($key !== false) { + return $key; + } + $key = $this->_getPrivatePublicKey($this->publicKeyFormat); + return $key !== false ? $key : ''; + } + + /** + * Generates the smallest and largest numbers requiring $bits bits + * + * @access private + * @param Integer $bits + * @return Array + */ + function _generateMinMax($bits) + { + $bytes = $bits >> 3; + $min = str_repeat(chr(0), $bytes); + $max = str_repeat(chr(0xFF), $bytes); + $msb = $bits & 7; + if ($msb) { + $min = chr(1 << ($msb - 1)) . $min; + $max = chr((1 << $msb) - 1) . $max; + } else { + $min[0] = chr(0x80); + } + + return array( + 'min' => new Math_BigInteger($min, 256), + 'max' => new Math_BigInteger($max, 256) + ); + } + + /** + * DER-decode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param String $string + * @return Integer + */ + function _decodeLength(&$string) + { + $length = ord($this->_string_shift($string)); + if ( $length & 0x80 ) { // definite length, long form + $length&= 0x7F; + $temp = $this->_string_shift($string, $length); + list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)); + } + return $length; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Determines the private key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPrivateKeyFormat($format) + { + $this->privateKeyFormat = $format; + } + + /** + * Determines the public key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPublicKeyFormat($format) + { + $this->publicKeyFormat = $format; + } + + /** + * Determines which hashing function should be used + * + * Used with signature production / verification and (if the encryption mode is CRYPT_RSA_ENCRYPTION_OAEP) encryption and + * decryption. If $hash isn't supported, sha1 is used. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = new Crypt_Hash($hash); + $this->hashName = $hash; + break; + default: + $this->hash = new Crypt_Hash('sha1'); + $this->hashName = 'sha1'; + } + $this->hLen = $this->hash->getLength(); + } + + /** + * Determines which hashing function should be used for the mask generation function + * + * The mask generation function is used by CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_SIGNATURE_PSS and although it's + * best if Hash and MGFHash are set to the same thing this is not a requirement. + * + * @access public + * @param String $hash + */ + function setMGFHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->mgfHash = new Crypt_Hash($hash); + break; + default: + $this->mgfHash = new Crypt_Hash('sha1'); + } + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Determines the salt length + * + * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: + * + * Typical salt lengths in octets are hLen (the length of the output + * of the hash function Hash) and 0. + * + * @access public + * @param Integer $format + */ + function setSaltLength($sLen) + { + $this->sLen = $sLen; + } + + /** + * Integer-to-Octet-String primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. + * + * @access private + * @param Math_BigInteger $x + * @param Integer $xLen + * @return String + */ + function _i2osp($x, $xLen) + { + $x = $x->toBytes(); + if (strlen($x) > $xLen) { + user_error('Integer too large'); + return false; + } + return str_pad($x, $xLen, chr(0), STR_PAD_LEFT); + } + + /** + * Octet-String-to-Integer primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. + * + * @access private + * @param String $x + * @return Math_BigInteger + */ + function _os2ip($x) + { + return new Math_BigInteger($x, 256); + } + + /** + * Exponentiate with or without Chinese Remainder Theorem + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $x + * @return Math_BigInteger + */ + function _exponentiate($x) + { + if (empty($this->primes) || empty($this->coefficients) || empty($this->exponents)) { + return $x->modPow($this->exponent, $this->modulus); + } + + $num_primes = count($this->primes); + + if (defined('CRYPT_RSA_DISABLE_BLINDING')) { + $m_i = array( + 1 => $x->modPow($this->exponents[1], $this->primes[1]), + 2 => $x->modPow($this->exponents[2], $this->primes[2]) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } else { + $smallest = $this->primes[1]; + for ($i = 2; $i <= $num_primes; $i++) { + if ($smallest->compare($this->primes[$i]) > 0) { + $smallest = $this->primes[$i]; + } + } + + $one = new Math_BigInteger(1); + + $r = $one->random($one, $smallest->subtract($one)); + + $m_i = array( + 1 => $this->_blind($x, $r, 1), + 2 => $this->_blind($x, $r, 2) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $this->_blind($x, $r, $i); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } + + return $m; + } + + /** + * Performs RSA Blinding + * + * Protects against timing attacks by employing RSA Blinding. + * Returns $x->modPow($this->exponents[$i], $this->primes[$i]) + * + * @access private + * @param Math_BigInteger $x + * @param Math_BigInteger $r + * @param Integer $i + * @return Math_BigInteger + */ + function _blind($x, $r, $i) + { + $x = $x->multiply($r->modPow($this->publicExponent, $this->primes[$i])); + $x = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->modInverse($this->primes[$i]); + $x = $x->multiply($r); + list(, $x) = $x->divide($this->primes[$i]); + + return $x; + } + + /** + * Performs blinded RSA equality testing + * + * Protects against a particular type of timing attack described. + * + * See {@link http://codahale.com/a-lesson-in-timing-attacks/ A Lesson In Timing Attacks (or, Dont use MessageDigest.isEquals)} + * + * Thanks for the heads up singpolyma! + * + * @access private + * @param String $x + * @param String $y + * @return Boolean + */ + function _equals($x, $y) + { + if (strlen($x) != strlen($y)) { + return false; + } + + $result = 0; + for ($i = 0; $i < strlen($x); $i++) { + $result |= ord($x[$i]) ^ ord($y[$i]); + } + + return $result == 0; + } + + /** + * RSAEP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsaep($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range'); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSADP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $c + * @return Math_BigInteger + */ + function _rsadp($c) + { + if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { + user_error('Ciphertext representative out of range'); + return false; + } + return $this->_exponentiate($c); + } + + /** + * RSASP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsasp1($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range'); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSAVP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. + * + * @access private + * @param Math_BigInteger $s + * @return Math_BigInteger + */ + function _rsavp1($s) + { + if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { + user_error('Signature representative out of range'); + return false; + } + return $this->_exponentiate($s); + } + + /** + * MGF1 + * + * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}. + * + * @access private + * @param String $mgfSeed + * @param Integer $mgfLen + * @return String + */ + function _mgf1($mgfSeed, $maskLen) + { + // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. + + $t = ''; + $count = ceil($maskLen / $this->mgfHLen); + for ($i = 0; $i < $count; $i++) { + $c = pack('N', $i); + $t.= $this->mgfHash->hash($mgfSeed . $c); + } + + return substr($t, 0, $maskLen); + } + + /** + * RSAES-OAEP-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and + * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. + * + * @access private + * @param String $m + * @param String $l + * @return String + */ + function _rsaes_oaep_encrypt($m, $l = '') + { + $mLen = strlen($m); + + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if ($mLen > $this->k - 2 * $this->hLen - 2) { + user_error('Message too long'); + return false; + } + + // EME-OAEP encoding + + $lHash = $this->hash->hash($l); + $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2); + $db = $lHash . $ps . chr(1) . $m; + $seed = crypt_random_string($this->hLen); + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $maskedSeed = $seed ^ $seedMask; + $em = chr(0) . $maskedSeed . $maskedDB; + + // RSA encryption + + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-OAEP-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error + * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: + * + * Note. Care must be taken to ensure that an opponent cannot + * distinguish the different error conditions in Step 3.g, whether by + * error message or timing, or, more generally, learn partial + * information about the encoded message EM. Otherwise an opponent may + * be able to obtain useful information about the decryption of the + * ciphertext C, leading to a chosen-ciphertext attack such as the one + * observed by Manger [36]. + * + * As for $l... to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: + * + * Both the encryption and the decryption operations of RSAES-OAEP take + * the value of a label L as input. In this version of PKCS #1, L is + * the empty string; other uses of the label are outside the scope of + * this document. + * + * @access private + * @param String $c + * @param String $l + * @return String + */ + function _rsaes_oaep_decrypt($c, $l = '') + { + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { + user_error('Decryption error'); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error'); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-OAEP decoding + + $lHash = $this->hash->hash($l); + $y = ord($em[0]); + $maskedSeed = substr($em, 1, $this->hLen); + $maskedDB = substr($em, $this->hLen + 1); + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $seed = $maskedSeed ^ $seedMask; + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $lHash2 = substr($db, 0, $this->hLen); + $m = substr($db, $this->hLen); + if ($lHash != $lHash2) { + user_error('Decryption error'); + return false; + } + $m = ltrim($m, chr(0)); + if (ord($m[0]) != 1) { + user_error('Decryption error'); + return false; + } + + // Output the message M + + return substr($m, 1); + } + + /** + * RSAES-PKCS1-V1_5-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsaes_pkcs1_v1_5_encrypt($m) + { + $mLen = strlen($m); + + // Length checking + + if ($mLen > $this->k - 11) { + user_error('Message too long'); + return false; + } + + // EME-PKCS1-v1_5 encoding + $psLen = $this->k - $mLen - 3; + $ps = ''; + while (strlen($ps) != $psLen) { + $temp = crypt_random_string($psLen - strlen($ps)); + $temp = str_replace("\x00", '', $temp); + $ps.= $temp; + } + $em = chr(0) . chr(2) . $ps . chr(0) . $m; + + // RSA encryption + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-PKCS1-V1_5-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. + * + * For compatability purposes, this function departs slightly from the description given in RFC3447. + * The reason being that RFC2313#section-8.1 (PKCS#1 v1.5) states that ciphertext's encrypted by the + * private key should have the second byte set to either 0 or 1 and that ciphertext's encrypted by the + * public key should have the second byte set to 2. In RFC3447 (PKCS#1 v2.1), the second byte is supposed + * to be 2 regardless of which key is used. For compatability purposes, we'll just check to make sure the + * second byte is 2 or less. If it is, we'll accept the decrypted string as valid. + * + * As a consequence of this, a private key encrypted ciphertext produced with Crypt_RSA may not decrypt + * with a strictly PKCS#1 v1.5 compliant RSA implementation. Public key encrypted ciphertext's should but + * not private key encrypted ciphertext's. + * + * @access private + * @param String $c + * @return String + */ + function _rsaes_pkcs1_v1_5_decrypt($c) + { + // Length checking + + if (strlen($c) != $this->k) { // or if k < 11 + user_error('Decryption error'); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + + if ($m === false) { + user_error('Decryption error'); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-PKCS1-v1_5 decoding + + if (ord($em[0]) != 0 || ord($em[1]) > 2) { + user_error('Decryption error'); + return false; + } + + $ps = substr($em, 2, strpos($em, chr(0), 2) - 2); + $m = substr($em, strlen($ps) + 3); + + if (strlen($ps) < 8) { + user_error('Decryption error'); + return false; + } + + // Output M + + return $m; + } + + /** + * EMSA-PSS-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. + * + * @access private + * @param String $m + * @param Integer $emBits + */ + function _emsa_pss_encode($m, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8) + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + user_error('Encoding error'); + return false; + } + + $salt = crypt_random_string($sLen); + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h = $this->hash->hash($m2); + $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2); + $db = $ps . chr(1) . $salt; + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0]; + $em = $maskedDB . $h . chr(0xBC); + + return $em; + } + + /** + * EMSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. + * + * @access private + * @param String $m + * @param String $em + * @param Integer $emBits + * @return String + */ + function _emsa_pss_verify($m, $em, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8); + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + return false; + } + + if ($em[strlen($em) - 1] != chr(0xBC)) { + return false; + } + + $maskedDB = substr($em, 0, -$this->hLen - 1); + $h = substr($em, -$this->hLen - 1, $this->hLen); + $temp = chr(0xFF << ($emBits & 7)); + if ((~$maskedDB[0] & $temp) != $temp) { + return false; + } + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0]; + $temp = $emLen - $this->hLen - $sLen - 2; + if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) { + return false; + } + $salt = substr($db, $temp + 1); // should be $sLen long + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h2 = $this->hash->hash($m2); + return $this->_equals($h, $h2); + } + + /** + * RSASSA-PSS-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pss_sign($m) + { + // EMSA-PSS encoding + + $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. + * + * @access private + * @param String $m + * @param String $s + * @return String + */ + function _rsassa_pss_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature'); + return false; + } + + // RSA verification + + $modBits = 8 * $this->k; + + $s2 = $this->_os2ip($s); + $m2 = $this->_rsavp1($s2); + if ($m2 === false) { + user_error('Invalid signature'); + return false; + } + $em = $this->_i2osp($m2, $modBits >> 3); + if ($em === false) { + user_error('Invalid signature'); + return false; + } + + // EMSA-PSS verification + + return $this->_emsa_pss_verify($m, $em, $modBits - 1); + } + + /** + * EMSA-PKCS1-V1_5-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. + * + * @access private + * @param String $m + * @param Integer $emLen + * @return String + */ + function _emsa_pkcs1_v1_5_encode($m, $emLen) + { + $h = $this->hash->hash($m); + if ($h === false) { + return false; + } + + // see http://tools.ietf.org/html/rfc3447#page-43 + switch ($this->hashName) { + case 'md2': + $t = pack('H*', '3020300c06082a864886f70d020205000410'); + break; + case 'md5': + $t = pack('H*', '3020300c06082a864886f70d020505000410'); + break; + case 'sha1': + $t = pack('H*', '3021300906052b0e03021a05000414'); + break; + case 'sha256': + $t = pack('H*', '3031300d060960864801650304020105000420'); + break; + case 'sha384': + $t = pack('H*', '3041300d060960864801650304020205000430'); + break; + case 'sha512': + $t = pack('H*', '3051300d060960864801650304020305000440'); + } + $t.= $h; + $tLen = strlen($t); + + if ($emLen < $tLen + 11) { + user_error('Intended encoded message length too short'); + return false; + } + + $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3); + + $em = "\0\1$ps\0$t"; + + return $em; + } + + /** + * RSASSA-PKCS1-V1_5-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_sign($m) + { + // EMSA-PKCS1-v1_5 encoding + + $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em === false) { + user_error('RSA modulus too short'); + return false; + } + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PKCS1-V1_5-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature'); + return false; + } + + // RSA verification + + $s = $this->_os2ip($s); + $m2 = $this->_rsavp1($s); + if ($m2 === false) { + user_error('Invalid signature'); + return false; + } + $em = $this->_i2osp($m2, $this->k); + if ($em === false) { + user_error('Invalid signature'); + return false; + } + + // EMSA-PKCS1-v1_5 encoding + + $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em2 === false) { + user_error('RSA modulus too short'); + return false; + } + + // Compare + return $this->_equals($em, $em2); + } + + /** + * Set Encryption Mode + * + * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1. + * + * @access public + * @param Integer $mode + */ + function setEncryptionMode($mode) + { + $this->encryptionMode = $mode; + } + + /** + * Set Signature Mode + * + * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1 + * + * @access public + * @param Integer $mode + */ + function setSignatureMode($mode) + { + $this->signatureMode = $mode; + } + + /** + * Encryption + * + * Both CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1 both place limits on how long $plaintext can be. + * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will + * be concatenated together. + * + * @see decrypt() + * @access public + * @param String $plaintext + * @return String + */ + function encrypt($plaintext) + { + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $length = $this->k - 11; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m); + } + return $ciphertext; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $length = $this->k - 2 * $this->hLen - 2; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_oaep_encrypt($m); + } + return $ciphertext; + } + } + + /** + * Decryption + * + * @see encrypt() + * @access public + * @param String $plaintext + * @return String + */ + function decrypt($ciphertext) + { + if ($this->k <= 0) { + return false; + } + + $ciphertext = str_split($ciphertext, $this->k); + $ciphertext[count($ciphertext) - 1] = str_pad($ciphertext[count($ciphertext) - 1], $this->k, chr(0), STR_PAD_LEFT); + + $plaintext = ''; + + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $decrypt = '_rsaes_pkcs1_v1_5_decrypt'; + break; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $decrypt = '_rsaes_oaep_decrypt'; + } + + foreach ($ciphertext as $c) { + $temp = $this->$decrypt($c); + if ($temp === false) { + return false; + } + $plaintext.= $temp; + } + + return $plaintext; + } + + /** + * Create a signature + * + * @see verify() + * @access public + * @param String $message + * @return String + */ + function sign($message) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_sign($message); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_sign($message); + } + } + + /** + * Verifies a signature + * + * @see sign() + * @access public + * @param String $message + * @param String $signature + * @return Boolean + */ + function verify($message, $signature) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_verify($message, $signature); + } + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Random.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Random.php new file mode 100644 index 0000000000000000000000000000000000000000..a60857df95ddf12870d91934822cb4aaad3cd330 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Random.php @@ -0,0 +1,243 @@ + + * + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Random + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: Random.php,v 1.9 2010/04/24 06:40:48 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Generate a random string. + * + * Although microoptimizations are generally discouraged as they impair readability this function is ripe with + * microoptimizations because this function has the potential of being called a huge number of times. + * eg. for RSA key generation. + * + * @param Integer $length + * @return String + * @access public + */ +function crypt_random_string($length) { + // PHP_OS & "\xDF\xDF\xDF" == strtoupper(substr(PHP_OS, 0, 3)), but a lot faster + if ((PHP_OS & "\xDF\xDF\xDF") === 'WIN') { + // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call. + // ie. class_alias is a function that was introduced in PHP 5.3 + if (function_exists('mcrypt_create_iv') && function_exists('class_alias')) { + return mcrypt_create_iv($length); + } + // method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was, + // to quote , "possible blocking behavior". as of 5.3.4 + // openssl_random_pseudo_bytes and mcrypt_create_iv do the exact same thing on Windows. ie. they both + // call php_win32_get_random_bytes(): + // + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/openssl/openssl.c#L5008 + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1392 + // + // php_win32_get_random_bytes() is defined thusly: + // + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80 + // + // we're calling it, all the same, in the off chance that the mcrypt extension is not available + if (function_exists('openssl_random_pseudo_bytes') && version_compare(PHP_VERSION, '5.3.4', '>=')) { + return openssl_random_pseudo_bytes($length); + } + } else { + // method 1. the fastest + if (function_exists('openssl_random_pseudo_bytes')) { + return openssl_random_pseudo_bytes($length); + } + // method 2 + static $fp = true; + if ($fp === true) { + // warning's will be output unles the error suppression operator is used. errors such as + // "open_basedir restriction in effect", "Permission denied", "No such file or directory", etc. + $fp = @fopen('/dev/urandom', 'rb'); + } + if ($fp !== true && $fp !== false) { // surprisingly faster than !is_bool() or is_resource() + return fread($fp, $length); + } + // method 3. pretty much does the same thing as method 2 per the following url: + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1391 + // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're + // not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir + // restrictions or some such + if (function_exists('mcrypt_create_iv')) { + return mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); + } + } + // at this point we have no choice but to use a pure-PHP CSPRNG + + // cascade entropy across multiple PHP instances by fixing the session and collecting all + // environmental variables, including the previous session data and the current session + // data. + // + // mt_rand seeds itself by looking at the PID and the time, both of which are (relatively) + // easy to guess at. linux uses mouse clicks, keyboard timings, etc, as entropy sources, but + // PHP isn't low level to be able to use those as sources and on a web server there's not likely + // going to be a ton of keyboard or mouse action. web servers do have one thing that we can use + // however. a ton of people visiting the website. obviously you don't want to base your seeding + // soley on parameters a potential attacker sends but (1) not everything in $_SERVER is controlled + // by the user and (2) this isn't just looking at the data sent by the current user - it's based + // on the data sent by all users. one user requests the page and a hash of their info is saved. + // another user visits the page and the serialization of their data is utilized along with the + // server envirnment stuff and a hash of the previous http request data (which itself utilizes + // a hash of the session data before that). certainly an attacker should be assumed to have + // full control over his own http requests. he, however, is not going to have control over + // everyone's http requests. + static $crypto = false, $v; + if ($crypto === false) { + // save old session data + $old_session_id = session_id(); + $old_use_cookies = ini_get('session.use_cookies'); + $old_session_cache_limiter = session_cache_limiter(); + if (isset($_SESSION)) { + $_OLD_SESSION = $_SESSION; + } + if ($old_session_id != '') { + session_write_close(); + } + + session_id(1); + ini_set('session.use_cookies', 0); + session_cache_limiter(''); + session_start(); + + $v = $seed = $_SESSION['seed'] = pack('H*', sha1( + serialize($_SERVER) . + serialize($_POST) . + serialize($_GET) . + serialize($_COOKIE) . + serialize($_GLOBAL) . + serialize($_SESSION) . + serialize($_OLD_SESSION) + )); + if (!isset($_SESSION['count'])) { + $_SESSION['count'] = 0; + } + $_SESSION['count']++; + + session_write_close(); + + // restore old session data + if ($old_session_id != '') { + session_id($old_session_id); + session_start(); + ini_set('session.use_cookies', $old_use_cookies); + session_cache_limiter($old_session_cache_limiter); + } else { + if (isset($_OLD_SESSION)) { + $_SESSION = $_OLD_SESSION; + unset($_OLD_SESSION); + } else { + unset($_SESSION); + } + } + + // in SSH2 a shared secret and an exchange hash are generated through the key exchange process. + // the IV client to server is the hash of that "nonce" with the letter A and for the encryption key it's the letter C. + // if the hash doesn't produce enough a key or an IV that's long enough concat successive hashes of the + // original hash and the current hash. we'll be emulating that. for more info see the following URL: + // + // http://tools.ietf.org/html/rfc4253#section-7.2 + // + // see the is_string($crypto) part for an example of how to expand the keys + $key = pack('H*', sha1($seed . 'A')); + $iv = pack('H*', sha1($seed . 'C')); + + // ciphers are used as per the nist.gov link below. also, see this link: + // + // http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator#Designs_based_on_cryptographic_primitives + switch (true) { + case class_exists('Crypt_AES'): + $crypto = new Crypt_AES(CRYPT_AES_MODE_CTR); + break; + case class_exists('Crypt_TripleDES'): + $crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_DES'): + $crypto = new Crypt_DES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_RC4'): + $crypto = new Crypt_RC4(); + break; + default: + $crypto = $seed; + return crypt_random_string($length); + } + + $crypto->setKey($key); + $crypto->setIV($iv); + $crypto->enableContinuousBuffer(); + } + + if (is_string($crypto)) { + // the following is based off of ANSI X9.31: + // + // http://csrc.nist.gov/groups/STM/cavp/documents/rng/931rngext.pdf + // + // OpenSSL uses that same standard for it's random numbers: + // + // http://www.opensource.apple.com/source/OpenSSL/OpenSSL-38/openssl/fips-1.0/rand/fips_rand.c + // (do a search for "ANS X9.31 A.2.4") + // + // ANSI X9.31 recommends ciphers be used and phpseclib does use them if they're available (see + // later on in the code) but if they're not we'll use sha1 + $result = ''; + while (strlen($result) < $length) { // each loop adds 20 bytes + // microtime() isn't packed as "densely" as it could be but then neither is that the idea. + // the idea is simply to ensure that each "block" has a unique element to it. + $i = pack('H*', sha1(microtime())); + $r = pack('H*', sha1($i ^ $v)); + $v = pack('H*', sha1($r ^ $i)); + $result.= $r; + } + return substr($result, 0, $length); + } + + //return $crypto->encrypt(str_repeat("\0", $length)); + + $result = ''; + while (strlen($result) < $length) { + $i = $crypto->encrypt(microtime()); + $r = $crypto->encrypt($i ^ $v); + $v = $crypto->encrypt($r ^ $i); + $result.= $r; + } + return substr($result, 0, $length); +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Rijndael.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Rijndael.php new file mode 100644 index 0000000000000000000000000000000000000000..335d5233c4d6c537d4cdf72c16a02f5ce6c4f58a --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/Rijndael.php @@ -0,0 +1,1525 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Rijndael + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: Rijndael.php,v 1.12 2010/02/09 06:10:26 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access public + * @see Crypt_Rijndael::encrypt() + * @see Crypt_Rijndael::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_RIJNDAEL_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_RIJNDAEL_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_RIJNDAEL_MODE_CBC', 2); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_RIJNDAEL_MODE_CFB', 3); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_RIJNDAEL_MODE_OFB', 4); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Rijndael::Crypt_Rijndael() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RIJNDAEL_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RIJNDAEL_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of Rijndael. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Rijndael + */ +class Crypt_Rijndael { + /** + * The Encryption Mode + * + * @see Crypt_Rijndael::Crypt_Rijndael() + * @var Integer + * @access private + */ + var $mode; + + /** + * The Key + * + * @see Crypt_Rijndael::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + + /** + * The Initialization Vector + * + * @see Crypt_Rijndael::setIV() + * @var String + * @access private + */ + var $iv = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = ''; + + /** + * Continuous Buffer status + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_Rijndael::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * Does the key schedule need to be (re)calculated? + * + * @see setKey() + * @see setBlockLength() + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Has the key length explicitly been set or should it be derived from the key, itself? + * + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $explicit_key_length = false; + + /** + * The Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $w; + + /** + * The Inverse Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $dw; + + /** + * The Block Length + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 32, the min value is 16. All valid values are multiples of 4. Exists in conjunction with + * $Nb because we need this value and not $Nb to pad strings appropriately. + */ + var $block_size = 16; + + /** + * The Block Length divided by 32 + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size + * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could + * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + * + */ + var $Nb = 4; + + /** + * The Key Length + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $key_size + * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could + * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + */ + var $key_size = 16; + + /** + * The Key Length divided by 32 + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 + */ + var $Nk = 4; + + /** + * The Number of Rounds + * + * @var Integer + * @access private + * @internal The max value is 14, the min value is 10. + */ + var $Nr; + + /** + * Shift offsets + * + * @var Array + * @access private + */ + var $c; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t0; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t1; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t2; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t3; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt0; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt1; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt2; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt3; + + /** + * Is the mode one that is paddable? + * + * @see Crypt_Rijndael::Crypt_Rijndael() + * @var Boolean + * @access private + */ + var $paddable = false; + + /** + * Encryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_Rijndael::encrypt() + * @var String + * @access private + */ + var $enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0); + + /** + * Decryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_Rijndael::decrypt() + * @var String + * @access private + */ + var $debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_RIJNDAEL_MODE_ECB or CRYPT_RIJNDAEL_MODE_CBC. If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_Rijndael + * @access public + */ + function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + { + switch ($mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + case CRYPT_RIJNDAEL_MODE_CBC: + $this->paddable = true; + $this->mode = $mode; + break; + case CRYPT_RIJNDAEL_MODE_CTR: + case CRYPT_RIJNDAEL_MODE_CFB: + case CRYPT_RIJNDAEL_MODE_OFB: + $this->mode = $mode; + break; + default: + $this->paddable = true; + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + + $t3 = &$this->t3; + $t2 = &$this->t2; + $t1 = &$this->t1; + $t0 = &$this->t0; + + $dt3 = &$this->dt3; + $dt2 = &$this->dt2; + $dt1 = &$this->dt1; + $dt0 = &$this->dt0; + + // according to (section 5.2.1), + // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so + // those are the names we'll use. + $t3 = array( + 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, + 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, + 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, + 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, + 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, + 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, + 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, + 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, + 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, + 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, + 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, + 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, + 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, + 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, + 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, + 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, + 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, + 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, + 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, + 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, + 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, + 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, + 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, + 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, + 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, + 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, + 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, + 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, + 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, + 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, + 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, + 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C + ); + + $dt3 = array( + 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, + 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, + 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, + 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, + 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, + 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, + 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, + 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, + 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, + 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, + 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, + 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, + 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, + 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, + 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, + 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, + 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, + 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, + 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, + 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, + 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, + 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, + 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, + 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, + 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, + 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, + 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, + 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, + 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, + 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, + 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, + 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 + ); + + for ($i = 0; $i < 256; $i++) { + $t2[] = (($t3[$i] << 8) & 0xFFFFFF00) | (($t3[$i] >> 24) & 0x000000FF); + $t1[] = (($t3[$i] << 16) & 0xFFFF0000) | (($t3[$i] >> 16) & 0x0000FFFF); + $t0[] = (($t3[$i] << 24) & 0xFF000000) | (($t3[$i] >> 8) & 0x00FFFFFF); + + $dt2[] = (($dt3[$i] << 8) & 0xFFFFFF00) | (($dt3[$i] >> 24) & 0x000000FF); + $dt1[] = (($dt3[$i] << 16) & 0xFFFF0000) | (($dt3[$i] >> 16) & 0x0000FFFF); + $dt0[] = (($dt3[$i] << 24) & 0xFF000000) | (($dt3[$i] >> 8) & 0x00FFFFFF); + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Rijndael, itself, requires the use of a key that's between 128-bits and 256-bits long and + * whose length is a multiple of 32. If the key is less than 256-bits and the key length isn't set, we round the length + * up to the closest valid key length, padding $key with null bytes. If the key is more than 256-bits, we trim the + * excess bits. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + $this->changed = true; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, $this->block_size), $this->block_size, chr(0)); + } + + /** + * Sets the key length + * + * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setKeyLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + + $this->explicit_key_length = true; + $this->changed = true; + } + + /** + * Sets the password. + * + * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: + * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2}: + * $hash, $salt, $method + * Set $dkLen by calling setKeyLength() + * + * @param String $password + * @param optional String $method + * @access public + */ + function setPassword($password, $method = 'pbkdf2') + { + $key = ''; + + switch ($method) { + default: // 'pbkdf2' + list(, , $hash, $salt, $count) = func_get_args(); + if (!isset($hash)) { + $hash = 'sha1'; + } + // WPA and WPA2 use the SSID as the salt + if (!isset($salt)) { + $salt = 'phpseclib'; + } + // RFC2898#section-4.2 uses 1,000 iterations by default + // WPA and WPA2 use 4,096. + if (!isset($count)) { + $count = 1000; + } + + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + + $i = 1; + while (strlen($key) < $this->key_size) { // $dkLen == $this->key_size + //$dk.= $this->_pbkdf($password, $salt, $count, $i++); + $hmac = new Crypt_Hash(); + $hmac->setHash($hash); + $hmac->setKey($password); + $f = $u = $hmac->hash($salt . pack('N', $i++)); + for ($j = 2; $j <= $count; $j++) { + $u = $hmac->hash($u); + $f^= $u; + } + $key.= $f; + } + } + + $this->setKey(substr($key, 0, $this->key_size)); + } + + /** + * Sets the block length + * + * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nb = $length; + $this->block_size = $length << 2; + $this->changed = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_Rijndael::decrypt() + * @see Crypt_Rijndael::encrypt() + * @access public + * @param Integer $length + * @param String $iv + */ + function _generate_xor($length, &$iv) + { + $xor = ''; + $block_size = $this->block_size; + $num_blocks = floor(($length + ($block_size - 1)) / $block_size); + for ($i = 0; $i < $num_blocks; $i++) { + $xor.= $iv; + for ($j = 4; $j <= $block_size; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other Rjindael + * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's + * necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_Rijndael::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + $this->_setup(); + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + $block_size = $this->block_size; + $buffer = &$this->enbuffer; + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $block = $this->_encryptBlock($block ^ $xor); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_RIJNDAEL_MODE_CTR: + $xor = $this->encryptIV; + if (strlen($buffer['encrypted'])) { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $buffer['encrypted'].= $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $key = $this->_string_shift($buffer['encrypted'], $block_size); + $ciphertext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $key = $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $ciphertext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) % $block_size) { + $buffer['encrypted'] = substr($key, $start) . $buffer['encrypted']; + } + } + break; + case CRYPT_RIJNDAEL_MODE_CFB: + // cfb loosely routines inspired by openssl's: + // http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1 + if ($this->continuousBuffer) { + $iv = &$this->encryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->encryptIV; + $pos = 0; + } + $len = strlen($plaintext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + } + while ($len >= $block_size) { + $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size); + $ciphertext.= $iv; + $len-= $block_size; + $i+= $block_size; + } + if ($len) { + $iv = $this->_encryptBlock($iv); + $block = $iv ^ substr($plaintext, $i); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + break; + case CRYPT_RIJNDAEL_MODE_OFB: + $xor = $this->encryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], $block_size); + $ciphertext.= substr($plaintext, $i, $block_size) ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) % $block_size) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until + * it is. + * + * @see Crypt_Rijndael::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + $this->_setup(); + + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($this->block_size - strlen($ciphertext) % $this->block_size) % $this->block_size, chr(0)); + } + + $block_size = $this->block_size; + $buffer = &$this->debuffer; + $plaintext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $plaintext.= $this->_decryptBlock($block) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_RIJNDAEL_MODE_CTR: + $xor = $this->decryptIV; + if (strlen($buffer['ciphertext'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $buffer['ciphertext'].= $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $key = $this->_string_shift($buffer['ciphertext'], $block_size); + $plaintext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $key = $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $plaintext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % $block_size) { + $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; + } + } + break; + case CRYPT_RIJNDAEL_MODE_CFB: + if ($this->continuousBuffer) { + $iv = &$this->decryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->decryptIV; + $pos = 0; + } + $len = strlen($ciphertext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + while ($len >= $block_size) { + $iv = $this->_encryptBlock($iv); + $cb = substr($ciphertext, $i, $block_size); + $plaintext.= $iv ^ $cb; + $iv = $cb; + $len-= $block_size; + $i+= $block_size; + } + if ($len) { + $iv = $this->_encryptBlock($iv); + $plaintext.= $iv ^ substr($ciphertext, $i); + $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); + $pos = $len; + } + break; + case CRYPT_RIJNDAEL_MODE_OFB: + $xor = $this->decryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], $block_size); + $plaintext.= substr($ciphertext, $i, $block_size) ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % $block_size) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + $w = $this->w; + $t0 = $this->t0; + $t1 = $this->t1; + $t2 = $this->t2; + $t3 = $this->t3; + $Nb = $this->Nb; + $Nr = $this->Nr; + $c = $this->c; + + // addRoundKey + $i = -1; + foreach ($words as $word) { + $state[] = $word ^ $w[0][++$i]; + } + + // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - + // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding + // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. + // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. + // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], + // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. + + // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf + $temp = array(); + for ($round = 1; $round < $Nr; ++$round) { + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + + while ($i < $Nb) { + $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^ + $t1[$state[$j] >> 16 & 0x000000FF] ^ + $t2[$state[$k] >> 8 & 0x000000FF] ^ + $t3[$state[$l] & 0x000000FF] ^ + $w[$round][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + $state = $temp; + } + + // subWord + for ($i = 0; $i < $Nb; ++$i) { + $state[$i] = $this->_subWord($state[$i]); + } + + // shiftRows + addRoundKey + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + while ($i < $Nb) { + $temp[$i] = ($state[$i] & 0xFF000000) ^ + ($state[$j] & 0x00FF0000) ^ + ($state[$k] & 0x0000FF00) ^ + ($state[$l] & 0x000000FF) ^ + $w[$Nr][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + // 100% ugly switch/case code... but ~5% faster (meaning: ~half second faster de/encrypting 1MB text, tested with php5.4.9 on linux/32bit with an AMD Athlon II P360 CPU) then the commented smart code below. Don't know it's worth or not + switch ($Nb) { + case 8: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); + case 7: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); + case 6: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); + case 5: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); + default: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); + } + /* + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + */ + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + $dw = $this->dw; + $dt0 = $this->dt0; + $dt1 = $this->dt1; + $dt2 = $this->dt2; + $dt3 = $this->dt3; + $Nb = $this->Nb; + $Nr = $this->Nr; + $c = $this->c; + + // addRoundKey + $i = -1; + foreach ($words as $word) { + $state[] = $word ^ $dw[$Nr][++$i]; + } + + $temp = array(); + for ($round = $Nr - 1; $round > 0; --$round) { + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^ + $dt1[$state[$j] >> 16 & 0x000000FF] ^ + $dt2[$state[$k] >> 8 & 0x000000FF] ^ + $dt3[$state[$l] & 0x000000FF] ^ + $dw[$round][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + $state = $temp; + } + + // invShiftRows + invSubWord + addRoundKey + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $temp[$i] = $dw[0][$i] ^ + $this->_invSubWord(($state[$i] & 0xFF000000) | + ($state[$j] & 0x00FF0000) | + ($state[$k] & 0x0000FF00) | + ($state[$l] & 0x000000FF)); + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + switch ($Nb) { + case 8: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); + case 7: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); + case 6: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); + case 5: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); + default: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); + } + /* + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + */ + } + + /** + * Setup Rijndael + * + * Validates all the variables and calculates $Nr - the number of rounds that need to be performed - and $w - the key + * key schedule. + * + * @access private + */ + function _setup() + { + // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. + // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse + static $rcon = array(0, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, + 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, + 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, + 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, + 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 + ); + + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // we do >> 2, here, and not >> 5, as we do above, since strlen($this->key) tells us the number of bytes - not bits + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0)); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, chr(0)); + + // see Rijndael-ammended.pdf#page=44 + $this->Nr = max($this->Nk, $this->Nb) + 6; + + // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, + // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" + // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, + // "Table 2: Shift offsets for different block lengths" + switch ($this->Nb) { + case 4: + case 5: + case 6: + $this->c = array(0, 1, 2, 3); + break; + case 7: + $this->c = array(0, 1, 2, 4); + break; + case 8: + $this->c = array(0, 1, 3, 4); + } + + $key = $this->key; + + $w = array_values(unpack('N*words', $key)); + + $length = $this->Nb * ($this->Nr + 1); + for ($i = $this->Nk; $i < $length; $i++) { + $temp = $w[$i - 1]; + if ($i % $this->Nk == 0) { + // according to , "the size of an integer is platform-dependent". + // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, + // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' + // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. + $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord + $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; + } else if ($this->Nk > 6 && $i % $this->Nk == 4) { + $temp = $this->_subWord($temp); + } + $w[$i] = $w[$i - $this->Nk] ^ $temp; + } + + // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns + // and generate the inverse key schedule. more specifically, + // according to (section 5.3.3), + // "The key expansion for the Inverse Cipher is defined as follows: + // 1. Apply the Key Expansion. + // 2. Apply InvMixColumn to all Round Keys except the first and the last one." + // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" + $temp = array(); + for ($i = $row = $col = 0; $i < $length; $i++, $col++) { + if ($col == $this->Nb) { + if ($row == 0) { + $this->dw[0] = $this->w[0]; + } else { + // subWord + invMixColumn + invSubWord = invMixColumn + $j = 0; + while ($j < $this->Nb) { + $dw = $this->_subWord($this->w[$row][$j]); + $temp[$j] = $this->dt0[$dw >> 24 & 0x000000FF] ^ + $this->dt1[$dw >> 16 & 0x000000FF] ^ + $this->dt2[$dw >> 8 & 0x000000FF] ^ + $this->dt3[$dw & 0x000000FF]; + $j++; + } + $this->dw[$row] = $temp; + } + + $col = 0; + $row++; + } + $this->w[$row][$col] = $w[$i]; + } + + $this->dw[$row] = $this->w[$row]; + + $this->changed = false; + } + + /** + * Performs S-Box substitutions + * + * @access private + */ + function _subWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, + 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, + 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, + 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, + 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, + 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, + 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, + 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, + 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, + 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, + 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, + 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, + 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, + 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, + 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, + 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[] = $sbox0[$i] << 8; + $sbox2[] = $sbox0[$i] << 16; + $sbox3[] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word >> 8 & 0x000000FF] | + $sbox2[$word >> 16 & 0x000000FF] | + $sbox3[$word >> 24 & 0x000000FF]; + } + + + /** + * Performs inverse S-Box substitutions + * + * @access private + */ + function _invSubWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, + 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, + 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, + 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, + 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, + 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, + 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, + 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, + 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, + 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, + 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, + 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, + 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, + 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, + 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[] = $sbox0[$i] << 8; + $sbox2[] = $sbox0[$i] << 16; + $sbox3[] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word >> 8 & 0x000000FF] | + $sbox2[$word >> 16 & 0x000000FF] | + $sbox3[$word >> 24 & 0x000000FF]; + } + + /** + * Pad "packets". + * + * Rijndael works by encrypting between sixteen and thirty-two bytes at a time, provided that number is also a multiple + * of four. If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to + * pad the input so that it is of the proper length. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_Rijndael::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_Rijndael::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. + * $block_size - (strlen($text) % $block_size) bytes are added, each of which is equal to + * chr($block_size - (strlen($text) % $block_size) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_Rijndael::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if ($length % $this->block_size == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})"); + $this->padding = true; + } + } + + $pad = $this->block_size - ($length % $this->block_size); + + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string. + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_Rijndael::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > $this->block_size) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->encrypt(substr($plaintext, 16, 16)); + * + * + * echo $rijndael->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_Rijndael() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_Rijndael::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + $this->enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0); + $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/TripleDES.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/TripleDES.php new file mode 100644 index 0000000000000000000000000000000000000000..3b4c8c3622fdd4e275b24c50543cf03cd72c6ccd --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Crypt/TripleDES.php @@ -0,0 +1,1080 @@ + + * setKey('abcdefghijklmnopqrstuvwx'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_TripleDES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: TripleDES.php,v 1.13 2010/02/26 03:40:25 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_DES + */ +if (!class_exists('Crypt_DES')) { + require_once('DES.php'); +} + +/** + * Encrypt / decrypt using inner chaining + * + * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (CRYPT_DES_MODE_CBC3). + */ +define('CRYPT_DES_MODE_3CBC', -2); + +/** + * Encrypt / decrypt using outer chaining + * + * Outer chaining is used by SSH-2 and when the mode is set to CRYPT_DES_MODE_CBC. + */ +define('CRYPT_DES_MODE_CBC3', CRYPT_DES_MODE_CBC); + +/** + * Pure-PHP implementation of Triple DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_TerraDES + */ +class Crypt_TripleDES { + /** + * The Three Keys + * + * @see Crypt_TripleDES::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_TripleDES::Crypt_TripleDES() + * @var Integer + * @access private + */ + var $mode = CRYPT_DES_MODE_CBC; + + /** + * Continuous Buffer status + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_TripleDES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_TripleDES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * The Crypt_DES objects + * + * @var Array + * @access private + */ + var $des; + + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_TripleDES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_TripleDES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * Does the enmcrypt resource need to be (re)initialized? + * + * @see Crypt_TripleDES::setKey() + * @see Crypt_TripleDES::setIV() + * @var Boolean + * @access private + */ + var $enchanged = true; + + /** + * Does the demcrypt resource need to be (re)initialized? + * + * @see Crypt_TripleDES::setKey() + * @see Crypt_TripleDES::setIV() + * @var Boolean + * @access private + */ + var $dechanged = true; + + /** + * Is the mode one that is paddable? + * + * @see Crypt_TripleDES::Crypt_TripleDES() + * @var Boolean + * @access private + */ + var $paddable = false; + + /** + * Encryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_TripleDES::encrypt() + * @var Array + * @access private + */ + var $enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); + + /** + * Decryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_TripleDES::decrypt() + * @var Array + * @access private + */ + var $debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'demcrypt_init' => true); + + /** + * mcrypt resource for CFB mode + * + * @see Crypt_TripleDES::encrypt() + * @see Crypt_TripleDES::decrypt() + * @var String + * @access private + */ + var $ecb; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_TripleDES + * @access public + */ + function Crypt_TripleDES($mode = CRYPT_DES_MODE_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && in_array('tripledes', mcrypt_list_algorithms()): + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + if ( $mode == CRYPT_DES_MODE_3CBC ) { + $this->mode = CRYPT_DES_MODE_3CBC; + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC) + ); + $this->paddable = true; + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + return; + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->paddable = true; + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_DES_MODE_CTR: + $this->mode = 'ctr'; + break; + case CRYPT_DES_MODE_CFB: + $this->mode = 'ncfb'; + $this->ecb = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_ECB, ''); + break; + case CRYPT_DES_MODE_OFB: + $this->mode = MCRYPT_MODE_NOFB; + break; + case CRYPT_DES_MODE_CBC: + default: + $this->paddable = true; + $this->mode = MCRYPT_MODE_CBC; + } + $this->enmcrypt = mcrypt_module_open(MCRYPT_3DES, '', $this->mode, ''); + $this->demcrypt = mcrypt_module_open(MCRYPT_3DES, '', $this->mode, ''); + + break; + default: + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB) + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CBC: + $this->paddable = true; + $this->mode = $mode; + break; + case CRYPT_DES_MODE_CTR: + case CRYPT_DES_MODE_CFB: + case CRYPT_DES_MODE_OFB: + $this->mode = $mode; + break; + default: + $this->paddable = true; + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or + * 192-bit (eg. strlen($key) == 24) keys. This function pads and truncates $key as appropriate. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $length = strlen($key); + if ($length > 8) { + $key = str_pad($key, 24, chr(0)); + // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this: + // http://php.net/function.mcrypt-encrypt#47973 + //$key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24); + } else { + $key = str_pad($key, 8, chr(0)); + } + $this->key = $key; + switch (true) { + case CRYPT_DES_MODE == CRYPT_DES_MODE_INTERNAL: + case $this->mode == CRYPT_DES_MODE_3CBC: + $this->des[0]->setKey(substr($key, 0, 8)); + $this->des[1]->setKey(substr($key, 8, 8)); + $this->des[2]->setKey(substr($key, 16, 8)); + } + $this->enchanged = $this->dechanged = true; + } + + /** + * Sets the password. + * + * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: + * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2}: + * $hash, $salt, $method + * + * @param String $password + * @param optional String $method + * @access public + */ + function setPassword($password, $method = 'pbkdf2') + { + $key = ''; + + switch ($method) { + default: // 'pbkdf2' + list(, , $hash, $salt, $count) = func_get_args(); + if (!isset($hash)) { + $hash = 'sha1'; + } + // WPA and WPA2 use the SSID as the salt + if (!isset($salt)) { + $salt = 'phpseclib'; + } + // RFC2898#section-4.2 uses 1,000 iterations by default + // WPA and WPA2 use 4,096. + if (!isset($count)) { + $count = 1000; + } + + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + + $i = 1; + while (strlen($key) < 24) { // $dkLen == 24 + $hmac = new Crypt_Hash(); + $hmac->setHash($hash); + $hmac->setKey($password); + $f = $u = $hmac->hash($salt . pack('N', $i++)); + for ($j = 2; $j <= $count; $j++) { + $u = $hmac->hash($u); + $f^= $u; + } + $key.= $f; + } + } + + $this->setKey($key); + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->setIV($iv); + $this->des[1]->setIV($iv); + $this->des[2]->setIV($iv); + } + $this->enchanged = $this->dechanged = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_TripleDES::decrypt() + * @see Crypt_TripleDES::encrypt() + * @access private + * @param String $iv + */ + function _generate_xor(&$iv) + { + $xor = $iv; + for ($j = 4; $j <= 8; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + // if the key is smaller then 8, do what we'd normally do + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $ciphertext = $this->des[2]->encrypt($this->des[1]->decrypt($this->des[0]->encrypt($plaintext))); + + return $ciphertext; + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->enchanged) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + if ($this->mode == 'ncfb') { + mcrypt_generic_init($this->ecb, $this->key, "\0\0\0\0\0\0\0\0"); + } + $this->enchanged = false; + } + + if ($this->mode != 'ncfb' || !$this->continuousBuffer) { + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + } else { + $iv = &$this->encryptIV; + $pos = &$this->enbuffer['pos']; + $len = strlen($plaintext); + $ciphertext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + $this->enbuffer['enmcrypt_init'] = true; + } + if ($len >= 8) { + if ($this->enbuffer['enmcrypt_init'] === false || $len > 950) { + if ($this->enbuffer['enmcrypt_init'] === true) { + mcrypt_generic_init($this->enmcrypt, $this->key, $iv); + $this->enbuffer['enmcrypt_init'] = false; + } + $ciphertext.= mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % 8)); + $iv = substr($ciphertext, -8); + $i = strlen($ciphertext); + $len%= 8; + } else { + while ($len >= 8) { + $iv = mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, 8); + $ciphertext.= $iv; + $len-= 8; + $i+= 8; + } + } + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $block = $iv ^ substr($plaintext, $i); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + return $ciphertext; + } + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + } + + return $ciphertext; + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + + return $this->des[0]->encrypt($plaintext); + } + + $des = $this->des; + + $buffer = &$this->enbuffer; + $continuousBuffer = $this->continuousBuffer; + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + // all of these _processBlock calls could, in theory, be put in a function - say Crypt_TripleDES::_ede_encrypt() or something. + // only problem with that: it would slow encryption and decryption down. $this->des would have to be called every time that + // function is called, instead of once for the whole string of text that's being encrypted, which would, in turn, make + // encryption and decryption take more time, per this: + // + // http://blog.libssh2.org/index.php?/archives/21-Compiled-Variables.html + $block = $des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $ciphertext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8) ^ $xor; + $block = $des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->encryptIV; + if (strlen($buffer['encrypted'])) { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $key = $this->_generate_xor($xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $buffer['encrypted'].= $key; + $key = $this->_string_shift($buffer['encrypted'], 8); + $ciphertext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $key = $this->_generate_xor($xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $ciphertext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) & 7) { + $buffer['encrypted'] = substr($key, $start) . $buffer['encrypted']; + } + } + break; + case CRYPT_DES_MODE_CFB: + if (strlen($buffer['xor'])) { + $ciphertext = $plaintext ^ $buffer['xor']; + $iv = $buffer['encrypted'] . $ciphertext; + $start = strlen($ciphertext); + $buffer['encrypted'].= $ciphertext; + $buffer['xor'] = substr($buffer['xor'], strlen($ciphertext)); + } else { + $ciphertext = ''; + $iv = $this->encryptIV; + $start = 0; + } + + for ($i = $start; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $iv = $des[0]->_processBlock($iv, CRYPT_DES_ENCRYPT); + $iv = $des[1]->_processBlock($iv, CRYPT_DES_DECRYPT); + $xor= $des[2]->_processBlock($iv, CRYPT_DES_ENCRYPT); + + $iv = $block ^ $xor; + if ($continuousBuffer && strlen($iv) != 8) { + $buffer = array( + 'encrypted' => $iv, + 'xor' => substr($xor, strlen($iv)) + ); + } + $ciphertext.= $iv; + } + + if ($this->continuousBuffer) { + $this->encryptIV = $iv; + } + break; + case CRYPT_DES_MODE_OFB: + $xor = $this->encryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $xor = $des[0]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], 8); + $ciphertext.= substr($plaintext, $i, 8) ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $xor = $des[0]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $ciphertext.= substr($plaintext, $i, 8) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) & 7) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $plaintext = $this->des[0]->decrypt($this->des[1]->encrypt($this->des[2]->decrypt($ciphertext))); + + return $this->_unpad($plaintext); + } + + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->dechanged) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + if ($this->mode == 'ncfb') { + mcrypt_generic_init($this->ecb, $this->key, "\0\0\0\0\0\0\0\0"); + } + $this->dechanged = false; + } + + if ($this->mode != 'ncfb' || !$this->continuousBuffer) { + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + } else { + $iv = &$this->decryptIV; + $pos = &$this->debuffer['pos']; + $len = strlen($ciphertext); + $plaintext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = 8 - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + if ($len >= 8) { + $cb = substr($ciphertext, $i, $len - $len % 8); + $plaintext.= mcrypt_generic($this->ecb, $iv . $cb) ^ $cb; + $iv = substr($cb, -8); + $len%= 8; + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $cb = substr($ciphertext, -$len); + $plaintext.= $iv ^ $cb; + $iv = substr_replace($iv, $cb, 0, $len); + $pos = $len; + } + return $plaintext; + } + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + $plaintext = $this->des[0]->decrypt($ciphertext); + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + $des = $this->des; + + $buffer = &$this->debuffer; + $continuousBuffer = $this->continuousBuffer; + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $block = $des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $orig = $block = substr($ciphertext, $i, 8); + $block = $des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block ^ $xor; + $xor = $orig; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->decryptIV; + if (strlen($buffer['ciphertext'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $key = $this->_generate_xor($xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $buffer['ciphertext'].= $key; + $key = $this->_string_shift($buffer['ciphertext'], 8); + $plaintext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $key = $this->_generate_xor($xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $plaintext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($plaintext) & 7) { + $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; + } + } + break; + case CRYPT_DES_MODE_CFB: + if (strlen($buffer['ciphertext'])) { + $plaintext = $ciphertext ^ substr($this->decryptIV, strlen($buffer['ciphertext'])); + $buffer['ciphertext'].= substr($ciphertext, 0, strlen($plaintext)); + if (strlen($buffer['ciphertext']) != 8) { + $block = $this->decryptIV; + } else { + $block = $buffer['ciphertext']; + $xor = $des[0]->_processBlock($buffer['ciphertext'], CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $buffer['ciphertext'] = ''; + } + $start = strlen($plaintext); + } else { + $plaintext = ''; + $xor = $des[0]->_processBlock($this->decryptIV, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $start = 0; + } + + for ($i = $start; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $plaintext.= $block ^ $xor; + if ($continuousBuffer && strlen($block) != 8) { + $buffer['ciphertext'].= $block; + $block = $xor; + } else if (strlen($block) == 8) { + $xor = $des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + } + } + if ($this->continuousBuffer) { + $this->decryptIV = $block; + } + break; + case CRYPT_DES_MODE_OFB: + $xor = $this->decryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $xor = $des[0]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $buffer['xor'].= $xor; + $key = $this->_string_shift($buffer['xor'], 8); + $plaintext.= substr($ciphertext, $i, 8) ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $xor = $des[0]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $xor = $des[1]->_processBlock($xor, CRYPT_DES_DECRYPT); + $xor = $des[2]->_processBlock($xor, CRYPT_DES_ENCRYPT); + $plaintext.= substr($ciphertext, $i, 8) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) & 7) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_TripleDES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->enableContinuousBuffer(); + $this->des[1]->enableContinuousBuffer(); + $this->des[2]->enableContinuousBuffer(); + } + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + $this->enchanged = true; + $this->dechanged = true; + $this->enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); + $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'demcrypt_init' => true); + + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->disableContinuousBuffer(); + $this->des[1]->disableContinuousBuffer(); + $this->des[2]->disableContinuousBuffer(); + } + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_TripleDES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_TripleDES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_TripleDES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_TripleDES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/File/ANSI.php b/apps/files_external/3rdparty/phpseclib/phpseclib/File/ANSI.php new file mode 100644 index 0000000000000000000000000000000000000000..29ad949e104061604c75a3c1ae91b134f12c4f56 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/File/ANSI.php @@ -0,0 +1,540 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id$ + * @link htp://phpseclib.sourceforge.net + */ + +/** + * Pure-PHP ANSI Decoder + * + * @author Jim Wigginton + * @version 0.3.0 + * @access public + * @package File_ANSI + */ +class File_ANSI { + /** + * Max Width + * + * @var Integer + * @access private + */ + var $max_x; + + /** + * Max Height + * + * @var Integer + * @access private + */ + var $max_y; + + /** + * Max History + * + * @var Integer + * @access private + */ + var $max_history; + + /** + * History + * + * @var Array + * @access private + */ + var $history; + + /** + * History Attributes + * + * @var Array + * @access private + */ + var $history_attrs; + + /** + * Current Column + * + * @var Integer + * @access private + */ + var $x; + + /** + * Current Row + * + * @var Integer + * @access private + */ + var $y; + + /** + * Old Column + * + * @var Integer + * @access private + */ + var $old_x; + + /** + * Old Row + * + * @var Integer + * @access private + */ + var $old_y; + + /** + * An empty attribute row + * + * @var Array + * @access private + */ + var $attr_row; + + /** + * The current screen text + * + * @var Array + * @access private + */ + var $screen; + + /** + * The current screen attributes + * + * @var Array + * @access private + */ + var $attrs; + + /** + * The current foreground color + * + * @var String + * @access private + */ + var $foreground; + + /** + * The current background color + * + * @var String + * @access private + */ + var $background; + + /** + * Bold flag + * + * @var Boolean + * @access private + */ + var $bold; + + /** + * Underline flag + * + * @var Boolean + * @access private + */ + var $underline; + + /** + * Blink flag + * + * @var Boolean + * @access private + */ + var $blink; + + /** + * Reverse flag + * + * @var Boolean + * @access private + */ + var $reverse; + + /** + * Color flag + * + * @var Boolean + * @access private + */ + var $color; + + /** + * Current ANSI code + * + * @var String + * @access private + */ + var $ansi; + + /** + * Default Constructor. + * + * @return File_ANSI + * @access public + */ + function File_ANSI() + { + $this->setHistory(200); + $this->setDimensions(80, 24); + } + + /** + * Set terminal width and height + * + * Resets the screen as well + * + * @param Integer $x + * @param Integer $y + * @access public + */ + function setDimensions($x, $y) + { + $this->max_x = $x - 1; + $this->max_y = $y - 1; + $this->x = $this->y = 0; + $this->history = $this->history_attrs = array(); + $this->attr_row = array_fill(0, $this->max_x + 1, ''); + $this->screen = array_fill(0, $this->max_y + 1, ''); + $this->attrs = array_fill(0, $this->max_y + 1, $this->attr_row); + $this->foreground = 'white'; + $this->background = 'black'; + $this->bold = false; + $this->underline = false; + $this->blink = false; + $this->reverse = false; + $this->color = false; + + $this->ansi = ''; + } + + /** + * Set the number of lines that should be logged past the terminal height + * + * @param Integer $x + * @param Integer $y + * @access public + */ + function setHistory($history) + { + $this->max_history = $history; + } + + /** + * Load a string + * + * @param String $source + * @access public + */ + function loadString($source) + { + $this->setDimensions($this->max_x + 1, $this->max_y + 1); + $this->appendString($source); + } + + /** + * Appdend a string + * + * @param String $source + * @access public + */ + function appendString($source) + { + for ($i = 0; $i < strlen($source); $i++) { + if (strlen($this->ansi)) { + $this->ansi.= $source[$i]; + $chr = ord($source[$i]); + // http://en.wikipedia.org/wiki/ANSI_escape_code#Sequence_elements + // single character CSI's not currently supported + switch (true) { + case $this->ansi == "\x1B=": + $this->ansi = ''; + continue 2; + case strlen($this->ansi) == 2 && $chr >= 64 && $chr <= 95 && $chr != ord('['): + case strlen($this->ansi) > 2 && $chr >= 64 && $chr <= 126: + break; + default: + continue 2; + } + // http://ascii-table.com/ansi-escape-sequences-vt-100.php + switch ($this->ansi) { + case "\x1B[H": + $this->old_x = $this->x; + $this->old_y = $this->y; + $this->x = $this->y = 0; + break; + case "\x1B[J": + $this->history = array_merge($this->history, array_slice(array_splice($this->screen, $this->y + 1), 0, $this->old_y)); + $this->screen = array_merge($this->screen, array_fill($this->y, $this->max_y, '')); + + $this->history_attrs = array_merge($this->history_attrs, array_slice(array_splice($this->attrs, $this->y + 1), 0, $this->old_y)); + $this->attrs = array_merge($this->attrs, array_fill($this->y, $this->max_y, $this->attr_row)); + + if (count($this->history) == $this->max_history) { + array_shift($this->history); + array_shift($this->history_attrs); + } + case "\x1B[K": + $this->screen[$this->y] = substr($this->screen[$this->y], 0, $this->x); + + array_splice($this->attrs[$this->y], $this->x + 1); + break; + case "\x1B[?1h": // set cursor key to application + break; + default: + switch (true) { + case preg_match('#\x1B\[(\d+);(\d+)H#', $this->ansi, $match): + $this->old_x = $this->x; + $this->old_y = $this->y; + $this->x = $match[2] - 1; + $this->y = $match[1] - 1; + break; + case preg_match('#\x1B\[(\d+)C#', $this->ansi, $match): + $this->old_x = $this->x; + $x = $match[1] - 1; + break; + case preg_match('#\x1B\[(\d+);(\d+)r#', $this->ansi, $match): // Set top and bottom lines of a window + break; + case preg_match('#\x1B\[(\d*(?:;\d*)*)m#', $this->ansi, $match): + $mods = explode(';', $match[1]); + foreach ($mods as $mod) { + switch ($mod) { + case 0: + $this->attrs[$this->y][$this->x] = ''; + + if ($this->bold) $this->attrs[$this->y][$this->x].= ''; + if ($this->underline) $this->attrs[$this->y][$this->x].= ''; + if ($this->blink) $this->attrs[$this->y][$this->x].= ''; + if ($this->color) $this->attrs[$this->y][$this->x].= ''; + + if ($this->reverse) { + $temp = $this->background; + $this->background = $this->foreground; + $this->foreground = $temp; + } + + $this->bold = $this->underline = $this->blink = $this->color = $this->reverse = false; + break; + case 1: + if (!$this->bold) { + $this->attrs[$this->y][$this->x] = ''; + $this->bold = true; + } + break; + case 4: + if (!$this->underline) { + $this->attrs[$this->y][$this->x] = ''; + $this->underline = true; + } + break; + case 5: + if (!$this->blink) { + $this->attrs[$this->y][$this->x] = ''; + $this->blink = true; + } + break; + case 7: + $this->reverse = !$this->reverse; + $temp = $this->background; + $this->background = $this->foreground; + $this->foreground = $temp; + $this->attrs[$this->y][$this->x] = ''; + if ($this->color) { + $this->attrs[$this->y][$this->x] = '' . $this->attrs[$this->y][$this->x]; + } + $this->color = true; + break; + default: + //$front = $this->reverse ? &$this->background : &$this->foreground; + $front = &$this->{ $this->reverse ? 'background' : 'foreground' }; + //$back = $this->reverse ? &$this->foreground : &$this->background; + $back = &$this->{ $this->reverse ? 'foreground' : 'background' }; + switch ($mod) { + case 30: $front = 'black'; break; + case 31: $front = 'red'; break; + case 32: $front = 'green'; break; + case 33: $front = 'yellow'; break; + case 34: $front = 'blue'; break; + case 35: $front = 'magenta'; break; + case 36: $front = 'cyan'; break; + case 37: $front = 'white'; break; + + case 40: $back = 'black'; break; + case 41: $back = 'red'; break; + case 42: $back = 'green'; break; + case 43: $back = 'yellow'; break; + case 44: $back = 'blue'; break; + case 45: $back = 'magenta'; break; + case 46: $back = 'cyan'; break; + case 47: $back = 'white'; break; + + default: + user_error('Unsupported attribute: ' . $mod); + $this->ansi = ''; + break 2; + } + + unset($temp); + $this->attrs[$this->y][$this->x] = ''; + if ($this->color) { + $this->attrs[$this->y][$this->x] = '' . $this->attrs[$this->y][$this->x]; + } + $this->color = true; + } + } + break; + default: + echo "{$this->ansi} unsupported\r\n"; + } + } + $this->ansi = ''; + continue; + } + + switch ($source[$i]) { + case "\r": + $this->x = 0; + break; + case "\n": + //if ($this->y < $this->max_y) { + // $this->y++; + //} + + while ($this->y >= $this->max_y) { + $this->history = array_merge($this->history, array(array_shift($this->screen))); + $this->screen[] = ''; + + $this->history_attrs = array_merge($this->history_attrs, array(array_shift($this->attrs))); + $this->attrs[] = $this->attr_row; + + if (count($this->history) >= $this->max_history) { + array_shift($this->history); + array_shift($this->history_attrs); + } + + $this->y--; + } + $this->y++; + break; + case "\x0F": // shift + break; + case "\x1B": // start ANSI escape code + $this->ansi.= "\x1B"; + break; + default: + $this->screen[$this->y] = substr_replace( + $this->screen[$this->y], + $source[$i], + $this->x, + 1 + ); + + if ($this->x > $this->max_x) { + $this->x = 0; + $this->y++; + } else { + $this->x++; + } + } + } + } + + /** + * Returns the current screen without preformating + * + * @access private + * @return String + */ + function _getScreen() + { + $output = ''; + for ($i = 0; $i <= $this->max_y; $i++) { + for ($j = 0; $j <= $this->max_x + 1; $j++) { + if (isset($this->attrs[$i][$j])) { + $output.= $this->attrs[$i][$j]; + } + if (isset($this->screen[$i][$j])) { + $output.= htmlspecialchars($this->screen[$i][$j]); + } + } + $output.= "\r\n"; + } + return rtrim($output); + } + + /** + * Returns the current screen + * + * @access public + * @return String + */ + function getScreen() + { + return '
' . $this->_getScreen() . '
'; + } + + /** + * Returns the current screen and the x previous lines + * + * @access public + * @return String + */ + function getHistory() + { + $scrollback = ''; + for ($i = 0; $i < count($this->history); $i++) { + for ($j = 0; $j <= $this->max_x + 1; $j++) { + if (isset($this->history_attrs[$i][$j])) { + $scrollback.= $this->history_attrs[$i][$j]; + } + if (isset($this->history[$i][$j])) { + $scrollback.= htmlspecialchars($this->history[$i][$j]); + } + } + $scrollback.= "\r\n"; + } + $scrollback.= $this->_getScreen(); + + return '
' . $scrollback . '
'; + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/File/ASN1.php b/apps/files_external/3rdparty/phpseclib/phpseclib/File/ASN1.php new file mode 100644 index 0000000000000000000000000000000000000000..766c6e7ebf448f14abcb4c471191fd7018acbb58 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/File/ASN1.php @@ -0,0 +1,1277 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id$ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + */ +if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); +} + +/**#@+ + * Tag Classes + * + * @access private + * @link http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=12 + */ +define('FILE_ASN1_CLASS_UNIVERSAL', 0); +define('FILE_ASN1_CLASS_APPLICATION', 1); +define('FILE_ASN1_CLASS_CONTEXT_SPECIFIC', 2); +define('FILE_ASN1_CLASS_PRIVATE', 3); +/**#@-*/ + +/**#@+ + * Tag Classes + * + * @access private + * @link http://www.obj-sys.com/asn1tutorial/node124.html + */ +define('FILE_ASN1_TYPE_BOOLEAN', 1); +define('FILE_ASN1_TYPE_INTEGER', 2); +define('FILE_ASN1_TYPE_BIT_STRING', 3); +define('FILE_ASN1_TYPE_OCTET_STRING', 4); +define('FILE_ASN1_TYPE_NULL', 5); +define('FILE_ASN1_TYPE_OBJECT_IDENTIFIER',6); +//define('FILE_ASN1_TYPE_OBJECT_DESCRIPTOR',7); +//define('FILE_ASN1_TYPE_INSTANCE_OF', 8); // EXTERNAL +define('FILE_ASN1_TYPE_REAL', 9); +define('FILE_ASN1_TYPE_ENUMERATED', 10); +//define('FILE_ASN1_TYPE_EMBEDDED', 11); +define('FILE_ASN1_TYPE_UTF8_STRING', 12); +//define('FILE_ASN1_TYPE_RELATIVE_OID', 13); +define('FILE_ASN1_TYPE_SEQUENCE', 16); // SEQUENCE OF +define('FILE_ASN1_TYPE_SET', 17); // SET OF +/**#@-*/ +/**#@+ + * More Tag Classes + * + * @access private + * @link http://www.obj-sys.com/asn1tutorial/node10.html + */ +define('FILE_ASN1_TYPE_NUMERIC_STRING', 18); +define('FILE_ASN1_TYPE_PRINTABLE_STRING',19); +define('FILE_ASN1_TYPE_TELETEX_STRING', 20); // T61String +define('FILE_ASN1_TYPE_VIDEOTEX_STRING', 21); +define('FILE_ASN1_TYPE_IA5_STRING', 22); +define('FILE_ASN1_TYPE_UTC_TIME', 23); +define('FILE_ASN1_TYPE_GENERALIZED_TIME',24); +define('FILE_ASN1_TYPE_GRAPHIC_STRING', 25); +define('FILE_ASN1_TYPE_VISIBLE_STRING', 26); // ISO646String +define('FILE_ASN1_TYPE_GENERAL_STRING', 27); +define('FILE_ASN1_TYPE_UNIVERSAL_STRING',28); +//define('FILE_ASN1_TYPE_CHARACTER_STRING',29); +define('FILE_ASN1_TYPE_BMP_STRING', 30); +/**#@-*/ + +/**#@+ + * Tag Aliases + * + * These tags are kinda place holders for other tags. + * + * @access private + */ +define('FILE_ASN1_TYPE_CHOICE', -1); +define('FILE_ASN1_TYPE_ANY', -2); +/**#@-*/ + +/** + * ASN.1 Element + * + * Bypass normal encoding rules in File_ASN1::encodeDER() + * + * @author Jim Wigginton + * @version 0.3.0 + * @access public + * @package File_ASN1 + */ +class File_ASN1_Element { + /** + * Raw element value + * + * @var String + * @access private + */ + var $element; + + /** + * Constructor + * + * @param String $encoded + * @return File_ASN1_Element + * @access public + */ + function File_ASN1_Element($encoded) + { + $this->element = $encoded; + } +} + +/** + * Pure-PHP ASN.1 Parser + * + * @author Jim Wigginton + * @version 0.3.0 + * @access public + * @package File_ASN1 + */ +class File_ASN1 { + /** + * ASN.1 object identifier + * + * @var Array + * @access private + * @link http://en.wikipedia.org/wiki/Object_identifier + */ + var $oids = array(); + + /** + * Default date format + * + * @var String + * @access private + * @link http://php.net/class.datetime + */ + var $format = 'D, d M y H:i:s O'; + + /** + * Default date format + * + * @var Array + * @access private + * @see File_ASN1::setTimeFormat() + * @see File_ASN1::asn1map() + * @link http://php.net/class.datetime + */ + var $encoded; + + /** + * Filters + * + * If the mapping type is FILE_ASN1_TYPE_ANY what do we actually encode it as? + * + * @var Array + * @access private + * @see File_ASN1::_encode_der() + */ + var $filters; + + /** + * Type mapping table for the ANY type. + * + * Structured or unknown types are mapped to a FILE_ASN1_Element. + * Unambiguous types get the direct mapping (int/real/bool). + * Others are mapped as a choice, with an extra indexing level. + * + * @var Array + * @access public + */ + var $ANYmap = array( + FILE_ASN1_TYPE_BOOLEAN => true, + FILE_ASN1_TYPE_INTEGER => true, + FILE_ASN1_TYPE_BIT_STRING => 'bitString', + FILE_ASN1_TYPE_OCTET_STRING => 'octetString', + FILE_ASN1_TYPE_NULL => 'null', + FILE_ASN1_TYPE_OBJECT_IDENTIFIER => 'objectIdentifier', + FILE_ASN1_TYPE_REAL => true, + FILE_ASN1_TYPE_ENUMERATED => 'enumerated', + FILE_ASN1_TYPE_UTF8_STRING => 'utf8String', + FILE_ASN1_TYPE_NUMERIC_STRING => 'numericString', + FILE_ASN1_TYPE_PRINTABLE_STRING => 'printableString', + FILE_ASN1_TYPE_TELETEX_STRING => 'teletexString', + FILE_ASN1_TYPE_VIDEOTEX_STRING => 'videotexString', + FILE_ASN1_TYPE_IA5_STRING => 'ia5String', + FILE_ASN1_TYPE_UTC_TIME => 'utcTime', + FILE_ASN1_TYPE_GENERALIZED_TIME => 'generalTime', + FILE_ASN1_TYPE_GRAPHIC_STRING => 'graphicString', + FILE_ASN1_TYPE_VISIBLE_STRING => 'visibleString', + FILE_ASN1_TYPE_GENERAL_STRING => 'generalString', + FILE_ASN1_TYPE_UNIVERSAL_STRING => 'universalString', + //FILE_ASN1_TYPE_CHARACTER_STRING => 'characterString', + FILE_ASN1_TYPE_BMP_STRING => 'bmpString' + ); + + /** + * String type to character size mapping table. + * + * Non-convertable types are absent from this table. + * size == 0 indicates variable length encoding. + * + * @var Array + * @access public + */ + var $stringTypeSize = array( + FILE_ASN1_TYPE_UTF8_STRING => 0, + FILE_ASN1_TYPE_BMP_STRING => 2, + FILE_ASN1_TYPE_UNIVERSAL_STRING => 4, + FILE_ASN1_TYPE_PRINTABLE_STRING => 1, + FILE_ASN1_TYPE_TELETEX_STRING => 1, + FILE_ASN1_TYPE_IA5_STRING => 1, + FILE_ASN1_TYPE_VISIBLE_STRING => 1, + ); + + /** + * Parse BER-encoding + * + * Serves a similar purpose to openssl's asn1parse + * + * @param String $encoded + * @return Array + * @access public + */ + function decodeBER($encoded) + { + if (is_object($encoded) && strtolower(get_class($encoded)) == 'file_asn1_element') { + $encoded = $encoded->element; + } + + $this->encoded = $encoded; + return $this->_decode_ber($encoded); + } + + /** + * Parse BER-encoding (Helper function) + * + * Sometimes we want to get the BER encoding of a particular tag. $start lets us do that without having to reencode. + * $encoded is passed by reference for the recursive calls done for FILE_ASN1_TYPE_BIT_STRING and + * FILE_ASN1_TYPE_OCTET_STRING. In those cases, the indefinite length is used. + * + * @param String $encoded + * @param Integer $start + * @return Array + * @access private + */ + function _decode_ber(&$encoded, $start = 0) + { + $decoded = array(); + + while ( strlen($encoded) ) { + $current = array('start' => $start); + + $type = ord($this->_string_shift($encoded)); + $start++; + + $constructed = ($type >> 5) & 1; + + $tag = $type & 0x1F; + if ($tag == 0x1F) { + $tag = 0; + // process septets (since the eighth bit is ignored, it's not an octet) + do { + $loop = ord($encoded[0]) >> 7; + $tag <<= 7; + $tag |= ord($this->_string_shift($encoded)) & 0x7F; + $start++; + } while ( $loop ); + } + + // Length, as discussed in 8.1.3 of X.690-0207.pdf#page=13 + $length = ord($this->_string_shift($encoded)); + $start++; + if ( $length == 0x80 ) { // indefinite length + // "[A sender shall] use the indefinite form (see 8.1.3.6) if the encoding is constructed and is not all + // immediately available." -- 8.1.3.2.c + //if ( !$constructed ) { + // return false; + //} + $length = strlen($encoded); + } elseif ( $length & 0x80 ) { // definite length, long form + // technically, the long form of the length can be represented by up to 126 octets (bytes), but we'll only + // support it up to four. + $length&= 0x7F; + $temp = $this->_string_shift($encoded, $length); + $start+= $length; + extract(unpack('Nlength', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4))); + } + + // End-of-content, see 8.1.1.3, 8.1.3.2, 8.1.3.6, 8.1.5, and (for an example) 8.6.4.2 + if (!$type && !$length) { + return $decoded; + } + $content = $this->_string_shift($encoded, $length); + + /* Class is UNIVERSAL, APPLICATION, PRIVATE, or CONTEXT-SPECIFIC. The UNIVERSAL class is restricted to the ASN.1 + built-in types. It defines an application-independent data type that must be distinguishable from all other + data types. The other three classes are user defined. The APPLICATION class distinguishes data types that + have a wide, scattered use within a particular presentation context. PRIVATE distinguishes data types within + a particular organization or country. CONTEXT-SPECIFIC distinguishes members of a sequence or set, the + alternatives of a CHOICE, or universally tagged set members. Only the class number appears in braces for this + data type; the term CONTEXT-SPECIFIC does not appear. + + -- http://www.obj-sys.com/asn1tutorial/node12.html */ + $class = ($type >> 6) & 3; + switch ($class) { + case FILE_ASN1_CLASS_APPLICATION: + case FILE_ASN1_CLASS_PRIVATE: + case FILE_ASN1_CLASS_CONTEXT_SPECIFIC: + $decoded[] = array( + 'type' => $class, + 'constant' => $tag, + 'content' => $constructed ? $this->_decode_ber($content, $start) : $content, + 'length' => $length + $start - $current['start'] + ) + $current; + continue 2; + } + + $current+= array('type' => $tag); + + // decode UNIVERSAL tags + switch ($tag) { + case FILE_ASN1_TYPE_BOOLEAN: + // "The contents octets shall consist of a single octet." -- 8.2.1 + //if (strlen($content) != 1) { + // return false; + //} + $current['content'] = (bool) ord($content[0]); + break; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + $current['content'] = new Math_BigInteger($content, -256); + break; + case FILE_ASN1_TYPE_REAL: // not currently supported + return false; + case FILE_ASN1_TYPE_BIT_STRING: + // The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit, + // the number of unused bits in the final subsequent octet. The number shall be in the range zero to + // seven. + if (!$constructed) { + $current['content'] = $content; + } else { + $temp = $this->_decode_ber($content, $start); + $length-= strlen($content); + $last = count($temp) - 1; + for ($i = 0; $i < $last; $i++) { + // all subtags should be bit strings + //if ($temp[$i]['type'] != FILE_ASN1_TYPE_BIT_STRING) { + // return false; + //} + $current['content'].= substr($temp[$i]['content'], 1); + } + // all subtags should be bit strings + //if ($temp[$last]['type'] != FILE_ASN1_TYPE_BIT_STRING) { + // return false; + //} + $current['content'] = $temp[$last]['content'][0] . $current['content'] . substr($temp[$i]['content'], 1); + } + break; + case FILE_ASN1_TYPE_OCTET_STRING: + if (!$constructed) { + $current['content'] = $content; + } else { + $temp = $this->_decode_ber($content, $start); + $length-= strlen($content); + for ($i = 0, $size = count($temp); $i < $size; $i++) { + // all subtags should be octet strings + //if ($temp[$i]['type'] != FILE_ASN1_TYPE_OCTET_STRING) { + // return false; + //} + $current['content'].= $temp[$i]['content']; + } + // $length = + } + break; + case FILE_ASN1_TYPE_NULL: + // "The contents octets shall not contain any octets." -- 8.8.2 + //if (strlen($content)) { + // return false; + //} + break; + case FILE_ASN1_TYPE_SEQUENCE: + case FILE_ASN1_TYPE_SET: + $current['content'] = $this->_decode_ber($content, $start); + break; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + $temp = ord($this->_string_shift($content)); + $current['content'] = sprintf('%d.%d', floor($temp / 40), $temp % 40); + $valuen = 0; + // process septets + while (strlen($content)) { + $temp = ord($this->_string_shift($content)); + $valuen <<= 7; + $valuen |= $temp & 0x7F; + if (~$temp & 0x80) { + $current['content'].= ".$valuen"; + $valuen = 0; + } + } + // the eighth bit of the last byte should not be 1 + //if ($temp >> 7) { + // return false; + //} + break; + /* Each character string type shall be encoded as if it had been declared: + [UNIVERSAL x] IMPLICIT OCTET STRING + + -- X.690-0207.pdf#page=23 ( 8.21.3) + + Per that, we're not going to do any validation. If there are any illegal characters in the string, + we don't really care */ + case FILE_ASN1_TYPE_NUMERIC_STRING: + // 0,1,2,3,4,5,6,7,8,9, and space + case FILE_ASN1_TYPE_PRINTABLE_STRING: + // Upper and lower case letters, digits, space, apostrophe, left/right parenthesis, plus sign, comma, + // hyphen, full stop, solidus, colon, equal sign, question mark + case FILE_ASN1_TYPE_TELETEX_STRING: + // The Teletex character set in CCITT's T61, space, and delete + // see http://en.wikipedia.org/wiki/Teletex#Character_sets + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + // The Videotex character set in CCITT's T.100 and T.101, space, and delete + case FILE_ASN1_TYPE_VISIBLE_STRING: + // Printing character sets of international ASCII, and space + case FILE_ASN1_TYPE_IA5_STRING: + // International Alphabet 5 (International ASCII) + case FILE_ASN1_TYPE_GRAPHIC_STRING: + // All registered G sets, and space + case FILE_ASN1_TYPE_GENERAL_STRING: + // All registered C and G sets, space and delete + case FILE_ASN1_TYPE_UTF8_STRING: + // ???? + case FILE_ASN1_TYPE_BMP_STRING: + $current['content'] = $content; + break; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + $current['content'] = $this->_decodeTime($content, $tag); + default: + + } + + $start+= $length; + $decoded[] = $current + array('length' => $start - $current['start']); + } + + return $decoded; + } + + /** + * ASN.1 Decode + * + * Provides an ASN.1 semantic mapping ($mapping) from a parsed BER-encoding to a human readable format. + * + * @param Array $decoded + * @param Array $mapping + * @return Array + * @access public + */ + function asn1map($decoded, $mapping) + { + if (isset($mapping['explicit'])) { + $decoded = $decoded['content'][0]; + } + + switch (true) { + case $mapping['type'] == FILE_ASN1_TYPE_ANY: + $intype = $decoded['type']; + if (isset($decoded['constant']) || !isset($this->ANYmap[$intype]) || ($this->encoded[$decoded['start']] & 0x20)) { + return new File_ASN1_Element(substr($this->encoded, $decoded['start'], $decoded['length'])); + } + $inmap = $this->ANYmap[$intype]; + if (is_string($inmap)) { + return array($inmap => $this->asn1map($decoded, array('type' => $intype) + $mapping)); + } + break; + case $mapping['type'] == FILE_ASN1_TYPE_CHOICE: + foreach ($mapping['children'] as $key => $option) { + switch (true) { + case isset($option['constant']) && $option['constant'] == $decoded['constant']: + case !isset($option['constant']) && $option['type'] == $decoded['type']: + $value = $this->asn1map($decoded, $option); + break; + case !isset($option['constant']) && $option['type'] == FILE_ASN1_TYPE_CHOICE: + $v = $this->asn1map($decoded, $option); + if (isset($v)) { + $value = $v; + } + } + if (isset($value)) { + return array($key => $value); + } + } + return NULL; + case isset($mapping['implicit']): + case isset($mapping['explicit']): + case $decoded['type'] == $mapping['type']: + break; + default: + return NULL; + } + + if (isset($mapping['implicit'])) { + $decoded['type'] = $mapping['type']; + } + + switch ($decoded['type']) { + case FILE_ASN1_TYPE_SEQUENCE: + $map = array(); + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + foreach ($decoded['content'] as $content) { + if (($map[] = $this->asn1map($content, $child)) === NULL) { + return NULL; + } + } + + return $map; + } + + $n = count($decoded['content']); + $i = 0; + + foreach ($mapping['children'] as $key => $child) { + $maymatch = $i < $n; // Match only existing input. + if ($maymatch) { + $temp = $decoded['content'][$i]; + + if ($child['type'] != FILE_ASN1_TYPE_CHOICE) { + // Get the mapping and input class & constant. + $childClass = $tempClass = FILE_ASN1_CLASS_UNIVERSAL; + $constant = NULL; + if (isset($temp['constant'])) { + $tempClass = isset($temp['class']) ? $temp['class'] : FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + } + if (isset($child['class'])) { + $childClass = $child['class']; + $constant = $child['cast']; + } + elseif (isset($child['constant'])) { + $childClass = FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + $constant = $child['constant']; + } + + if (isset($constant) && isset($temp['constant'])) { + // Can only match if constants and class match. + $maymatch = $constant == $temp['constant'] && $childClass == $tempClass; + } else { + // Can only match if no constant expected and type matches or is generic. + $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], FILE_ASN1_TYPE_ANY, FILE_ASN1_TYPE_CHOICE)) !== false; + } + } + } + + if ($maymatch) { + // Attempt submapping. + $candidate = $this->asn1map($temp, $child); + $maymatch = $candidate !== NULL; + } + + if ($maymatch) { + // Got the match: use it. + $map[$key] = $candidate; + $i++; + } elseif (isset($child['default'])) { + $map[$key] = $child['default']; // Use default. + } elseif (!isset($child['optional'])) { + return NULL; // Syntax error. + } + } + + // Fail mapping if all input items have not been consumed. + return $i < $n? NULL: $map; + + // the main diff between sets and sequences is the encapsulation of the foreach in another for loop + case FILE_ASN1_TYPE_SET: + $map = array(); + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + foreach ($decoded['content'] as $content) { + if (($map[] = $this->asn1map($content, $child)) === NULL) { + return NULL; + } + } + + return $map; + } + + for ($i = 0; $i < count($decoded['content']); $i++) { + $temp = $decoded['content'][$i]; + $tempClass = FILE_ASN1_CLASS_UNIVERSAL; + if (isset($temp['constant'])) { + $tempClass = isset($temp['class']) ? $temp['class'] : FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + } + + foreach ($mapping['children'] as $key => $child) { + if (isset($map[$key])) { + continue; + } + $maymatch = true; + if ($child['type'] != FILE_ASN1_TYPE_CHOICE) { + $childClass = FILE_ASN1_CLASS_UNIVERSAL; + $constant = NULL; + if (isset($child['class'])) { + $childClass = $child['class']; + $constant = $child['cast']; + } + elseif (isset($child['constant'])) { + $childClass = FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + $constant = $child['constant']; + } + + if (isset($constant) && isset($temp['constant'])) { + // Can only match if constants and class match. + $maymatch = $constant == $temp['constant'] && $childClass == $tempClass; + } else { + // Can only match if no constant expected and type matches or is generic. + $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], FILE_ASN1_TYPE_ANY, FILE_ASN1_TYPE_CHOICE)) !== false; + } + } + + if ($maymatch) { + // Attempt submapping. + $candidate = $this->asn1map($temp, $child); + $maymatch = $candidate !== NULL; + } + + if (!$maymatch) { + break; + } + + // Got the match: use it. + $map[$key] = $candidate; + break; + } + } + + foreach ($mapping['children'] as $key => $child) { + if (!isset($map[$key])) { + if (isset($child['default'])) { + $map[$key] = $child['default']; + } elseif (!isset($child['optional'])) { + return NULL; + } + } + } + return $map; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + return isset($this->oids[$decoded['content']]) ? $this->oids[$decoded['content']] : $decoded['content']; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + if (isset($mapping['implicit'])) { + $decoded['content'] = $this->_decodeTime($decoded['content'], $decoded['type']); + } + return @date($this->format, $decoded['content']); + case FILE_ASN1_TYPE_BIT_STRING: + if (isset($mapping['mapping'])) { + $offset = ord($decoded['content'][0]); + $size = (strlen($decoded['content']) - 1) * 8 - $offset; + /* + From X.680-0207.pdf#page=46 (21.7): + + "When a "NamedBitList" is used in defining a bitstring type ASN.1 encoding rules are free to add (or remove) + arbitrarily any trailing 0 bits to (or from) values that are being encoded or decoded. Application designers should + therefore ensure that different semantics are not associated with such values which differ only in the number of trailing + 0 bits." + */ + $bits = count($mapping['mapping']) == $size ? array() : array_fill(0, count($mapping['mapping']) - $size, false); + for ($i = strlen($decoded['content']) - 1; $i > 0; $i--) { + $current = ord($decoded['content'][$i]); + for ($j = $offset; $j < 8; $j++) { + $bits[] = (bool) ($current & (1 << $j)); + } + $offset = 0; + } + $values = array(); + $map = array_reverse($mapping['mapping']); + foreach ($map as $i => $value) { + if ($bits[$i]) { + $values[] = $value; + } + } + return $values; + } + case FILE_ASN1_TYPE_OCTET_STRING: + return base64_encode($decoded['content']); + case FILE_ASN1_TYPE_NULL: + return ''; + case FILE_ASN1_TYPE_BOOLEAN: + return $decoded['content']; + case FILE_ASN1_TYPE_NUMERIC_STRING: + case FILE_ASN1_TYPE_PRINTABLE_STRING: + case FILE_ASN1_TYPE_TELETEX_STRING: + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + case FILE_ASN1_TYPE_IA5_STRING: + case FILE_ASN1_TYPE_GRAPHIC_STRING: + case FILE_ASN1_TYPE_VISIBLE_STRING: + case FILE_ASN1_TYPE_GENERAL_STRING: + case FILE_ASN1_TYPE_UNIVERSAL_STRING: + case FILE_ASN1_TYPE_UTF8_STRING: + case FILE_ASN1_TYPE_BMP_STRING: + return $decoded['content']; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + $temp = $decoded['content']; + if (isset($mapping['implicit'])) { + $temp = new Math_BigInteger($decoded['content'], -256); + } + if (isset($mapping['mapping'])) { + $temp = (int) $temp->toString(); + return isset($mapping['mapping'][$temp]) ? + $mapping['mapping'][$temp] : + false; + } + return $temp; + } + } + + /** + * ASN.1 Encode + * + * DER-encodes an ASN.1 semantic mapping ($mapping). Some libraries would probably call this function + * an ASN.1 compiler. + * + * @param String $source + * @param String $mapping + * @param Integer $idx + * @return String + * @access public + */ + function encodeDER($source, $mapping) + { + $this->location = array(); + return $this->_encode_der($source, $mapping); + } + + /** + * ASN.1 Encode (Helper function) + * + * @param String $source + * @param String $mapping + * @param Integer $idx + * @return String + * @access private + */ + function _encode_der($source, $mapping, $idx = NULL) + { + if (is_object($source) && strtolower(get_class($source)) == 'file_asn1_element') { + return $source->element; + } + + // do not encode (implicitly optional) fields with value set to default + if (isset($mapping['default']) && $source === $mapping['default']) { + return ''; + } + + if (isset($idx)) { + $this->location[] = $idx; + } + + $tag = $mapping['type']; + + switch ($tag) { + case FILE_ASN1_TYPE_SET: // Children order is not important, thus process in sequence. + case FILE_ASN1_TYPE_SEQUENCE: + $tag|= 0x20; // set the constructed bit + $value = ''; + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + + foreach ($source as $content) { + $temp = $this->_encode_der($content, $child); + if ($temp === false) { + return false; + } + $value.= $temp; + } + break; + } + + foreach ($mapping['children'] as $key => $child) { + if (!isset($source[$key])) { + if (!isset($child['optional'])) { + return false; + } + continue; + } + + $temp = $this->_encode_der($source[$key], $child, $key); + if ($temp === false) { + return false; + } + + // An empty child encoding means it has been optimized out. + // Else we should have at least one tag byte. + if ($temp === '') { + continue; + } + + // if isset($child['constant']) is true then isset($child['optional']) should be true as well + if (isset($child['constant'])) { + /* + From X.680-0207.pdf#page=58 (30.6): + + "The tagging construction specifies explicit tagging if any of the following holds: + ... + c) the "Tag Type" alternative is used and the value of "TagDefault" for the module is IMPLICIT TAGS or + AUTOMATIC TAGS, but the type defined by "Type" is an untagged choice type, an untagged open type, or + an untagged "DummyReference" (see ITU-T Rec. X.683 | ISO/IEC 8824-4, 8.3)." + */ + if (isset($child['explicit']) || $child['type'] == FILE_ASN1_TYPE_CHOICE) { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']); + $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp; + } else { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']); + $temp = $subtag . substr($temp, 1); + } + } + $value.= $temp; + } + break; + case FILE_ASN1_TYPE_CHOICE: + $temp = false; + + foreach ($mapping['children'] as $key => $child) { + if (!isset($source[$key])) { + continue; + } + + $temp = $this->_encode_der($source[$key], $child, $key); + if ($temp === false) { + return false; + } + + // An empty child encoding means it has been optimized out. + // Else we should have at least one tag byte. + if ($temp === '') { + continue; + } + + $tag = ord($temp[0]); + + // if isset($child['constant']) is true then isset($child['optional']) should be true as well + if (isset($child['constant'])) { + if (isset($child['explicit']) || $child['type'] == FILE_ASN1_TYPE_CHOICE) { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']); + $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp; + } else { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']); + $temp = $subtag . substr($temp, 1); + } + } + } + + if (isset($idx)) { + array_pop($this->location); + } + + if ($temp && isset($mapping['cast'])) { + $temp[0] = chr(($mapping['class'] << 6) | ($tag & 0x20) | $mapping['cast']); + } + + return $temp; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + if (!isset($mapping['mapping'])) { + $value = $source->toBytes(true); + } else { + $value = array_search($source, $mapping['mapping']); + if ($value === false) { + return false; + } + $value = new Math_BigInteger($value); + $value = $value->toBytes(true); + } + break; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + $format = $mapping['type'] == FILE_ASN1_TYPE_UTC_TIME ? 'y' : 'Y'; + $format.= 'mdHis'; + $value = @gmdate($format, strtotime($source)) . 'Z'; + break; + case FILE_ASN1_TYPE_BIT_STRING: + if (isset($mapping['mapping'])) { + $bits = array_fill(0, count($mapping['mapping']), 0); + $size = 0; + for ($i = 0; $i < count($mapping['mapping']); $i++) { + if (in_array($mapping['mapping'][$i], $source)) { + $bits[$i] = 1; + $size = $i; + } + } + + $offset = 8 - (($size + 1) & 7); + $offset = $offset !== 8 ? $offset : 0; + + $value = chr($offset); + + for ($i = $size + 1; $i < count($mapping['mapping']); $i++) { + unset($bits[$i]); + } + + $bits = implode('', array_pad($bits, $size + $offset + 1, 0)); + $bytes = explode(' ', rtrim(chunk_split($bits, 8, ' '))); + foreach ($bytes as $byte) { + $value.= chr(bindec($byte)); + } + + break; + } + case FILE_ASN1_TYPE_OCTET_STRING: + /* The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit, + the number of unused bits in the final subsequent octet. The number shall be in the range zero to seven. + + -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=16 */ + $value = base64_decode($source); + break; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + $oid = preg_match('#(?:\d+\.)+#', $source) ? $source : array_search($source, $this->oids); + if ($oid === false) { + user_error('Invalid OID'); + return false; + } + $value = ''; + $parts = explode('.', $oid); + $value = chr(40 * $parts[0] + $parts[1]); + for ($i = 2; $i < count($parts); $i++) { + $temp = ''; + if (!$parts[$i]) { + $temp = "\0"; + } else { + while ($parts[$i]) { + $temp = chr(0x80 | ($parts[$i] & 0x7F)) . $temp; + $parts[$i] >>= 7; + } + $temp[strlen($temp) - 1] = $temp[strlen($temp) - 1] & chr(0x7F); + } + $value.= $temp; + } + break; + case FILE_ASN1_TYPE_ANY: + $loc = $this->location; + if (isset($idx)) { + array_pop($this->location); + } + + switch (true) { + case !isset($source): + return $this->_encode_der(NULL, array('type' => FILE_ASN1_TYPE_NULL) + $mapping); + case is_int($source): + case is_object($source) && strtolower(get_class($source)) == 'math_biginteger': + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_INTEGER) + $mapping); + case is_float($source): + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_REAL) + $mapping); + case is_bool($source): + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_BOOLEAN) + $mapping); + case is_array($source) && count($source) == 1: + $typename = implode('', array_keys($source)); + $outtype = array_search($typename, $this->ANYmap, true); + if ($outtype !== false) { + return $this->_encode_der($source[$typename], array('type' => $outtype) + $mapping); + } + } + + $filters = $this->filters; + foreach ($loc as $part) { + if (!isset($filters[$part])) { + $filters = false; + break; + } + $filters = $filters[$part]; + } + if ($filters === false) { + user_error('No filters defined for ' . implode('/', $loc)); + return false; + } + return $this->_encode_der($source, $filters + $mapping); + case FILE_ASN1_TYPE_NULL: + $value = ''; + break; + case FILE_ASN1_TYPE_NUMERIC_STRING: + case FILE_ASN1_TYPE_TELETEX_STRING: + case FILE_ASN1_TYPE_PRINTABLE_STRING: + case FILE_ASN1_TYPE_UNIVERSAL_STRING: + case FILE_ASN1_TYPE_UTF8_STRING: + case FILE_ASN1_TYPE_BMP_STRING: + case FILE_ASN1_TYPE_IA5_STRING: + case FILE_ASN1_TYPE_VISIBLE_STRING: + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + case FILE_ASN1_TYPE_GRAPHIC_STRING: + case FILE_ASN1_TYPE_GENERAL_STRING: + $value = $source; + break; + case FILE_ASN1_TYPE_BOOLEAN: + $value = $source ? "\xFF" : "\x00"; + break; + default: + user_error('Mapping provides no type definition for ' . implode('/', $this->location)); + return false; + } + + if (isset($idx)) { + array_pop($this->location); + } + + if (isset($mapping['cast'])) { + $tag = ($mapping['class'] << 6) | ($tag & 0x20) | $mapping['cast']; + } + + return chr($tag) . $this->_encodeLength(strlen($value)) . $value; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * BER-decode the time + * + * Called by _decode_ber() and in the case of implicit tags asn1map(). + * + * @access private + * @param String $content + * @param Integer $tag + * @return String + */ + function _decodeTime($content, $tag) + { + /* UTCTime: + http://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 + http://www.obj-sys.com/asn1tutorial/node15.html + + GeneralizedTime: + http://tools.ietf.org/html/rfc5280#section-4.1.2.5.2 + http://www.obj-sys.com/asn1tutorial/node14.html */ + + $pattern = $tag == FILE_ASN1_TYPE_UTC_TIME ? + '#(..)(..)(..)(..)(..)(..)(.*)#' : + '#(....)(..)(..)(..)(..)(..).*([Z+-].*)$#'; + + preg_match($pattern, $content, $matches); + + list(, $year, $month, $day, $hour, $minute, $second, $timezone) = $matches; + + if ($tag == FILE_ASN1_TYPE_UTC_TIME) { + $year = $year >= 50 ? "19$year" : "20$year"; + } + + if ($timezone == 'Z') { + $mktime = 'gmmktime'; + $timezone = 0; + } elseif (preg_match('#([+-])(\d\d)(\d\d)#', $timezone, $matches)) { + $mktime = 'gmmktime'; + $timezone = 60 * $matches[3] + 3600 * $matches[2]; + if ($matches[1] == '-') { + $timezone = -$timezone; + } + } else { + $mktime = 'mktime'; + $timezone = 0; + } + + return @$mktime($hour, $minute, $second, $month, $day, $year) + $timezone; + } + + /** + * Set the time format + * + * Sets the time / date format for asn1map(). + * + * @access public + * @param String $format + */ + function setTimeFormat($format) + { + $this->format = $format; + } + + /** + * Load OIDs + * + * Load the relevant OIDs for a particular ASN.1 semantic mapping. + * + * @access public + * @param Array $oids + */ + function loadOIDs($oids) + { + $this->oids = $oids; + } + + /** + * Load filters + * + * See File_X509, etc, for an example. + * + * @access public + * @param Array $filters + */ + function loadFilters($filters) + { + $this->filters = $filters; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * String type conversion + * + * This is a lazy conversion, dealing only with character size. + * No real conversion table is used. + * + * @param String $in + * @param optional Integer $from + * @param optional Integer $to + * @return String + * @access public + */ + function convert($in, $from = FILE_ASN1_TYPE_UTF8_STRING, $to = FILE_ASN1_TYPE_UTF8_STRING) + { + if (!isset($this->stringTypeSize[$from]) || !isset($this->stringTypeSize[$to])) { + return false; + } + $insize = $this->stringTypeSize[$from]; + $outsize = $this->stringTypeSize[$to]; + $inlength = strlen($in); + $out = ''; + + for ($i = 0; $i < $inlength;) { + if ($inlength - $i < $insize) { + return false; + } + + // Get an input character as a 32-bit value. + $c = ord($in[$i++]); + switch (true) { + case $insize == 4: + $c = ($c << 8) | ord($in[$i++]); + $c = ($c << 8) | ord($in[$i++]); + case $insize == 2: + $c = ($c << 8) | ord($in[$i++]); + case $insize == 1: + break; + case ($c & 0x80) == 0x00: + break; + case ($c & 0x40) == 0x00: + return false; + default: + $bit = 6; + do { + if ($bit > 25 || $i >= $inlength || (ord($in[$i]) & 0xC0) != 0x80) { + return false; + } + $c = ($c << 6) | (ord($in[$i++]) & 0x3F); + $bit += 5; + $mask = 1 << $bit; + } while ($c & $bit); + $c &= $mask - 1; + break; + } + + // Convert and append the character to output string. + $v = ''; + switch (true) { + case $outsize == 4: + $v .= chr($c & 0xFF); + $c >>= 8; + $v .= chr($c & 0xFF); + $c >>= 8; + case $outsize == 2: + $v .= chr($c & 0xFF); + $c >>= 8; + case $outsize == 1: + $v .= chr($c & 0xFF); + $c >>= 8; + if ($c) { + return false; + } + break; + case ($c & 0x80000000) != 0: + return false; + case $c >= 0x04000000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x04000000; + case $c >= 0x00200000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00200000; + case $c >= 0x00010000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00010000; + case $c >= 0x00000800: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00000800; + case $c >= 0x00000080: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x000000C0; + default: + $v .= chr($c); + break; + } + $out .= strrev($v); + } + return $out; + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/File/X509.php b/apps/files_external/3rdparty/phpseclib/phpseclib/File/X509.php new file mode 100644 index 0000000000000000000000000000000000000000..278da62e26208c9d1a547040b3479f010ea9029c --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/File/X509.php @@ -0,0 +1,4323 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id$ + * @link htp://phpseclib.sourceforge.net + */ + +/** + * Include File_ASN1 + */ +if (!class_exists('File_ASN1')) { + require_once('File/ASN1.php'); +} + +/** + * Flag to only accept signatures signed by certificate authorities + * + * @access public + * @see File_X509::validateSignature() + */ +define('FILE_X509_VALIDATE_SIGNATURE_BY_CA', 1); + +/**#@+ + * @access public + * @see File_X509::getDN() + */ +/** + * Return internal array representation + */ +define('FILE_X509_DN_ARRAY', 0); +/** + * Return string + */ +define('FILE_X509_DN_STRING', 1); +/** + * Return ASN.1 name string + */ +define('FILE_X509_DN_ASN1', 2); +/** + * Return OpenSSL compatible array + */ +define('FILE_X509_DN_OPENSSL', 3); +/** + * Return canonical ASN.1 RDNs string + */ +define('FILE_X509_DN_CANON', 4); +/** + * Return name hash for file indexing + */ +define('FILE_X509_DN_HASH', 5); +/**#@-*/ + +/**#@+ + * @access public + * @see File_X509::saveX509() + * @see File_X509::saveCSR() + * @see File_X509::saveCRL() + */ +/** + * Save as PEM + * + * ie. a base64-encoded PEM with a header and a footer + */ +define('FILE_X509_FORMAT_PEM', 0); +/** + * Save as DER + */ +define('FILE_X509_FORMAT_DER', 1); +/** + * Save as a SPKAC + * + * Only works on CSRs. Not currently supported. + */ +define('FILE_X509_FORMAT_SPKAC', 2); +/**#@-*/ + +/** + * Attribute value disposition. + * If disposition is >= 0, this is the index of the target value. + */ +define('FILE_X509_ATTR_ALL', -1); // All attribute values (array). +define('FILE_X509_ATTR_APPEND', -2); // Add a value. +define('FILE_X509_ATTR_REPLACE', -3); // Clear first, then add a value. + +/** + * Pure-PHP X.509 Parser + * + * @author Jim Wigginton + * @version 0.3.1 + * @access public + * @package File_X509 + */ +class File_X509 { + /** + * ASN.1 syntax for X.509 certificates + * + * @var Array + * @access private + */ + var $Certificate; + + /**#@+ + * ASN.1 syntax for various extensions + * + * @access private + */ + var $DirectoryString; + var $PKCS9String; + var $AttributeValue; + var $Extensions; + var $KeyUsage; + var $ExtKeyUsageSyntax; + var $BasicConstraints; + var $KeyIdentifier; + var $CRLDistributionPoints; + var $AuthorityKeyIdentifier; + var $CertificatePolicies; + var $AuthorityInfoAccessSyntax; + var $SubjectAltName; + var $PrivateKeyUsagePeriod; + var $IssuerAltName; + var $PolicyMappings; + var $NameConstraints; + + var $CPSuri; + var $UserNotice; + + var $netscape_cert_type; + var $netscape_comment; + var $netscape_ca_policy_url; + + var $Name; + var $RelativeDistinguishedName; + var $CRLNumber; + var $CRLReason; + var $IssuingDistributionPoint; + var $InvalidityDate; + var $CertificateIssuer; + var $HoldInstructionCode; + var $SignedPublicKeyAndChallenge; + /**#@-*/ + + /** + * ASN.1 syntax for Certificate Signing Requests (RFC2986) + * + * @var Array + * @access private + */ + var $CertificationRequest; + + /** + * ASN.1 syntax for Certificate Revocation Lists (RFC5280) + * + * @var Array + * @access private + */ + var $CertificateList; + + /** + * Distinguished Name + * + * @var Array + * @access private + */ + var $dn; + + /** + * Public key + * + * @var String + * @access private + */ + var $publicKey; + + /** + * Private key + * + * @var String + * @access private + */ + var $privateKey; + + /** + * Object identifiers for X.509 certificates + * + * @var Array + * @access private + * @link http://en.wikipedia.org/wiki/Object_identifier + */ + var $oids; + + /** + * The certificate authorities + * + * @var Array + * @access private + */ + var $CAs; + + /** + * The currently loaded certificate + * + * @var Array + * @access private + */ + var $currentCert; + + /** + * The signature subject + * + * There's no guarantee File_X509 is going to reencode an X.509 cert in the same way it was originally + * encoded so we take save the portion of the original cert that the signature would have made for. + * + * @var String + * @access private + */ + var $signatureSubject; + + /** + * Certificate Start Date + * + * @var String + * @access private + */ + var $startDate; + + /** + * Certificate End Date + * + * @var String + * @access private + */ + var $endDate; + + /** + * Serial Number + * + * @var String + * @access private + */ + var $serialNumber; + + /** + * Key Identifier + * + * See {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.1 RFC5280#section-4.2.1.1} and + * {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.2 RFC5280#section-4.2.1.2}. + * + * @var String + * @access private + */ + var $currentKeyIdentifier; + + /** + * CA Flag + * + * @var Boolean + * @access private + */ + var $caFlag = false; + + /** + * Default Constructor. + * + * @return File_X509 + * @access public + */ + function File_X509() + { + // Explicitly Tagged Module, 1988 Syntax + // http://tools.ietf.org/html/rfc5280#appendix-A.1 + + $this->DirectoryString = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'teletexString' => array('type' => FILE_ASN1_TYPE_TELETEX_STRING), + 'printableString' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING), + 'universalString' => array('type' => FILE_ASN1_TYPE_UNIVERSAL_STRING), + 'utf8String' => array('type' => FILE_ASN1_TYPE_UTF8_STRING), + 'bmpString' => array('type' => FILE_ASN1_TYPE_BMP_STRING) + ) + ); + + $this->PKCS9String = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'ia5String' => array('type' => FILE_ASN1_TYPE_IA5_STRING), + 'directoryString' => $this->DirectoryString + ) + ); + + $this->AttributeValue = array('type' => FILE_ASN1_TYPE_ANY); + + $AttributeType = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $AttributeTypeAndValue = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => $AttributeType, + 'value'=> $this->AttributeValue + ) + ); + + /* + In practice, RDNs containing multiple name-value pairs (called "multivalued RDNs") are rare, + but they can be useful at times when either there is no unique attribute in the entry or you + want to ensure that the entry's DN contains some useful identifying information. + + - https://www.opends.org/wiki/page/DefinitionRelativeDistinguishedName + */ + $this->RelativeDistinguishedName = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $AttributeTypeAndValue + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.2.4 + $RDNSequence = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + // RDNSequence does not define a min or a max, which means it doesn't have one + 'min' => 0, + 'max' => -1, + 'children' => $this->RelativeDistinguishedName + ); + + $this->Name = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'rdnSequence' => $RDNSequence + ) + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.1.2 + $AlgorithmIdentifier = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'algorithm' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'parameters' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'optional' => true + ) + ) + ); + + /* + A certificate using system MUST reject the certificate if it encounters + a critical extension it does not recognize; however, a non-critical + extension may be ignored if it is not recognized. + + http://tools.ietf.org/html/rfc5280#section-4.2 + */ + $Extension = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'extnId' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'critical' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'optional' => true, + 'default' => false + ), + 'extnValue' => array('type' => FILE_ASN1_TYPE_OCTET_STRING) + ) + ); + + $this->Extensions = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + // technically, it's MAX, but we'll assume anything < 0 is MAX + 'max' => -1, + // if 'children' isn't an array then 'min' and 'max' must be defined + 'children' => $Extension + ); + + $SubjectPublicKeyInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'algorithm' => $AlgorithmIdentifier, + 'subjectPublicKey' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $UniqueIdentifier = array('type' => FILE_ASN1_TYPE_BIT_STRING); + + $Time = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'utcTime' => array('type' => FILE_ASN1_TYPE_UTC_TIME), + 'generalTime' => array('type' => FILE_ASN1_TYPE_GENERALIZED_TIME) + ) + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.2.5 + $Validity = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'notBefore' => $Time, + 'notAfter' => $Time + ) + ); + + $CertificateSerialNumber = array('type' => FILE_ASN1_TYPE_INTEGER); + + $Version = array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'mapping' => array('v1', 'v2', 'v3') + ); + + // assert($TBSCertificate['children']['signature'] == $Certificate['children']['signatureAlgorithm']) + $TBSCertificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + // technically, default implies optional, but we'll define it as being optional, none-the-less, just to + // reenforce that fact + 'version' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true, + 'default' => 'v1' + ) + $Version, + 'serialNumber' => $CertificateSerialNumber, + 'signature' => $AlgorithmIdentifier, + 'issuer' => $this->Name, + 'validity' => $Validity, + 'subject' => $this->Name, + 'subjectPublicKeyInfo' => $SubjectPublicKeyInfo, + // implicit means that the T in the TLV structure is to be rewritten, regardless of the type + 'issuerUniqueID' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $UniqueIdentifier, + 'subjectUniqueID' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $UniqueIdentifier, + // doesn't use the EXPLICIT keyword but if + // it's not IMPLICIT, it's EXPLICIT + 'extensions' => array( + 'constant' => 3, + 'optional' => true, + 'explicit' => true + ) + $this->Extensions + ) + ); + + $this->Certificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'tbsCertificate' => $TBSCertificate, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $this->KeyUsage = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'digitalSignature', + 'nonRepudiation', + 'keyEncipherment', + 'dataEncipherment', + 'keyAgreement', + 'keyCertSign', + 'cRLSign', + 'encipherOnly', + 'decipherOnly' + ) + ); + + $this->BasicConstraints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'cA' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'optional' => true, + 'default' => false + ), + 'pathLenConstraint' => array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'optional' => true + ) + ) + ); + + $this->KeyIdentifier = array('type' => FILE_ASN1_TYPE_OCTET_STRING); + + $OrganizationalUnitNames = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 4, // ub-organizational-units + 'children' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ); + + $PersonalName = array( + 'type' => FILE_ASN1_TYPE_SET, + 'children' => array( + 'surname' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ), + 'given-name' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ), + 'initials' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ), + 'generation-qualifier' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + ) + ); + + $NumericUserIdentifier = array('type' => FILE_ASN1_TYPE_NUMERIC_STRING); + + $OrganizationName = array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING); + + $PrivateDomainName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'numeric' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'printable' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $TerminalIdentifier = array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING); + + $NetworkAddress = array('type' => FILE_ASN1_TYPE_NUMERIC_STRING); + + $AdministrationDomainName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + // if class isn't present it's assumed to be FILE_ASN1_CLASS_UNIVERSAL or + // (if constant is present) FILE_ASN1_CLASS_CONTEXT_SPECIFIC + 'class' => FILE_ASN1_CLASS_APPLICATION, + 'cast' => 2, + 'children' => array( + 'numeric' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'printable' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $CountryName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + // if class isn't present it's assumed to be FILE_ASN1_CLASS_UNIVERSAL or + // (if constant is present) FILE_ASN1_CLASS_CONTEXT_SPECIFIC + 'class' => FILE_ASN1_CLASS_APPLICATION, + 'cast' => 1, + 'children' => array( + 'x121-dcc-code' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'iso-3166-alpha2-code' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $AnotherName = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type-id' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'value' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + ) + ); + + $ExtensionAttribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'extension-attribute-type' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ), + 'extension-attribute-value' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'constant' => 1, + 'optional' => true, + 'explicit' => true + ) + ) + ); + + $ExtensionAttributes = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => 256, // ub-extension-attributes + 'children' => $ExtensionAttribute + ); + + $BuiltInDomainDefinedAttribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING), + 'value' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $BuiltInDomainDefinedAttributes = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 4, // ub-domain-defined-attributes + 'children' => $BuiltInDomainDefinedAttribute + ); + + $BuiltInStandardAttributes = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'country-name' => array('optional' => true) + $CountryName, + 'administration-domain-name' => array('optional' => true) + $AdministrationDomainName, + 'network-address' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $NetworkAddress, + 'terminal-identifier' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $TerminalIdentifier, + 'private-domain-name' => array( + 'constant' => 2, + 'optional' => true, + 'explicit' => true + ) + $PrivateDomainName, + 'organization-name' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $OrganizationName, + 'numeric-user-identifier' => array( + 'constant' => 4, + 'optional' => true, + 'implicit' => true + ) + $NumericUserIdentifier, + 'personal-name' => array( + 'constant' => 5, + 'optional' => true, + 'implicit' => true + ) + $PersonalName, + 'organizational-unit-names' => array( + 'constant' => 6, + 'optional' => true, + 'implicit' => true + ) + $OrganizationalUnitNames + ) + ); + + $ORAddress = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'built-in-standard-attributes' => $BuiltInStandardAttributes, + 'built-in-domain-defined-attributes' => array('optional' => true) + $BuiltInDomainDefinedAttributes, + 'extension-attributes' => array('optional' => true) + $ExtensionAttributes + ) + ); + + $EDIPartyName = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'nameAssigner' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $this->DirectoryString, + // partyName is technically required but File_ASN1 doesn't currently support non-optional constants and + // setting it to optional gets the job done in any event. + 'partyName' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $this->DirectoryString + ) + ); + + $GeneralName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'otherName' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $AnotherName, + 'rfc822Name' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ), + 'dNSName' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ), + 'x400Address' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $ORAddress, + 'directoryName' => array( + 'constant' => 4, + 'optional' => true, + 'explicit' => true + ) + $this->Name, + 'ediPartyName' => array( + 'constant' => 5, + 'optional' => true, + 'implicit' => true + ) + $EDIPartyName, + 'uniformResourceIdentifier' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 6, + 'optional' => true, + 'implicit' => true + ), + 'iPAddress' => array( + 'type' => FILE_ASN1_TYPE_OCTET_STRING, + 'constant' => 7, + 'optional' => true, + 'implicit' => true + ), + 'registeredID' => array( + 'type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER, + 'constant' => 8, + 'optional' => true, + 'implicit' => true + ) + ) + ); + + $GeneralNames = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $GeneralName + ); + + $this->IssuerAltName = $GeneralNames; + + $ReasonFlags = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'unused', + 'keyCompromise', + 'cACompromise', + 'affiliationChanged', + 'superseded', + 'cessationOfOperation', + 'certificateHold', + 'privilegeWithdrawn', + 'aACompromise' + ) + ); + + $DistributionPointName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'fullName' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames, + 'nameRelativeToCRLIssuer' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $this->RelativeDistinguishedName + ) + ); + + $DistributionPoint = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'distributionPoint' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $DistributionPointName, + 'reasons' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $ReasonFlags, + 'cRLIssuer' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames + ) + ); + + $this->CRLDistributionPoints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $DistributionPoint + ); + + $this->AuthorityKeyIdentifier = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'keyIdentifier' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $this->KeyIdentifier, + 'authorityCertIssuer' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames, + 'authorityCertSerialNumber' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $CertificateSerialNumber + ) + ); + + $PolicyQualifierId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PolicyQualifierInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'policyQualifierId' => $PolicyQualifierId, + 'qualifier' => array('type' => FILE_ASN1_TYPE_ANY) + ) + ); + + $CertPolicyId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PolicyInformation = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'policyIdentifier' => $CertPolicyId, + 'policyQualifiers' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 0, + 'max' => -1, + 'optional' => true, + 'children' => $PolicyQualifierInfo + ) + ) + ); + + $this->CertificatePolicies = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $PolicyInformation + ); + + $this->PolicyMappings = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'issuerDomainPolicy' => $CertPolicyId, + 'subjectDomainPolicy' => $CertPolicyId + ) + ) + ); + + $KeyPurposeId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $this->ExtKeyUsageSyntax = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $KeyPurposeId + ); + + $AccessDescription = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'accessMethod' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'accessLocation' => $GeneralName + ) + ); + + $this->AuthorityInfoAccessSyntax = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $AccessDescription + ); + + $this->SubjectAltName = $GeneralNames; + + $this->PrivateKeyUsagePeriod = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'notBefore' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true, + 'type' => FILE_ASN1_TYPE_GENERALIZED_TIME), + 'notAfter' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true, + 'type' => FILE_ASN1_TYPE_GENERALIZED_TIME) + ) + ); + + $BaseDistance = array('type' => FILE_ASN1_TYPE_INTEGER); + + $GeneralSubtree = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'base' => $GeneralName, + 'minimum' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true, + 'default' => new Math_BigInteger(0) + ) + $BaseDistance, + 'maximum' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true, + ) + $BaseDistance + ) + ); + + $GeneralSubtrees = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $GeneralSubtree + ); + + $this->NameConstraints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'permittedSubtrees' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $GeneralSubtrees, + 'excludedSubtrees' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $GeneralSubtrees + ) + ); + + $this->CPSuri = array('type' => FILE_ASN1_TYPE_IA5_STRING); + + $DisplayText = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'ia5String' => array('type' => FILE_ASN1_TYPE_IA5_STRING), + 'visibleString' => array('type' => FILE_ASN1_TYPE_VISIBLE_STRING), + 'bmpString' => array('type' => FILE_ASN1_TYPE_BMP_STRING), + 'utf8String' => array('type' => FILE_ASN1_TYPE_UTF8_STRING) + ) + ); + + $NoticeReference = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'organization' => $DisplayText, + 'noticeNumbers' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 200, + 'children' => array('type' => FILE_ASN1_TYPE_INTEGER) + ) + ) + ); + + $this->UserNotice = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'noticeRef' => array( + 'optional' => true, + 'implicit' => true + ) + $NoticeReference, + 'explicitText' => array( + 'optional' => true, + 'implicit' => true + ) + $DisplayText + ) + ); + + // mapping is from + $this->netscape_cert_type = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'SSLClient', + 'SSLServer', + 'Email', + 'ObjectSigning', + 'Reserved', + 'SSLCA', + 'EmailCA', + 'ObjectSigningCA' + ) + ); + + $this->netscape_comment = array('type' => FILE_ASN1_TYPE_IA5_STRING); + $this->netscape_ca_policy_url = array('type' => FILE_ASN1_TYPE_IA5_STRING); + + // attribute is used in RFC2986 but we're using the RFC5280 definition + + $Attribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => $AttributeType, + 'value'=> array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $this->AttributeValue + ) + ) + ); + + // adapted from + + $Attributes = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $Attribute + ); + + $CertificationRequestInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'version' => array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'mapping' => array('v1') + ), + 'subject' => $this->Name, + 'subjectPKInfo' => $SubjectPublicKeyInfo, + 'attributes' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $Attributes, + ) + ); + + $this->CertificationRequest = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'certificationRequestInfo' => $CertificationRequestInfo, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $RevokedCertificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'userCertificate' => $CertificateSerialNumber, + 'revocationDate' => $Time, + 'crlEntryExtensions' => array( + 'optional' => true + ) + $this->Extensions + ) + ); + + $TBSCertList = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'version' => array( + 'optional' => true, + 'default' => 'v1' + ) + $Version, + 'signature' => $AlgorithmIdentifier, + 'issuer' => $this->Name, + 'thisUpdate' => $Time, + 'nextUpdate' => array( + 'optional' => true + ) + $Time, + 'revokedCertificates' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'optional' => true, + 'min' => 0, + 'max' => -1, + 'children' => $RevokedCertificate + ), + 'crlExtensions' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $this->Extensions + ) + ); + + $this->CertificateList = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'tbsCertList' => $TBSCertList, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $this->CRLNumber = array('type' => FILE_ASN1_TYPE_INTEGER); + + $this->CRLReason = array('type' => FILE_ASN1_TYPE_ENUMERATED, + 'mapping' => array( + 'unspecified', + 'keyCompromise', + 'cACompromise', + 'affiliationChanged', + 'superseded', + 'cessationOfOperation', + 'certificateHold', + // Value 7 is not used. + 8 => 'removeFromCRL', + 'privilegeWithdrawn', + 'aACompromise' + ) + ); + + $this->IssuingDistributionPoint = array('type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'distributionPoint' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $DistributionPointName, + 'onlyContainsUserCerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 1, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlyContainsCACerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 2, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlySomeReasons' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $ReasonFlags, + 'indirectCRL' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 4, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlyContainsAttributeCerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 5, + 'optional' => true, + 'default' => false, + 'implicit' => true + ) + ) + ); + + $this->InvalidityDate = array('type' => FILE_ASN1_TYPE_GENERALIZED_TIME); + + $this->CertificateIssuer = $GeneralNames; + + $this->HoldInstructionCode = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PublicKeyAndChallenge = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'spki' => $SubjectPublicKeyInfo, + 'challenge' => array('type' => FILE_ASN1_TYPE_IA5_STRING) + ) + ); + + $this->SignedPublicKeyAndChallenge = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'publicKeyAndChallenge' => $PublicKeyAndChallenge, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + // OIDs from RFC5280 and those RFCs mentioned in RFC5280#section-4.1.1.2 + $this->oids = array( + '1.3.6.1.5.5.7' => 'id-pkix', + '1.3.6.1.5.5.7.1' => 'id-pe', + '1.3.6.1.5.5.7.2' => 'id-qt', + '1.3.6.1.5.5.7.3' => 'id-kp', + '1.3.6.1.5.5.7.48' => 'id-ad', + '1.3.6.1.5.5.7.2.1' => 'id-qt-cps', + '1.3.6.1.5.5.7.2.2' => 'id-qt-unotice', + '1.3.6.1.5.5.7.48.1' =>'id-ad-ocsp', + '1.3.6.1.5.5.7.48.2' => 'id-ad-caIssuers', + '1.3.6.1.5.5.7.48.3' => 'id-ad-timeStamping', + '1.3.6.1.5.5.7.48.5' => 'id-ad-caRepository', + '2.5.4' => 'id-at', + '2.5.4.41' => 'id-at-name', + '2.5.4.4' => 'id-at-surname', + '2.5.4.42' => 'id-at-givenName', + '2.5.4.43' => 'id-at-initials', + '2.5.4.44' => 'id-at-generationQualifier', + '2.5.4.3' => 'id-at-commonName', + '2.5.4.7' => 'id-at-localityName', + '2.5.4.8' => 'id-at-stateOrProvinceName', + '2.5.4.10' => 'id-at-organizationName', + '2.5.4.11' => 'id-at-organizationalUnitName', + '2.5.4.12' => 'id-at-title', + '2.5.4.13' => 'id-at-description', + '2.5.4.46' => 'id-at-dnQualifier', + '2.5.4.6' => 'id-at-countryName', + '2.5.4.5' => 'id-at-serialNumber', + '2.5.4.65' => 'id-at-pseudonym', + '2.5.4.17' => 'id-at-postalCode', + '2.5.4.9' => 'id-at-streetAddress', + '2.5.4.45' => 'id-at-uniqueIdentifier', + '2.5.4.72' => 'id-at-role', + + '0.9.2342.19200300.100.1.25' => 'id-domainComponent', + '1.2.840.113549.1.9' => 'pkcs-9', + '1.2.840.113549.1.9.1' => 'pkcs-9-at-emailAddress', + '2.5.29' => 'id-ce', + '2.5.29.35' => 'id-ce-authorityKeyIdentifier', + '2.5.29.14' => 'id-ce-subjectKeyIdentifier', + '2.5.29.15' => 'id-ce-keyUsage', + '2.5.29.16' => 'id-ce-privateKeyUsagePeriod', + '2.5.29.32' => 'id-ce-certificatePolicies', + '2.5.29.32.0' => 'anyPolicy', + + '2.5.29.33' => 'id-ce-policyMappings', + '2.5.29.17' => 'id-ce-subjectAltName', + '2.5.29.18' => 'id-ce-issuerAltName', + '2.5.29.9' => 'id-ce-subjectDirectoryAttributes', + '2.5.29.19' => 'id-ce-basicConstraints', + '2.5.29.30' => 'id-ce-nameConstraints', + '2.5.29.36' => 'id-ce-policyConstraints', + '2.5.29.31' => 'id-ce-cRLDistributionPoints', + '2.5.29.37' => 'id-ce-extKeyUsage', + '2.5.29.37.0' => 'anyExtendedKeyUsage', + '1.3.6.1.5.5.7.3.1' => 'id-kp-serverAuth', + '1.3.6.1.5.5.7.3.2' => 'id-kp-clientAuth', + '1.3.6.1.5.5.7.3.3' => 'id-kp-codeSigning', + '1.3.6.1.5.5.7.3.4' => 'id-kp-emailProtection', + '1.3.6.1.5.5.7.3.8' => 'id-kp-timeStamping', + '1.3.6.1.5.5.7.3.9' => 'id-kp-OCSPSigning', + '2.5.29.54' => 'id-ce-inhibitAnyPolicy', + '2.5.29.46' => 'id-ce-freshestCRL', + '1.3.6.1.5.5.7.1.1' => 'id-pe-authorityInfoAccess', + '1.3.6.1.5.5.7.1.11' => 'id-pe-subjectInfoAccess', + '2.5.29.20' => 'id-ce-cRLNumber', + '2.5.29.28' => 'id-ce-issuingDistributionPoint', + '2.5.29.27' => 'id-ce-deltaCRLIndicator', + '2.5.29.21' => 'id-ce-cRLReasons', + '2.5.29.29' => 'id-ce-certificateIssuer', + '2.5.29.23' => 'id-ce-holdInstructionCode', + '1.2.840.10040.2' => 'holdInstruction', + '1.2.840.10040.2.1' => 'id-holdinstruction-none', + '1.2.840.10040.2.2' => 'id-holdinstruction-callissuer', + '1.2.840.10040.2.3' => 'id-holdinstruction-reject', + '2.5.29.24' => 'id-ce-invalidityDate', + + '1.2.840.113549.2.2' => 'md2', + '1.2.840.113549.2.5' => 'md5', + '1.3.14.3.2.26' => 'id-sha1', + '1.2.840.10040.4.1' => 'id-dsa', + '1.2.840.10040.4.3' => 'id-dsa-with-sha1', + '1.2.840.113549.1.1' => 'pkcs-1', + '1.2.840.113549.1.1.1' => 'rsaEncryption', + '1.2.840.113549.1.1.2' => 'md2WithRSAEncryption', + '1.2.840.113549.1.1.4' => 'md5WithRSAEncryption', + '1.2.840.113549.1.1.5' => 'sha1WithRSAEncryption', + '1.2.840.10046.2.1' => 'dhpublicnumber', + '2.16.840.1.101.2.1.1.22' => 'id-keyExchangeAlgorithm', + '1.2.840.10045' => 'ansi-X9-62', + '1.2.840.10045.4' => 'id-ecSigType', + '1.2.840.10045.4.1' => 'ecdsa-with-SHA1', + '1.2.840.10045.1' => 'id-fieldType', + '1.2.840.10045.1.1' => 'prime-field', + '1.2.840.10045.1.2' => 'characteristic-two-field', + '1.2.840.10045.1.2.3' => 'id-characteristic-two-basis', + '1.2.840.10045.1.2.3.1' => 'gnBasis', + '1.2.840.10045.1.2.3.2' => 'tpBasis', + '1.2.840.10045.1.2.3.3' => 'ppBasis', + '1.2.840.10045.2' => 'id-publicKeyType', + '1.2.840.10045.2.1' => 'id-ecPublicKey', + '1.2.840.10045.3' => 'ellipticCurve', + '1.2.840.10045.3.0' => 'c-TwoCurve', + '1.2.840.10045.3.0.1' => 'c2pnb163v1', + '1.2.840.10045.3.0.2' => 'c2pnb163v2', + '1.2.840.10045.3.0.3' => 'c2pnb163v3', + '1.2.840.10045.3.0.4' => 'c2pnb176w1', + '1.2.840.10045.3.0.5' => 'c2pnb191v1', + '1.2.840.10045.3.0.6' => 'c2pnb191v2', + '1.2.840.10045.3.0.7' => 'c2pnb191v3', + '1.2.840.10045.3.0.8' => 'c2pnb191v4', + '1.2.840.10045.3.0.9' => 'c2pnb191v5', + '1.2.840.10045.3.0.10' => 'c2pnb208w1', + '1.2.840.10045.3.0.11' => 'c2pnb239v1', + '1.2.840.10045.3.0.12' => 'c2pnb239v2', + '1.2.840.10045.3.0.13' => 'c2pnb239v3', + '1.2.840.10045.3.0.14' => 'c2pnb239v4', + '1.2.840.10045.3.0.15' => 'c2pnb239v5', + '1.2.840.10045.3.0.16' => 'c2pnb272w1', + '1.2.840.10045.3.0.17' => 'c2pnb304w1', + '1.2.840.10045.3.0.18' => 'c2pnb359v1', + '1.2.840.10045.3.0.19' => 'c2pnb368w1', + '1.2.840.10045.3.0.20' => 'c2pnb431r1', + '1.2.840.10045.3.1' => 'primeCurve', + '1.2.840.10045.3.1.1' => 'prime192v1', + '1.2.840.10045.3.1.2' => 'prime192v2', + '1.2.840.10045.3.1.3' => 'prime192v3', + '1.2.840.10045.3.1.4' => 'prime239v1', + '1.2.840.10045.3.1.5' => 'prime239v2', + '1.2.840.10045.3.1.6' => 'prime239v3', + '1.2.840.10045.3.1.7' => 'prime256v1', + '1.2.840.113549.1.1.7' => 'id-RSAES-OAEP', + '1.2.840.113549.1.1.9' => 'id-pSpecified', + '1.2.840.113549.1.1.10' => 'id-RSASSA-PSS', + '1.2.840.113549.1.1.8' => 'id-mgf1', + '1.2.840.113549.1.1.14' => 'sha224WithRSAEncryption', + '1.2.840.113549.1.1.11' => 'sha256WithRSAEncryption', + '1.2.840.113549.1.1.12' => 'sha384WithRSAEncryption', + '1.2.840.113549.1.1.13' => 'sha512WithRSAEncryption', + '2.16.840.1.101.3.4.2.4' => 'id-sha224', + '2.16.840.1.101.3.4.2.1' => 'id-sha256', + '2.16.840.1.101.3.4.2.2' => 'id-sha384', + '2.16.840.1.101.3.4.2.3' => 'id-sha512', + '1.2.643.2.2.4' => 'id-GostR3411-94-with-GostR3410-94', + '1.2.643.2.2.3' => 'id-GostR3411-94-with-GostR3410-2001', + '1.2.643.2.2.20' => 'id-GostR3410-2001', + '1.2.643.2.2.19' => 'id-GostR3410-94', + // Netscape Object Identifiers from "Netscape Certificate Extensions" + '2.16.840.1.113730' => 'netscape', + '2.16.840.1.113730.1' => 'netscape-cert-extension', + '2.16.840.1.113730.1.1' => 'netscape-cert-type', + '2.16.840.1.113730.1.13' => 'netscape-comment', + '2.16.840.1.113730.1.8' => 'netscape-ca-policy-url', + // the following are X.509 extensions not supported by phpseclib + '1.3.6.1.5.5.7.1.12' => 'id-pe-logotype', + '1.2.840.113533.7.65.0' => 'entrustVersInfo', + '2.16.840.1.113733.1.6.9' => 'verisignPrivate', + // for Certificate Signing Requests + // see http://tools.ietf.org/html/rfc2985 + '1.2.840.113549.1.9.2' => 'pkcs-9-at-unstructuredName', // PKCS #9 unstructured name + '1.2.840.113549.1.9.7' => 'pkcs-9-at-challengePassword', // Challenge password for certificate revocations + '1.2.840.113549.1.9.14' => 'pkcs-9-at-extensionRequest' // Certificate extension request + ); + } + + /** + * Load X.509 certificate + * + * Returns an associative array describing the X.509 cert or a false if the cert failed to load + * + * @param String $cert + * @access public + * @return Mixed + */ + function loadX509($cert) + { + if (is_array($cert) && isset($cert['tbsCertificate'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + $this->dn = $cert['tbsCertificate']['subject']; + if (!isset($this->dn)) { + return false; + } + $this->currentCert = $cert; + + $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier'); + $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : NULL; + + unset($this->signatureSubject); + + return $cert; + } + + $asn1 = new File_ASN1(); + + /* + X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them above and beyond the ceritificate. ie. + some may have the following preceeding the -----BEGIN CERTIFICATE----- line: + + subject=/O=organization/OU=org unit/CN=common name + issuer=/O=organization/CN=common name + */ + $temp = preg_replace('#^(?:[^-].+[\r\n]+)+|-.+-|[\r\n]| #', '', $cert); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + if ($temp != false) { + $cert = $temp; + } + + if ($cert === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($cert); + + if (!empty($decoded)) { + $x509 = $asn1->asn1map($decoded[0], $this->Certificate); + } + if (!isset($x509) || $x509 === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($cert, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $this->_mapInExtensions($x509, 'tbsCertificate/extensions', $asn1); + + $key = &$x509['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']; + $key = $this->_reformatKey($x509['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], $key); + + $this->currentCert = $x509; + $this->dn = $x509['tbsCertificate']['subject']; + + $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier'); + $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : NULL; + + return $x509; + } + + /** + * Save X.509 certificate + * + * @param Array $cert + * @param Integer $format optional + * @access public + * @return String + */ + function saveX509($cert, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($cert) || !isset($cert['tbsCertificate'])) { + return false; + } + + switch (true) { + // "case !$a: case !$b: break; default: whatever();" is the same thing as "if ($a && $b) whatever()" + case !($algorithm = $this->_subArray($cert, 'tbsCertificate/subjectPublicKeyInfo/algorithm/algorithm')): + case is_object($cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']): + break; + default: + switch ($algorithm) { + case 'rsaEncryption': + $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'] = + base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']))); + } + } + + $asn1 = new File_ASN1(); + + $asn1->loadOIDs($this->oids); + + $filters = array(); + $filters['tbsCertificate']['signature']['parameters'] = + $filters['tbsCertificate']['signature']['issuer']['rdnSequence']['value'] = + $filters['tbsCertificate']['issuer']['rdnSequence']['value'] = + $filters['tbsCertificate']['subject']['rdnSequence']['value'] = + $filters['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['parameters'] = + $filters['signatureAlgorithm']['parameters'] = + $filters['authorityCertIssuer']['directoryName']['rdnSequence']['value'] = + //$filters['policyQualifiers']['qualifier'] = + $filters['distributionPoint']['fullName']['directoryName']['rdnSequence']['value'] = + $filters['directoryName']['rdnSequence']['value'] = + array('type' => FILE_ASN1_TYPE_UTF8_STRING); + /* in the case of policyQualifiers/qualifier, the type has to be FILE_ASN1_TYPE_IA5_STRING. + FILE_ASN1_TYPE_PRINTABLE_STRING will cause OpenSSL's X.509 parser to spit out random + characters. + */ + $filters['policyQualifiers']['qualifier'] = + array('type' => FILE_ASN1_TYPE_IA5_STRING); + + $asn1->loadFilters($filters); + + $this->_mapOutExtensions($cert, 'tbsCertificate/extensions', $asn1); + + $cert = $asn1->encodeDER($cert, $this->Certificate); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $cert; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN CERTIFICATE-----\r\n" . chunk_split(base64_encode($cert), 64) . '-----END CERTIFICATE-----'; + } + } + + /** + * Map extension values from octet string to extension-specific internal + * format. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapInExtensions(&$root, $path, $asn1) + { + $extensions = &$this->_subArray($root, $path); + + if (is_array($extensions)) { + for ($i = 0; $i < count($extensions); $i++) { + $id = $extensions[$i]['extnId']; + $value = &$extensions[$i]['extnValue']; + $value = base64_decode($value); + $decoded = $asn1->decodeBER($value); + /* [extnValue] contains the DER encoding of an ASN.1 value + corresponding to the extension type identified by extnID */ + $map = $this->_getMapping($id); + if (!is_bool($map)) { + $mapped = $asn1->asn1map($decoded[0], $map); + $value = $mapped === false ? $decoded[0] : $mapped; + + if ($id == 'id-ce-certificatePolicies') { + for ($j = 0; $j < count($value); $j++) { + if (!isset($value[$j]['policyQualifiers'])) { + continue; + } + for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) { + $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId']; + $map = $this->_getMapping($subid); + $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier']; + if ($map !== false) { + $decoded = $asn1->decodeBER($subvalue); + $mapped = $asn1->asn1map($decoded[0], $map); + $subvalue = $mapped === false ? $decoded[0] : $mapped; + } + } + } + } + } elseif ($map) { + $value = base64_encode($value); + } + } + } + } + + /** + * Map extension values from extension-specific internal format to + * octet string. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapOutExtensions(&$root, $path, $asn1) + { + $extensions = &$this->_subArray($root, $path); + + if (is_array($extensions)) { + $size = count($extensions); + for ($i = 0; $i < $size; $i++) { + $id = $extensions[$i]['extnId']; + $value = &$extensions[$i]['extnValue']; + + switch ($id) { + case 'id-ce-certificatePolicies': + for ($j = 0; $j < count($value); $j++) { + if (!isset($value[$j]['policyQualifiers'])) { + continue; + } + for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) { + $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId']; + $map = $this->_getMapping($subid); + $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier']; + if ($map !== false) { + // by default File_ASN1 will try to render qualifier as a FILE_ASN1_TYPE_IA5_STRING since it's + // actual type is FILE_ASN1_TYPE_ANY + $subvalue = new File_ASN1_Element($asn1->encodeDER($subvalue, $map)); + } + } + } + break; + case 'id-ce-authorityKeyIdentifier': // use 00 as the serial number instead of an empty string + if (isset($value['authorityCertSerialNumber'])) { + if ($value['authorityCertSerialNumber']->toBytes() == '') { + $temp = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 2) . "\1\0"; + $value['authorityCertSerialNumber'] = new File_ASN1_Element($temp); + } + } + } + + /* [extnValue] contains the DER encoding of an ASN.1 value + corresponding to the extension type identified by extnID */ + $map = $this->_getMapping($id); + if (is_bool($map)) { + if (!$map) { + user_error($id . ' is not a currently supported extension'); + unset($extensions[$i]); + } + } else { + $temp = $asn1->encodeDER($value, $map); + $value = base64_encode($temp); + } + } + } + } + + /** + * Map attribute values from ANY type to attribute-specific internal + * format. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapInAttributes(&$root, $path, $asn1) + { + $attributes = &$this->_subArray($root, $path); + + if (is_array($attributes)) { + for ($i = 0; $i < count($attributes); $i++) { + $id = $attributes[$i]['type']; + /* $value contains the DER encoding of an ASN.1 value + corresponding to the attribute type identified by type */ + $map = $this->_getMapping($id); + if (is_array($attributes[$i]['value'])) { + $values = &$attributes[$i]['value']; + for ($j = 0; $j < count($values); $j++) { + $value = $asn1->encodeDER($values[$j], $this->AttributeValue); + $decoded = $asn1->decodeBER($value); + if (!is_bool($map)) { + $mapped = $asn1->asn1map($decoded[0], $map); + if ($mapped !== false) { + $values[$j] = $mapped; + } + if ($id == 'pkcs-9-at-extensionRequest') { + $this->_mapInExtensions($values, $j, $asn1); + } + } elseif ($map) { + $values[$j] = base64_encode($value); + } + } + } + } + } + } + + /** + * Map attribute values from attribute-specific internal format to + * ANY type. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapOutAttributes(&$root, $path, $asn1) + { + $attributes = &$this->_subArray($root, $path); + + if (is_array($attributes)) { + $size = count($attributes); + for ($i = 0; $i < $size; $i++) { + /* [value] contains the DER encoding of an ASN.1 value + corresponding to the attribute type identified by type */ + $id = $attributes[$i]['type']; + $map = $this->_getMapping($id); + if ($map === false) { + user_error($id . ' is not a currently supported attribute', E_USER_NOTICE); + unset($attributes[$i]); + } + elseif (is_array($attributes[$i]['value'])) { + $values = &$attributes[$i]['value']; + for ($j = 0; $j < count($values); $j++) { + switch ($id) { + case 'pkcs-9-at-extensionRequest': + $this->_mapOutExtensions($values, $j, $asn1); + break; + } + + if (!is_bool($map)) { + $temp = $asn1->encodeDER($values[$j], $map); + $decoded = $asn1->decodeBER($temp); + $values[$j] = $asn1->asn1map($decoded[0], $this->AttributeValue); + } + } + } + } + } + } + + /** + * Associate an extension ID to an extension mapping + * + * @param String $extnId + * @access private + * @return Mixed + */ + function _getMapping($extnId) + { + if (!is_string($extnId)) { // eg. if it's a File_ASN1_Element object + return true; + } + + switch ($extnId) { + case 'id-ce-keyUsage': + return $this->KeyUsage; + case 'id-ce-basicConstraints': + return $this->BasicConstraints; + case 'id-ce-subjectKeyIdentifier': + return $this->KeyIdentifier; + case 'id-ce-cRLDistributionPoints': + return $this->CRLDistributionPoints; + case 'id-ce-authorityKeyIdentifier': + return $this->AuthorityKeyIdentifier; + case 'id-ce-certificatePolicies': + return $this->CertificatePolicies; + case 'id-ce-extKeyUsage': + return $this->ExtKeyUsageSyntax; + case 'id-pe-authorityInfoAccess': + return $this->AuthorityInfoAccessSyntax; + case 'id-ce-subjectAltName': + return $this->SubjectAltName; + case 'id-ce-privateKeyUsagePeriod': + return $this->PrivateKeyUsagePeriod; + case 'id-ce-issuerAltName': + return $this->IssuerAltName; + case 'id-ce-policyMappings': + return $this->PolicyMappings; + case 'id-ce-nameConstraints': + return $this->NameConstraints; + + case 'netscape-cert-type': + return $this->netscape_cert_type; + case 'netscape-comment': + return $this->netscape_comment; + case 'netscape-ca-policy-url': + return $this->netscape_ca_policy_url; + + // since id-qt-cps isn't a constructed type it will have already been decoded as a string by the time it gets + // back around to asn1map() and we don't want it decoded again. + //case 'id-qt-cps': + // return $this->CPSuri; + case 'id-qt-unotice': + return $this->UserNotice; + + // the following OIDs are unsupported but we don't want them to give notices when calling saveX509(). + case 'id-pe-logotype': // http://www.ietf.org/rfc/rfc3709.txt + case 'entrustVersInfo': + // http://support.microsoft.com/kb/287547 + case '1.3.6.1.4.1.311.20.2': // szOID_ENROLL_CERTTYPE_EXTENSION + case '1.3.6.1.4.1.311.21.1': // szOID_CERTSRV_CA_VERSION + // "SET Secure Electronic Transaction Specification" + // http://www.maithean.com/docs/set_bk3.pdf + case '2.23.42.7.0': // id-set-hashedRootKey + return true; + + // CSR attributes + case 'pkcs-9-at-unstructuredName': + return $this->PKCS9String; + case 'pkcs-9-at-challengePassword': + return $this->DirectoryString; + case 'pkcs-9-at-extensionRequest': + return $this->Extensions; + + // CRL extensions. + case 'id-ce-cRLNumber': + return $this->CRLNumber; + case 'id-ce-deltaCRLIndicator': + return $this->CRLNumber; + case 'id-ce-issuingDistributionPoint': + return $this->IssuingDistributionPoint; + case 'id-ce-freshestCRL': + return $this->CRLDistributionPoints; + case 'id-ce-cRLReasons': + return $this->CRLReason; + case 'id-ce-invalidityDate': + return $this->InvalidityDate; + case 'id-ce-certificateIssuer': + return $this->CertificateIssuer; + case 'id-ce-holdInstructionCode': + return $this->HoldInstructionCode; + } + + return false; + } + + /** + * Load an X.509 certificate as a certificate authority + * + * @param String $cert + * @access public + * @return Boolean + */ + function loadCA($cert) + { + $olddn = $this->dn; + $oldcert = $this->currentCert; + $oldsigsubj = $this->signatureSubject; + $oldkeyid = $this->currentKeyIdentifier; + + $cert = $this->loadX509($cert); + if (!$cert) { + $this->dn = $olddn; + $this->currentCert = $oldcert; + $this->signatureSubject = $oldsigsubj; + $this->currentKeyIdentifier = $oldkeyid; + + return false; + } + + /* From RFC5280 "PKIX Certificate and CRL Profile": + + If the keyUsage extension is present, then the subject public key + MUST NOT be used to verify signatures on certificates or CRLs unless + the corresponding keyCertSign or cRLSign bit is set. */ + //$keyUsage = $this->getExtension('id-ce-keyUsage'); + //if ($keyUsage && !in_array('keyCertSign', $keyUsage)) { + // return false; + //} + + /* From RFC5280 "PKIX Certificate and CRL Profile": + + The cA boolean indicates whether the certified public key may be used + to verify certificate signatures. If the cA boolean is not asserted, + then the keyCertSign bit in the key usage extension MUST NOT be + asserted. If the basic constraints extension is not present in a + version 3 certificate, or the extension is present but the cA boolean + is not asserted, then the certified public key MUST NOT be used to + verify certificate signatures. */ + //$basicConstraints = $this->getExtension('id-ce-basicConstraints'); + //if (!$basicConstraints || !$basicConstraints['cA']) { + // return false; + //} + + $this->CAs[] = $cert; + + $this->dn = $olddn; + $this->currentCert = $oldcert; + $this->signatureSubject = $oldsigsubj; + + return true; + } + + /** + * Validate an X.509 certificate against a URL + * + * From RFC2818 "HTTP over TLS": + * + * Matching is performed using the matching rules specified by + * [RFC2459]. If more than one identity of a given type is present in + * the certificate (e.g., more than one dNSName name, a match in any one + * of the set is considered acceptable.) Names may contain the wildcard + * character * which is considered to match any single domain name + * component or component fragment. E.g., *.a.com matches foo.a.com but + * not bar.foo.a.com. f*.com matches foo.com but not bar.com. + * + * @param String $url + * @access public + * @return Boolean + */ + function validateURL($url) + { + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + + $components = parse_url($url); + if (!isset($components['host'])) { + return false; + } + + if ($names = $this->getExtension('id-ce-subjectAltName')) { + foreach ($names as $key => $value) { + $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value); + switch ($key) { + case 'dNSName': + /* From RFC2818 "HTTP over TLS": + + If a subjectAltName extension of type dNSName is present, that MUST + be used as the identity. Otherwise, the (most specific) Common Name + field in the Subject field of the certificate MUST be used. Although + the use of the Common Name is existing practice, it is deprecated and + Certification Authorities are encouraged to use the dNSName instead. */ + if (preg_match('#^' . $value . '$#', $components['host'])) { + return true; + } + break; + case 'iPAddress': + /* From RFC2818 "HTTP over TLS": + + In some cases, the URI is specified as an IP address rather than a + hostname. In this case, the iPAddress subjectAltName must be present + in the certificate and must exactly match the IP in the URI. */ + if (preg_match('#(?:\d{1-3}\.){4}#', $components['host'] . '.') && preg_match('#^' . $value . '$#', $components['host'])) { + return true; + } + } + } + return false; + } + + if ($value = $this->getDNProp('id-at-commonName')) { + $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value[0]); + return preg_match('#^' . $value . '$#', $components['host']); + } + + return false; + } + + /** + * Validate a date + * + * If $date isn't defined it is assumed to be the current date. + * + * @param Integer $date optional + * @access public + */ + function validateDate($date = NULL) + { + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + + if (!isset($date)) { + $date = time(); + } + + $notBefore = $this->currentCert['tbsCertificate']['validity']['notBefore']; + $notBefore = isset($notBefore['generalTime']) ? $notBefore['generalTime'] : $notBefore['utcTime']; + + $notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter']; + $notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime']; + + switch (true) { + case $date < @strtotime($notBefore): + case $date > @strtotime($notAfter): + return false; + } + + return true; + } + + /** + * Validate a signature + * + * Works on X.509 certs, CSR's and CRL's. + * Returns true if the signature is verified, false if it is not correct or NULL on error + * + * The behavior of this function is inspired by {@link http://php.net/openssl-verify openssl_verify}. + * + * @param Integer $options optional + * @access public + * @return Mixed + */ + function validateSignature($options = 0) + { + if (!is_array($this->currentCert) || !isset($this->signatureSubject)) { + return 0; + } + + /* TODO: + "emailAddress attribute values are not case-sensitive (e.g., "subscriber@example.com" is the same as "SUBSCRIBER@EXAMPLE.COM")." + -- http://tools.ietf.org/html/rfc5280#section-4.1.2.6 + + implement pathLenConstraint in the id-ce-basicConstraints extension */ + + switch (true) { + case isset($this->currentCert['tbsCertificate']): + // self-signed cert + if ($this->currentCert['tbsCertificate']['issuer'] === $this->currentCert['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier'); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $this->currentCert; // working cert + } + } + + if (!empty($this->CAs)) { + for ($i = 0; $i < count($this->CAs); $i++) { + // even if the cert is a self-signed one we still want to see if it's a CA; + // if not, we'll conditionally return an error + $ca = $this->CAs[$i]; + if ($this->currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $ca; // working cert + break 2; + } + } + } + if (count($this->CAs) == $i && ($options & FILE_X509_VALIDATE_SIGNATURE_BY_CA)) { + return false; + } + } elseif (!isset($signingCert) || ($options & FILE_X509_VALIDATE_SIGNATURE_BY_CA)) { + return false; + } + return $this->_validateSignature( + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['certificationRequestInfo']): + return $this->_validateSignature( + $this->currentCert['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm'], + $this->currentCert['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['publicKeyAndChallenge']): + return $this->_validateSignature( + $this->currentCert['publicKeyAndChallenge']['spki']['algorithm']['algorithm'], + $this->currentCert['publicKeyAndChallenge']['spki']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['tbsCertList']): + if (!empty($this->CAs)) { + for ($i = 0; $i < count($this->CAs); $i++) { + $ca = $this->CAs[$i]; + if ($this->currentCert['tbsCertList']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $ca; // working cert + break 2; + } + } + } + } + if (!isset($signingCert)) { + return false; + } + return $this->_validateSignature( + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + default: + return false; + } + } + + /** + * Validates a signature + * + * Returns true if the signature is verified, false if it is not correct or NULL on error + * + * @param String $publicKeyAlgorithm + * @param String $publicKey + * @param String $signatureAlgorithm + * @param String $signature + * @param String $signatureSubject + * @access private + * @return Integer + */ + function _validateSignature($publicKeyAlgorithm, $publicKey, $signatureAlgorithm, $signature, $signatureSubject) + { + switch ($publicKeyAlgorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + $rsa = new Crypt_RSA(); + $rsa->loadKey($publicKey); + + switch ($signatureAlgorithm) { + case 'md2WithRSAEncryption': + case 'md5WithRSAEncryption': + case 'sha1WithRSAEncryption': + case 'sha224WithRSAEncryption': + case 'sha256WithRSAEncryption': + case 'sha384WithRSAEncryption': + case 'sha512WithRSAEncryption': + $rsa->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm)); + $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + if (!@$rsa->verify($signatureSubject, $signature)) { + return false; + } + break; + default: + return NULL; + } + break; + default: + return NULL; + } + + return true; + } + + /** + * Reformat public keys + * + * Reformats a public key to a format supported by phpseclib (if applicable) + * + * @param String $algorithm + * @param String $key + * @access private + * @return String + */ + function _reformatKey($algorithm, $key) + { + switch ($algorithm) { + case 'rsaEncryption': + return + "-----BEGIN PUBLIC KEY-----\r\n" . + // subjectPublicKey is stored as a bit string in X.509 certs. the first byte of a bit string represents how many bits + // in the last byte should be ignored. the following only supports non-zero stuff but as none of the X.509 certs Firefox + // uses as a cert authority actually use a non-zero bit I think it's safe to assume that none do. + chunk_split(base64_encode(substr(base64_decode($key), 1)), 64) . + '-----END PUBLIC KEY-----'; + default: + return $key; + } + } + + /** + * "Normalizes" a Distinguished Name property + * + * @param String $propName + * @access private + * @return Mixed + */ + function _translateDNProp($propName) + { + switch (strtolower($propName)) { + case 'id-at-countryname': + case 'countryname': + case 'c': + return 'id-at-countryName'; + case 'id-at-organizationname': + case 'organizationname': + case 'o': + return 'id-at-organizationName'; + case 'id-at-dnqualifier': + case 'dnqualifier': + return 'id-at-dnQualifier'; + case 'id-at-commonname': + case 'commonname': + case 'cn': + return 'id-at-commonName'; + case 'id-at-stateorprovinceName': + case 'stateorprovincename': + case 'state': + case 'province': + case 'provincename': + case 'st': + return 'id-at-stateOrProvinceName'; + case 'id-at-localityname': + case 'localityname': + case 'l': + return 'id-at-localityName'; + case 'id-emailaddress': + case 'emailaddress': + return 'pkcs-9-at-emailAddress'; + case 'id-at-serialnumber': + case 'serialnumber': + return 'id-at-serialNumber'; + case 'id-at-postalcode': + case 'postalcode': + return 'id-at-postalCode'; + case 'id-at-streetaddress': + case 'streetaddress': + return 'id-at-streetAddress'; + case 'id-at-name': + case 'name': + return 'id-at-name'; + case 'id-at-givenname': + case 'givenname': + return 'id-at-givenName'; + case 'id-at-surname': + case 'surname': + case 'sn': + return 'id-at-surname'; + case 'id-at-initials': + case 'initials': + return 'id-at-initials'; + case 'id-at-generationqualifier': + case 'generationqualifier': + return 'id-at-generationQualifier'; + case 'id-at-organizationalunitname': + case 'organizationalunitname': + case 'ou': + return 'id-at-organizationalUnitName'; + case 'id-at-pseudonym': + case 'pseudonym': + return 'id-at-pseudonym'; + case 'id-at-title': + case 'title': + return 'id-at-title'; + case 'id-at-description': + case 'description': + return 'id-at-description'; + case 'id-at-role': + case 'role': + return 'id-at-role'; + case 'id-at-uniqueidentifier': + case 'uniqueidentifier': + case 'x500uniqueidentifier': + return 'id-at-uniqueIdentifier'; + default: + return false; + } + } + + /** + * Set a Distinguished Name property + * + * @param String $propName + * @param Mixed $propValue + * @param String $type optional + * @access public + * @return Boolean + */ + function setDNProp($propName, $propValue, $type = 'utf8String') + { + if (empty($this->dn)) { + $this->dn = array('rdnSequence' => array()); + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return false; + } + + foreach ((array) $propValue as $v) { + if (!is_array($v) && isset($type)) { + $v = array($type => $v); + } + $this->dn['rdnSequence'][] = array( + array( + 'type' => $propName, + 'value'=> $v + ) + ); + } + + return true; + } + + /** + * Remove Distinguished Name properties + * + * @param String $propName + * @access public + */ + function removeDNProp($propName) + { + if (empty($this->dn)) { + return; + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return; + } + + $dn = &$this->dn['rdnSequence']; + $size = count($dn); + for ($i = 0; $i < $size; $i++) { + if ($dn[$i][0]['type'] == $propName) { + unset($dn[$i]); + } + } + + $dn = array_values($dn); + } + + /** + * Get Distinguished Name properties + * + * @param String $propName + * @param Array $dn optional + * @param Boolean $withType optional + * @return Mixed + * @access public + */ + function getDNProp($propName, $dn = NULL, $withType = false) + { + if (!isset($dn)) { + $dn = $this->dn; + } + + if (empty($dn)) { + return false; + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return false; + } + + $dn = $dn['rdnSequence']; + $result = array(); + $asn1 = new File_ASN1(); + for ($i = 0; $i < count($dn); $i++) { + if ($dn[$i][0]['type'] == $propName) { + $v = $dn[$i][0]['value']; + if (!$withType && is_array($v)) { + foreach ($v as $type => $s) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $s = $asn1->convert($s, $type); + if ($s !== false) { + $v = $s; + break; + } + } + } + if (is_array($v)) { + $v = array_pop($v); // Always strip data type. + } + } + $result[] = $v; + } + } + + return $result; + } + + /** + * Set a Distinguished Name + * + * @param Mixed $dn + * @param Boolean $merge optional + * @param String $type optional + * @access public + * @return Boolean + */ + function setDN($dn, $merge = false, $type = 'utf8String') + { + if (!$merge) { + $this->dn = NULL; + } + + if (is_array($dn)) { + if (isset($dn['rdnSequence'])) { + $this->dn = $dn; // No merge here. + return true; + } + + // handles stuff generated by openssl_x509_parse() + foreach ($dn as $prop => $value) { + if (!$this->setDNProp($prop, $value, $type)) { + return false; + } + } + return true; + } + + // handles everything else + $results = preg_split('#((?:^|, *|/)(?:C=|O=|OU=|CN=|L=|ST=|SN=|postalCode=|streetAddress=|emailAddress=|serialNumber=|organizationalUnitName=|title=|description=|role=|x500UniqueIdentifier=))#', $dn, -1, PREG_SPLIT_DELIM_CAPTURE); + for ($i = 1; $i < count($results); $i+=2) { + $prop = trim($results[$i], ', =/'); + $value = $results[$i + 1]; + if (!$this->setDNProp($prop, $value, $type)) { + return false; + } + } + + return true; + } + + /** + * Get the Distinguished Name for a certificates subject + * + * @param Mixed $format optional + * @param Array $dn optional + * @access public + * @return Boolean + */ + function getDN($format = FILE_X509_DN_ARRAY, $dn = NULL) + { + if (!isset($dn)) { + $dn = isset($this->currentCert['tbsCertList']) ? $this->currentCert['tbsCertList']['issuer'] : $this->dn; + } + + switch ((int) $format) { + case FILE_X509_DN_ARRAY: + return $dn; + case FILE_X509_DN_ASN1: + $asn1 = new File_ASN1(); + $asn1->loadOIDs($this->oids); + $filters = array(); + $filters['rdnSequence']['value'] = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $asn1->loadFilters($filters); + return $asn1->encodeDER($dn, $this->Name); + case FILE_X509_DN_OPENSSL: + $dn = $this->getDN(FILE_X509_DN_STRING, $dn); + if ($dn === false) { + return false; + } + $attrs = preg_split('#((?:^|, *|/)[a-z][a-z0-9]*=)#i', $dn, -1, PREG_SPLIT_DELIM_CAPTURE); + $dn = array(); + for ($i = 1; $i < count($attrs); $i += 2) { + $prop = trim($attrs[$i], ', =/'); + $value = $attrs[$i + 1]; + if (!isset($dn[$prop])) { + $dn[$prop] = $value; + } else { + $dn[$prop] = array_merge((array) $dn[$prop], array($value)); + } + } + return $dn; + case FILE_X509_DN_CANON: + // No SEQUENCE around RDNs and all string values normalized as + // trimmed lowercase UTF-8 with all spacing as one blank. + $asn1 = new File_ASN1(); + $asn1->loadOIDs($this->oids); + $filters = array(); + $filters['value'] = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $asn1->loadFilters($filters); + $result = ''; + foreach ($dn['rdnSequence'] as $rdn) { + foreach ($rdn as &$attr) { + if (is_array($attr['value'])) { + foreach ($attr['value'] as $type => $v) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $v = $asn1->convert($v, $type); + if ($v !== false) { + $v = preg_replace('/\s+/', ' ', $v); + $attr['value'] = strtolower(trim($v)); + break; + } + } + } + } + } + $result .= $asn1->encodeDER($rdn, $this->RelativeDistinguishedName); + } + return $result; + case FILE_X509_DN_HASH: + $dn = $this->getDN(FILE_X509_DN_CANON, $dn); + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + $hash = new Crypt_Hash('sha1'); + $hash = $hash->hash($dn); + extract(unpack('Vhash', $hash)); + return strtolower(bin2hex(pack('N', $hash))); + } + + // Defaut is to return a string. + $start = true; + $output = ''; + $asn1 = new File_ASN1(); + foreach ($dn['rdnSequence'] as $field) { + $prop = $field[0]['type']; + $value = $field[0]['value']; + + $delim = ', '; + switch ($prop) { + case 'id-at-countryName': + $desc = 'C='; + break; + case 'id-at-stateOrProvinceName': + $desc = 'ST='; + break; + case 'id-at-organizationName': + $desc = 'O='; + break; + case 'id-at-organizationalUnitName': + $desc = 'OU='; + break; + case 'id-at-commonName': + $desc = 'CN='; + break; + case 'id-at-localityName': + $desc = 'L='; + break; + case 'id-at-surname': + $desc = 'SN='; + break; + case 'id-at-uniqueIdentifier': + $delim = '/'; + $desc = 'x500UniqueIdentifier='; + break; + default: + $delim = '/'; + $desc = preg_replace('#.+-([^-]+)$#', '$1', $prop) . '='; + } + + if (!$start) { + $output.= $delim; + } + if (is_array($value)) { + foreach ($value as $type => $v) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $v = $asn1->convert($v, $type); + if ($v !== false) { + $value = $v; + break; + } + } + } + if (is_array($value)) { + $value = array_pop($value); // Always strip data type. + } + } + $output.= $desc . $value; + $start = false; + } + + return $output; + } + + /** + * Get the Distinguished Name for a certificate/crl issuer + * + * @param Integer $format optional + * @access public + * @return Mixed + */ + function getIssuerDN($format = FILE_X509_DN_ARRAY) + { + switch (true) { + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDN($format, $this->currentCert['tbsCertificate']['issuer']); + case isset($this->currentCert['tbsCertList']): + return $this->getDN($format, $this->currentCert['tbsCertList']['issuer']); + } + + return false; + } + + /** + * Get the Distinguished Name for a certificate/csr subject + * Alias of getDN() + * + * @param Integer $format optional + * @access public + * @return Mixed + */ + function getSubjectDN($format = FILE_X509_DN_ARRAY) + { + switch (true) { + case !empty($this->dn): + return $this->getDN($format); + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDN($format, $this->currentCert['tbsCertificate']['subject']); + case isset($this->currentCert['certificationRequestInfo']): + return $this->getDN($format, $this->currentCert['certificationRequestInfo']['subject']); + } + + return false; + } + + /** + * Get an individual Distinguished Name property for a certificate/crl issuer + * + * @param String $propName + * @param Boolean $withType optional + * @access public + * @return Mixed + */ + function getIssuerDNProp($propName, $withType = false) + { + switch (true) { + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDNProp($propname, $this->currentCert['tbsCertificate']['issuer'], $withType); + case isset($this->currentCert['tbsCertList']): + return $this->getDNProp($propname, $this->currentCert['tbsCertList']['issuer'], $withType); + } + + return false; + } + + /** + * Get an individual Distinguished Name property for a certificate/csr subject + * + * @param String $propName + * @param Boolean $withType optional + * @access public + * @return Mixed + */ + function getSubjectDNProp($propName, $withType = false) + { + switch (true) { + case !empty($this->dn): + return $this->getDNProp($propName, NULL, $withType); + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDNProp($propName, $this->currentCert['tbsCertificate']['subject'], $withType); + case isset($this->currentCert['certificationRequestInfo']): + return $this->getDNProp($propname, $this->currentCert['certificationRequestInfo']['subject'], $withType); + } + + return false; + } + + /** + * Get the certificate chain for the current cert + * + * @access public + * @return Mixed + */ + function getChain() + { + $chain = array($this->currentCert); + + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + if (empty($this->CAs)) { + return $chain; + } + while (true) { + $currentCert = $chain[count($chain) - 1]; + for ($i = 0; $i < count($this->CAs); $i++) { + $ca = $this->CAs[$i]; + if ($currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier', $currentCert); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + if ($currentCert === $ca) { + break 3; + } + $chain[] = $ca; + break 2; + } + } + } + if ($i == count($this->CAs)) { + break; + } + } + foreach ($chain as $key=>$value) { + $chain[$key] = new File_X509(); + $chain[$key]->loadX509($value); + } + return $chain; + } + + /** + * Set public key + * + * Key needs to be a Crypt_RSA object + * + * @param Object $key + * @access public + * @return Boolean + */ + function setPublicKey($key) + { + $this->publicKey = $key; + } + + /** + * Set private key + * + * Key needs to be a Crypt_RSA object + * + * @param Object $key + * @access public + */ + function setPrivateKey($key) + { + $this->privateKey = $key; + } + + /** + * Gets the public key + * + * Returns a Crypt_RSA object or a false. + * + * @access public + * @return Mixed + */ + function getPublicKey() + { + if (isset($this->publicKey)) { + return $this->publicKey; + } + + if (isset($this->currentCert) && is_array($this->currentCert)) { + foreach (array('tbsCertificate/subjectPublicKeyInfo', 'certificationRequestInfo/subjectPKInfo') as $path) { + $keyinfo = $this->_subArray($this->currentCert, $path); + if (!empty($keyinfo)) { + break; + } + } + } + if (empty($keyinfo)) { + return false; + } + + $key = $keyinfo['subjectPublicKey']; + + switch ($keyinfo['algorithm']['algorithm']) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + $publicKey = new Crypt_RSA(); + $publicKey->loadKey($key); + $publicKey->setPublicKey(); + break; + default: + return false; + } + + return $publicKey; + } + + /** + * Load a Certificate Signing Request + * + * @param String $csr + * @access public + * @return Mixed + */ + function loadCSR($csr) + { + if (is_array($csr) && isset($csr['certificationRequestInfo'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + unset($this->signatureSubject); + $this->dn = $csr['certificationRequestInfo']['subject']; + if (!isset($this->dn)) { + return false; + } + + $this->currentCert = $csr; + return $csr; + } + + // see http://tools.ietf.org/html/rfc2986 + + $asn1 = new File_ASN1(); + + $temp = preg_replace('#^(?:[^-].+[\r\n]+)+|-.+-|[\r\n]| #', '', $csr); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + if ($temp != false) { + $csr = $temp; + } + $orig = $csr; + + if ($csr === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($csr); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $csr = $asn1->asn1map($decoded[0], $this->CertificationRequest); + if (!isset($csr) || $csr === false) { + $this->currentCert = false; + return false; + } + + $this->dn = $csr['certificationRequestInfo']['subject']; + $this->_mapInAttributes($csr, 'certificationRequestInfo/attributes', $asn1); + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $algorithm = &$csr['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm']; + $key = &$csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']; + $key = $this->_reformatKey($algorithm, $key); + + switch ($algorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + $this->publicKey = new Crypt_RSA(); + $this->publicKey->loadKey($key); + $this->publicKey->setPublicKey(); + break; + default: + $this->publicKey = NULL; + } + + $this->currentKeyIdentifier = NULL; + $this->currentCert = $csr; + + return $csr; + } + + /** + * Save CSR request + * + * @param Array $csr + * @param Integer $format optional + * @access public + * @return String + */ + function saveCSR($csr, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($csr) || !isset($csr['certificationRequestInfo'])) { + return false; + } + + switch (true) { + case !($algorithm = $this->_subArray($csr, 'certificationRequestInfo/subjectPKInfo/algorithm/algorithm')): + case is_object($csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']); + break; + default: + switch ($algorithm) { + case 'rsaEncryption': + $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'] = + base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']))); + } + } + + $asn1 = new File_ASN1(); + + $asn1->loadOIDs($this->oids); + + $filters = array(); + $filters['certificationRequestInfo']['subject']['rdnSequence']['value'] = + array('type' => FILE_ASN1_TYPE_UTF8_STRING); + + $asn1->loadFilters($filters); + + $this->_mapOutAttributes($csr, 'certificationRequestInfo/attributes', $asn1); + $csr = $asn1->encodeDER($csr, $this->CertificationRequest); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $csr; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN CERTIFICATE REQUEST-----\r\n" . chunk_split(base64_encode($csr), 64) . '-----END CERTIFICATE REQUEST-----'; + } + } + + /** + * Load a SPKAC CSR + * + * SPKAC's are produced by the HTML5 keygen element: + * + * https://developer.mozilla.org/en-US/docs/HTML/Element/keygen + * + * @param String $csr + * @access public + * @return Mixed + */ + function loadSPKAC($csr) + { + if (is_array($csr) && isset($csr['publicKeyAndChallenge'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + unset($this->signatureSubject); + $this->currentCert = $csr; + return $csr; + } + + // see http://www.w3.org/html/wg/drafts/html/master/forms.html#signedpublickeyandchallenge + + $asn1 = new File_ASN1(); + + $temp = preg_replace('#(?:^[^=]+=)|[\r\n\\\]#', '', $csr); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + if ($temp != false) { + $csr = $temp; + } + $orig = $csr; + + if ($csr === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($csr); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $csr = $asn1->asn1map($decoded[0], $this->SignedPublicKeyAndChallenge); + + if (!isset($csr) || $csr === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $algorithm = &$csr['publicKeyAndChallenge']['spki']['algorithm']['algorithm']; + $key = &$csr['publicKeyAndChallenge']['spki']['subjectPublicKey']; + $key = $this->_reformatKey($algorithm, $key); + + switch ($algorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + $this->publicKey = new Crypt_RSA(); + $this->publicKey->loadKey($key); + $this->publicKey->setPublicKey(); + break; + default: + $this->publicKey = NULL; + } + + $this->currentKeyIdentifier = NULL; + $this->currentCert = $csr; + + return $csr; + } + + /** + * Load a Certificate Revocation List + * + * @param String $crl + * @access public + * @return Mixed + */ + function loadCRL($crl) + { + if (is_array($crl) && isset($crl['tbsCertList'])) { + $this->currentCert = $crl; + unset($this->signatureSubject); + return $crl; + } + + $asn1 = new File_ASN1(); + + $temp = preg_replace('#^(?:[^-].+[\r\n]+)+|-.+-|[\r\n]| #', '', $crl); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + if ($temp != false) { + $crl = $temp; + } + $orig = $crl; + + if ($crl === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($crl); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $crl = $asn1->asn1map($decoded[0], $this->CertificateList); + if (!isset($crl) || $crl === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $this->_mapInExtensions($crl, 'tbsCertList/crlExtensions', $asn1); + $rclist = &$this->_subArray($crl,'tbsCertList/revokedCertificates'); + if (is_array($rclist)) { + foreach ($rclist as $i => $extension) { + $this->_mapInExtensions($rclist, "$i/crlEntryExtensions", $asn1); + } + } + + $this->currentKeyIdentifier = NULL; + $this->currentCert = $crl; + + return $crl; + } + + /** + * Save Certificate Revocation List. + * + * @param Array $crl + * @param Integer $format optional + * @access public + * @return String + */ + function saveCRL($crl, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($crl) || !isset($crl['tbsCertList'])) { + return false; + } + + $asn1 = new File_ASN1(); + + $asn1->loadOIDs($this->oids); + + $filters = array(); + $filters['tbsCertList']['issuer']['rdnSequence']['value'] = + $filters['tbsCertList']['signature']['parameters'] = + $filters['signatureAlgorithm']['parameters'] = + array('type' => FILE_ASN1_TYPE_UTF8_STRING); + + if (empty($crl['tbsCertList']['signature']['parameters'])) { + $filters['tbsCertList']['signature']['parameters'] = + array('type' => FILE_ASN1_TYPE_NULL); + } + + if (empty($crl['signatureAlgorithm']['parameters'])) { + $filters['signatureAlgorithm']['parameters'] = + array('type' => FILE_ASN1_TYPE_NULL); + } + + $asn1->loadFilters($filters); + + $this->_mapOutExtensions($crl, 'tbsCertList/crlExtensions', $asn1); + $rclist = &$this->_subArray($crl,'tbsCertList/revokedCertificates'); + if (is_array($rclist)) { + foreach ($rclist as $i => $extension) { + $this->_mapOutExtensions($rclist, "$i/crlEntryExtensions", $asn1); + } + } + + $crl = $asn1->encodeDER($crl, $this->CertificateList); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $crl; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN X509 CRL-----\r\n" . chunk_split(base64_encode($crl), 64) . '-----END X509 CRL-----'; + } + } + + /** + * Sign an X.509 certificate + * + * $issuer's private key needs to be loaded. + * $subject can be either an existing X.509 cert (if you want to resign it), + * a CSR or something with the DN and public key explicitly set. + * + * @param File_X509 $issuer + * @param File_X509 $subject + * @param String $signatureAlgorithm optional + * @access public + * @return Mixed + */ + function sign($issuer, $subject, $signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($issuer->privateKey) || empty($issuer->dn)) { + return false; + } + + if (isset($subject->publicKey) && !($subjectPublicKey = $subject->_formatSubjectPublicKey())) { + return false; + } + + $currentCert = isset($this->currentCert) ? $this->currentCert : NULL; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: NULL; + + if (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertificate'])) { + $this->currentCert = $subject->currentCert; + $this->currentCert['tbsCertificate']['signature']['algorithm'] = + $this->currentCert['signatureAlgorithm']['algorithm'] = + $signatureAlgorithm; + if (!empty($this->startDate)) { + $this->currentCert['tbsCertificate']['validity']['notBefore']['generalTime'] = $this->startDate; + unset($this->currentCert['tbsCertificate']['validity']['notBefore']['utcTime']); + } + if (!empty($this->endDate)) { + $this->currentCert['tbsCertificate']['validity']['notAfter']['generalTime'] = $this->endDate; + unset($this->currentCert['tbsCertificate']['validity']['notAfter']['utcTime']); + } + if (!empty($this->serialNumber)) { + $this->currentCert['tbsCertificate']['serialNumber'] = $this->serialNumber; + } + if (!empty($subject->dn)) { + $this->currentCert['tbsCertificate']['subject'] = $subject->dn; + } + if (!empty($subject->publicKey)) { + $this->currentCert['tbsCertificate']['subjectPublicKeyInfo'] = $subjectPublicKey; + } + $this->removeExtension('id-ce-authorityKeyIdentifier'); + if (isset($subject->domains)) { + $this->removeExtension('id-ce-subjectAltName'); + } + } else if (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertList'])) { + return false; + } else { + if (!isset($subject->publicKey)) { + return false; + } + + $startDate = !empty($this->startDate) ? $this->startDate : @date('D, d M y H:i:s O'); + $endDate = !empty($this->endDate) ? $this->endDate : @date('D, d M y H:i:s O', strtotime('+1 year')); + $serialNumber = !empty($this->serialNumber) ? $this->serialNumber : new Math_BigInteger(); + + $this->currentCert = array( + 'tbsCertificate' => + array( + 'version' => 'v3', + 'serialNumber' => $serialNumber, // $this->setserialNumber() + 'signature' => array('algorithm' => $signatureAlgorithm), + 'issuer' => false, // this is going to be overwritten later + 'validity' => array( + 'notBefore' => array('generalTime' => $startDate), // $this->setStartDate() + 'notAfter' => array('generalTime' => $endDate) // $this->setEndDate() + ), + 'subject' => $subject->dn, + 'subjectPublicKeyInfo' => $subjectPublicKey + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + + // Copy extensions from CSR. + $csrexts = $subject->getAttribute('pkcs-9-at-extensionRequest', 0); + + if (!empty($csrexts)) { + $this->currentCert['tbsCertificate']['extensions'] = $csrexts; + } + } + + $this->currentCert['tbsCertificate']['issuer'] = $issuer->dn; + + if (isset($issuer->currentKeyIdentifier)) { + $this->setExtension('id-ce-authorityKeyIdentifier', array( + //'authorityCertIssuer' => array( + // array( + // 'directoryName' => $issuer->dn + // ) + //), + 'keyIdentifier' => $issuer->currentKeyIdentifier + ) + ); + //$extensions = &$this->currentCert['tbsCertificate']['extensions']; + //if (isset($issuer->serialNumber)) { + // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; + //} + //unset($extensions); + } + + if (isset($subject->currentKeyIdentifier)) { + $this->setExtension('id-ce-subjectKeyIdentifier', $subject->currentKeyIdentifier); + } + + if (isset($subject->domains) && count($subject->domains) > 1) { + $this->setExtension('id-ce-subjectAltName', + array_map(array('File_X509', '_dnsName'), $subject->domains)); + } + + if ($this->caFlag) { + $keyUsage = $this->getExtension('id-ce-keyUsage'); + if (!$keyUsage) { + $keyUsage = array(); + } + + $this->setExtension('id-ce-keyUsage', + array_values(array_unique(array_merge($keyUsage, array('cRLSign', 'keyCertSign')))) + ); + + $basicConstraints = $this->getExtension('id-ce-basicConstraints'); + if (!$basicConstraints) { + $basicConstraints = array(); + } + + $this->setExtension('id-ce-basicConstraints', + array_unique(array_merge(array('cA' => true), $basicConstraints)), true); + + if (!isset($subject->currentKeyIdentifier)) { + $this->setExtension('id-ce-subjectKeyIdentifier', base64_encode($this->computeKeyIdentifier($this->currentCert)), false, false); + } + } + + // resync $this->signatureSubject + // save $tbsCertificate in case there are any File_ASN1_Element objects in it + $tbsCertificate = $this->currentCert['tbsCertificate']; + $this->loadX509($this->saveX509($this->currentCert)); + + $result = $this->_sign($issuer->privateKey, $signatureAlgorithm); + $result['tbsCertificate'] = $tbsCertificate; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * Sign a CSR + * + * @access public + * @return Mixed + */ + function signCSR($signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($this->privateKey) || empty($this->dn)) { + return false; + } + + $origPublicKey = $this->publicKey; + $class = get_class($this->privateKey); + $this->publicKey = new $class(); + $this->publicKey->loadKey($this->privateKey->getPublicKey()); + $this->publicKey->setPublicKey(); + if (!($publicKey = $this->_formatSubjectPublicKey())) { + return false; + } + $this->publicKey = $origPublicKey; + + $currentCert = isset($this->currentCert) ? $this->currentCert : NULL; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: NULL; + + if (isset($this->currentCert) && is_array($this->currentCert) && isset($this->currentCert['certificationRequestInfo'])) { + $this->currentCert['signatureAlgorithm']['algorithm'] = + $signatureAlgorithm; + if (!empty($this->dn)) { + $this->currentCert['certificationRequestInfo']['subject'] = $this->dn; + } + $this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey; + } else { + $this->currentCert = array( + 'certificationRequestInfo' => + array( + 'version' => 'v1', + 'subject' => $this->dn, + 'subjectPKInfo' => $publicKey + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + } + + // resync $this->signatureSubject + // save $certificationRequestInfo in case there are any File_ASN1_Element objects in it + $certificationRequestInfo = $this->currentCert['certificationRequestInfo']; + $this->loadCSR($this->saveCSR($this->currentCert)); + + $result = $this->_sign($this->privateKey, $signatureAlgorithm); + $result['certificationRequestInfo'] = $certificationRequestInfo; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * Sign a CRL + * + * $issuer's private key needs to be loaded. + * + * @param File_X509 $issuer + * @param File_X509 $crl + * @param String $signatureAlgorithm optional + * @access public + * @return Mixed + */ + function signCRL($issuer, $crl, $signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($issuer->privateKey) || empty($issuer->dn)) { + return false; + } + + $currentCert = isset($this->currentCert) ? $this->currentCert : NULL; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject : NULL; + $thisUpdate = !empty($this->startDate) ? $this->startDate : @date('D, d M y H:i:s O'); + + if (isset($crl->currentCert) && is_array($crl->currentCert) && isset($crl->currentCert['tbsCertList'])) { + $this->currentCert = $crl->currentCert; + $this->currentCert['tbsCertList']['signature']['algorithm'] = $signatureAlgorithm; + $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm; + } else { + $this->currentCert = array( + 'tbsCertList' => + array( + 'version' => 'v2', + 'signature' => array('algorithm' => $signatureAlgorithm), + 'issuer' => false, // this is going to be overwritten later + 'thisUpdate' => array('generalTime' => $thisUpdate) // $this->setStartDate() + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + } + + $tbsCertList = &$this->currentCert['tbsCertList']; + $tbsCertList['issuer'] = $issuer->dn; + $tbsCertList['thisUpdate'] = array('generalTime' => $thisUpdate); + + if (!empty($this->endDate)) { + $tbsCertList['nextUpdate'] = array('generalTime' => $this->endDate); // $this->setEndDate() + } else { + unset($tbsCertList['nextUpdate']); + } + + if (!empty($this->serialNumber)) { + $crlNumber = $this->serialNumber; + } + else { + $crlNumber = $this->getExtension('id-ce-cRLNumber'); + $crlNumber = $crlNumber !== false ? $crlNumber->add(new Math_BigInteger(1)) : NULL; + } + + $this->removeExtension('id-ce-authorityKeyIdentifier'); + $this->removeExtension('id-ce-issuerAltName'); + + // Be sure version >= v2 if some extension found. + $version = isset($tbsCertList['version']) ? $tbsCertList['version'] : 0; + if (!$version) { + if (!empty($tbsCertList['crlExtensions'])) { + $version = 1; // v2. + } + elseif (!empty($tbsCertList['revokedCertificates'])) { + foreach ($tbsCertList['revokedCertificates'] as $cert) { + if (!empty($cert['crlEntryExtensions'])) { + $version = 1; // v2. + } + } + } + + if ($version) { + $tbsCertList['version'] = $version; + } + } + + // Store additional extensions. + if (!empty($tbsCertList['version'])) { // At least v2. + if (!empty($crlNumber)) { + $this->setExtension('id-ce-cRLNumber', $crlNumber); + } + + if (isset($issuer->currentKeyIdentifier)) { + $this->setExtension('id-ce-authorityKeyIdentifier', array( + //'authorityCertIssuer' => array( + // array( + // 'directoryName' => $issuer->dn + // ) + //), + 'keyIdentifier' => $issuer->currentKeyIdentifier + ) + ); + //$extensions = &$tbsCertList['crlExtensions']; + //if (isset($issuer->serialNumber)) { + // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; + //} + //unset($extensions); + } + + $issuerAltName = $this->getExtension('id-ce-subjectAltName', $issuer->currentCert); + + if ($issuerAltName !== false) { + $this->setExtension('id-ce-issuerAltName', $issuerAltName); + } + } + + if (empty($tbsCertList['revokedCertificates'])) { + unset($tbsCertList['revokedCertificates']); + } + + unset($tbsCertList); + + // resync $this->signatureSubject + // save $tbsCertList in case there are any File_ASN1_Element objects in it + $tbsCertList = $this->currentCert['tbsCertList']; + $this->loadCRL($this->saveCRL($this->currentCert)); + + $result = $this->_sign($issuer->privateKey, $signatureAlgorithm); + $result['tbsCertList'] = $tbsCertList; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * X.509 certificate signing helper function. + * + * @param Object $key + * @param File_X509 $subject + * @param String $signatureAlgorithm + * @access public + * @return Mixed + */ + function _sign($key, $signatureAlgorithm) + { + switch (strtolower(get_class($key))) { + case 'crypt_rsa': + switch ($signatureAlgorithm) { + case 'md2WithRSAEncryption': + case 'md5WithRSAEncryption': + case 'sha1WithRSAEncryption': + case 'sha224WithRSAEncryption': + case 'sha256WithRSAEncryption': + case 'sha384WithRSAEncryption': + case 'sha512WithRSAEncryption': + $key->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm)); + $key->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + + $this->currentCert['signature'] = base64_encode("\0" . $key->sign($this->signatureSubject)); + return $this->currentCert; + } + default: + return false; + } + } + + /** + * Set certificate start date + * + * @param String $date + * @access public + */ + function setStartDate($date) + { + $this->startDate = @date('D, d M y H:i:s O', @strtotime($date)); + } + + /** + * Set certificate end date + * + * @param String $date + * @access public + */ + function setEndDate($date) + { + /* + To indicate that a certificate has no well-defined expiration date, + the notAfter SHOULD be assigned the GeneralizedTime value of + 99991231235959Z. + + -- http://tools.ietf.org/html/rfc5280#section-4.1.2.5 + */ + if (strtolower($date) == 'lifetime') { + $temp = '99991231235959Z'; + $asn1 = new File_ASN1(); + $temp = chr(FILE_ASN1_TYPE_GENERALIZED_TIME) . $asn1->_encodeLength(strlen($temp)) . $temp; + $this->endDate = new File_ASN1_Element($temp); + } else { + $this->endDate = @date('D, d M y H:i:s O', @strtotime($date)); + } + } + + /** + * Set Serial Number + * + * @param String $serial + * @param $base optional + * @access public + */ + function setSerialNumber($serial, $base = -256) + { + $this->serialNumber = new Math_BigInteger($serial, $base); + } + + /** + * Turns the certificate into a certificate authority + * + * @access public + */ + function makeCA() + { + $this->caFlag = true; + } + + /** + * Get a reference to a subarray + * + * @param array $root + * @param String $path absolute path with / as component separator + * @param Boolean $create optional + * @access private + * @return array item ref or false + */ + function &_subArray(&$root, $path, $create = false) + { + $false = false; + + if (!is_array($root)) { + return $false; + } + + foreach (explode('/', $path) as $i) { + if (!is_array($root)) { + return $false; + } + + if (!isset($root[$i])) { + if (!$create) { + return $false; + } + + $root[$i] = array(); + } + + $root = &$root[$i]; + } + + return $root; + } + + /** + * Get a reference to an extension subarray + * + * @param array $root + * @param String $path optional absolute path with / as component separator + * @param Boolean $create optional + * @access private + * @return array ref or false + */ + function &_extensions(&$root, $path = NULL, $create = false) + { + if (!isset($root)) { + $root = $this->currentCert; + } + + switch (true) { + case !empty($path): + case !is_array($root): + break; + case isset($root['tbsCertificate']): + $path = 'tbsCertificate/extensions'; + break; + case isset($root['tbsCertList']): + $path = 'tbsCertList/crlExtensions'; + break; + case isset($root['certificationRequestInfo']): + $pth = 'certificationRequestInfo/attributes'; + $attributes = &$this->_subArray($root, $pth, $create); + + if (is_array($attributes)) { + foreach ($attributes as $key => $value) { + if ($value['type'] == 'pkcs-9-at-extensionRequest') { + $path = "$pth/$key/value/0"; + break 2; + } + } + if ($create) { + $key = count($attributes); + $attributes[] = array('type' => 'pkcs-9-at-extensionRequest', 'value' => array()); + $path = "$pth/$key/value/0"; + } + } + break; + } + + $extensions = &$this->_subArray($root, $path, $create); + + if (!is_array($extensions)) { + $false = false; + return $false; + } + + return $extensions; + } + + /** + * Remove an Extension + * + * @param String $id + * @param String $path optional + * @access private + * @return Boolean + */ + function _removeExtension($id, $path = NULL) + { + $extensions = &$this->_extensions($this->currentCert, $path); + + if (!is_array($extensions)) { + return false; + } + + $result = false; + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + unset($extensions[$key]); + $result = true; + } + } + + $extensions = array_values($extensions); + return $result; + } + + /** + * Get an Extension + * + * Returns the extension if it exists and false if not + * + * @param String $id + * @param Array $cert optional + * @param String $path optional + * @access private + * @return Mixed + */ + function _getExtension($id, $cert = NULL, $path = NULL) + { + $extensions = $this->_extensions($cert, $path); + + if (!is_array($extensions)) { + return false; + } + + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + return $value['extnValue']; + } + } + + return false; + } + + /** + * Returns a list of all extensions in use + * + * @param array $cert optional + * @param String $path optional + * @access private + * @return Array + */ + function _getExtensions($cert = NULL, $path = NULL) + { + $exts = $this->_extensions($cert, $path); + $extensions = array(); + + if (is_array($exts)) { + foreach ($exts as $extension) { + $extensions[] = $extension['extnId']; + } + } + + return $extensions; + } + + /** + * Set an Extension + * + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @param String $path optional + * @access private + * @return Boolean + */ + function _setExtension($id, $value, $critical = false, $replace = true, $path = NULL) + { + $extensions = &$this->_extensions($this->currentCert, $path, true); + + if (!is_array($extensions)) { + return false; + } + + $newext = array('extnId' => $id, 'critical' => $critical, 'extnValue' => $value); + + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + if (!$replace) { + return false; + } + + $extensions[$key] = $newext; + return true; + } + } + + $extensions[] = $newext; + return true; + } + + /** + * Remove a certificate, CSR or CRL Extension + * + * @param String $id + * @access public + * @return Boolean + */ + function removeExtension($id) + { + return $this->_removeExtension($id); + } + + /** + * Get a certificate, CSR or CRL Extension + * + * Returns the extension if it exists and false if not + * + * @param String $id + * @param Array $cert optional + * @access public + * @return Mixed + */ + function getExtension($id, $cert = NULL) + { + return $this->_getExtension($id, $cert); + } + + /** + * Returns a list of all extensions in use in certificate, CSR or CRL + * + * @param array $cert optional + * @access public + * @return Array + */ + function getExtensions($cert = NULL) + { + return $this->_getExtensions($cert); + } + + /** + * Set a certificate, CSR or CRL Extension + * + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @access public + * @return Boolean + */ + function setExtension($id, $value, $critical = false, $replace = true) + { + return $this->_setExtension($id, $value, $critical, $replace); + } + + /** + * Remove a CSR attribute. + * + * @param String $id + * @param Integer $disposition optional + * @access public + * @return Boolean + */ + function removeAttribute($id, $disposition = FILE_X509_ATTR_ALL) + { + $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes'); + + if (!is_array($attributes)) { + return false; + } + + $result = false; + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + case $disposition == FILE_X509_ATTR_REPLACE: + return false; + case $disposition >= $n: + $disposition -= $n; + break; + case $disposition == FILE_X509_ATTR_ALL: + case $n == 1: + unset($attributes[$key]); + $result = true; + break; + default: + unset($attributes[$key]['value'][$disposition]); + $attributes[$key]['value'] = array_values($attributes[$key]['value']); + $result = true; + break; + } + if ($result && $disposition != FILE_X509_ATTR_ALL) { + break; + } + } + } + + $attributes = array_values($attributes); + return $result; + } + + /** + * Get a CSR attribute + * + * Returns the attribute if it exists and false if not + * + * @param String $id + * @param Integer $disposition optional + * @param Array $csr optional + * @access public + * @return Mixed + */ + function getAttribute($id, $disposition = FILE_X509_ATTR_ALL, $csr = NULL) + { + if (empty($csr)) { + $csr = $this->currentCert; + } + + $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes'); + + if (!is_array($attributes)) { + return false; + } + + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + case $disposition == FILE_X509_ATTR_REPLACE: + return false; + case $disposition == FILE_X509_ATTR_ALL: + return $attribute['value']; + case $disposition >= $n: + $disposition -= $n; + break; + default: + return $attribute['value'][$disposition]; + } + } + } + + return false; + } + + /** + * Returns a list of all CSR attributes in use + * + * @param array $csr optional + * @access public + * @return Array + */ + function getAttributes($csr = NULL) + { + if (empty($csr)) { + $csr = $this->currentCert; + } + + $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes'); + $attrs = array(); + + if (is_array($attributes)) { + foreach ($attributes as $attribute) { + $attrs[] = $attribute['type']; + } + } + + return $attrs; + } + + /** + * Set a CSR attribute + * + * @param String $id + * @param Mixed $value + * @param Boolean $disposition optional + * @access public + * @return Boolean + */ + function setAttribute($id, $value, $disposition = FILE_X509_ATTR_ALL) + { + $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes', true); + + if (!is_array($attributes)) { + return false; + } + + switch ($disposition) { + case FILE_X509_ATTR_REPLACE: + $disposition = FILE_X509_ATTR_APPEND; + case FILE_X509_ATTR_ALL: + $this->removeAttribute($id); + break; + } + + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + $last = $key; + break; + case $disposition >= $n; + $disposition -= $n; + break; + default: + $attributes[$key]['value'][$disposition] = $value; + return true; + } + } + } + + switch (true) { + case $disposition >= 0: + return false; + case isset($last): + $attributes[$last]['value'][] = $value; + break; + default: + $attributes[] = array('type' => $id, 'value' => $disposition == FILE_X509_ATTR_ALL ? $value: array($value)); + break; + } + + return true; + } + + /** + * Sets the subject key identifier + * + * This is used by the id-ce-authorityKeyIdentifier and the id-ce-subjectKeyIdentifier extensions. + * + * @param String $value + * @access public + */ + function setKeyIdentifier($value) + { + if (empty($value)) { + unset($this->currentKeyIdentifier); + } else { + $this->currentKeyIdentifier = base64_encode($value); + } + } + + /** + * Compute a public key identifier. + * + * Although key identifiers may be set to any unique value, this function + * computes key identifiers from public key according to the two + * recommended methods (4.2.1.2 RFC 3280). + * Highly polymorphic: try to accept all possible forms of key: + * - Key object + * - File_X509 object with public or private key defined + * - Certificate or CSR array + * - File_ASN1_Element object + * - PEM or DER string + * + * @param Mixed $key optional + * @param Integer $method optional + * @access public + * @return String binary key identifier + */ + function computeKeyIdentifier($key = NULL, $method = 1) + { + if (is_null($key)) { + $key = $this; + } + + switch (true) { + case is_string($key): + break; + case is_array($key) && isset($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']): + return $this->computeKeyIdentifier($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], $method); + case is_array($key) && isset($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']): + return $this->computeKeyIdentifier($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'], $method); + case !is_object($key): + return false; + case strtolower(get_class($key)) == 'file_asn1_element': + $asn1 = new File_ASN1(); + $decoded = $asn1->decodeBER($cert); + if (empty($decoded)) { + return false; + } + $key = $asn1->asn1map($decoded[0], array('type' => FILE_ASN1_TYPE_BIT_STRING)); + break; + case strtolower(get_class($key)) == 'file_x509': + if (isset($key->publicKey)) { + return $this->computeKeyIdentifier($key->publicKey, $method); + } + if (isset($key->privateKey)) { + return $this->computeKeyIdentifier($key->privateKey, $method); + } + if (isset($key->currentCert['tbsCertificate']) || isset($key->currentCert['certificationRequestInfo'])) { + return $this->computeKeyIdentifier($key->currentCert, $method); + } + return false; + default: // Should be a key object (i.e.: Crypt_RSA). + $key = $key->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW); + break; + } + + // If in PEM format, convert to binary. + if (preg_match('#^-----BEGIN #', $key)) { + $key = base64_decode(preg_replace('#-.+-|[\r\n]#', '', $key)); + } + + // Now we have the key string: compute its sha-1 sum. + if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); + } + $hash = new Crypt_Hash('sha1'); + $hash = $hash->hash($key); + + if ($method == 2) { + $hash = substr($hash, -8); + $hash[0] = chr((ord($hash[0]) & 0x0F) | 0x40); + } + + return $hash; + } + + /** + * Format a public key as appropriate + * + * @access private + * @return Array + */ + function _formatSubjectPublicKey() + { + if (!isset($this->publicKey) || !is_object($this->publicKey)) { + return false; + } + + switch (strtolower(get_class($this->publicKey))) { + case 'crypt_rsa': + // the following two return statements do the same thing. i dunno.. i just prefer the later for some reason. + // the former is a good example of how to do fuzzing on the public key + //return new File_ASN1_Element(base64_decode(preg_replace('#-.+-|[\r\n]#', '', $this->publicKey->getPublicKey()))); + return array( + 'algorithm' => array('algorithm' => 'rsaEncryption'), + 'subjectPublicKey' => $this->publicKey->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW) + ); + default: + return false; + } + } + + /** + * Set the domain name's which the cert is to be valid for + * + * @access public + * @return Array + */ + function setDomain() + { + $this->domains = func_get_args(); + $this->removeDNProp('id-at-commonName'); + $this->setDNProp('id-at-commonName', $this->domains[0]); + } + + /** + * Helper function to build domain array + * + * @access private + * @param String $domain + * @return Array + */ + function _dnsName($domain) + { + return array('dNSName' => $domain); + } + + /** + * Get the index of a revoked certificate. + * + * @param array $rclist + * @param String $serial + * @param Boolean $create optional + * @access private + * @return Integer or false + */ + function _revokedCertificate(&$rclist, $serial, $create = false) + { + $serial = new Math_BigInteger($serial); + + foreach ($rclist as $i => $rc) { + if (!($serial->compare($rc['userCertificate']))) { + return $i; + } + } + + if (!$create) { + return false; + } + + $i = count($rclist); + $rclist[] = array('userCertificate' => $serial, + 'revocationDate' => array('generalTime' => @date('D, d M y H:i:s O'))); + return $i; + } + + /** + * Revoke a certificate. + * + * @param String $serial + * @param String $date optional + * @access public + * @return Boolean + */ + function revoke($serial, $date = NULL) + { + if (isset($this->currentCert['tbsCertList'])) { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) { + if ($this->_revokedCertificate($rclist, $serial) === false) { // If not yet revoked + if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) { + + if (!empty($date)) { + $rclist[$i]['revocationDate'] = array('generalTime' => $date); + } + + return true; + } + } + } + } + + return false; + } + + /** + * Unrevoke a certificate. + * + * @param String $serial + * @access public + * @return Boolean + */ + function unrevoke($serial) + { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + unset($rclist[$i]); + $rclist = array_values($rclist); + return true; + } + } + + return false; + } + + /** + * Get a revoked certificate. + * + * @param String $serial + * @access public + * @return Mixed + */ + function getRevoked($serial) + { + if (is_array($rclist = $this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $rclist[$i]; + } + } + + return false; + } + + /** + * List revoked certificates + * + * @param array $crl optional + * @access public + * @return array + */ + function listRevoked($crl = NULL) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (!isset($crl['tbsCertList'])) { + return false; + } + + $result = array(); + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + foreach ($rclist as $rc) { + $result[] = $rc['userCertificate']->toString(); + } + } + + return $result; + } + + /** + * Remove a Revoked Certificate Extension + * + * @param String $serial + * @param String $id + * @access public + * @return Boolean + */ + function removeRevokedCertificateExtension($serial, $id) + { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_removeExtension($id, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Get a Revoked Certificate Extension + * + * Returns the extension if it exists and false if not + * + * @param String $serial + * @param String $id + * @param Array $crl optional + * @access public + * @return Mixed + */ + function getRevokedCertificateExtension($serial, $id, $crl = NULL) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_getExtension($id, $crl, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Returns a list of all extensions in use for a given revoked certificate + * + * @param String $serial + * @param array $crl optional + * @access public + * @return Array + */ + function getRevokedCertificateExtensions($serial, $crl = NULL) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_getExtensions($crl, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Set a Revoked Certificate Extension + * + * @param String $serial + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @access public + * @return Boolean + */ + function setRevokedCertificateExtension($serial, $id, $value, $critical = false, $replace = true) + { + if (isset($this->currentCert['tbsCertList'])) { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) { + if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) { + return $this->_setExtension($id, $value, $critical, $replace, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + } + + return false; + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Math/BigInteger.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Math/BigInteger.php new file mode 100644 index 0000000000000000000000000000000000000000..d048cb032c5974e0c4fe9048d9a52de7bd46d3ea --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Math/BigInteger.php @@ -0,0 +1,3633 @@ +> and << cannot be used, nor can the modulo operator %, + * which only supports integers. Although this fact will slow this library down, the fact that such a high + * base is being used should more than compensate. + * + * When PHP version 6 is officially released, we'll be able to use 64-bit integers. This should, once again, + * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition / + * subtraction). + * + * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie. + * (new Math_BigInteger(pow(2, 26)))->value = array(0, 1) + * + * Useful resources are as follows: + * + * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} + * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} + * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip + * + * Here's an example of how to use this library: + * + * add($b); + * + * echo $c->toString(); // outputs 5 + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Math + * @package Math_BigInteger + * @author Jim Wigginton + * @copyright MMVI Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: BigInteger.php,v 1.33 2010/03/22 22:32:03 terrafrost Exp $ + * @link http://pear.php.net/package/Math_BigInteger + */ + +/**#@+ + * Reduction constants + * + * @access private + * @see Math_BigInteger::_reduce() + */ +/** + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_prepMontgomery() + */ +define('MATH_BIGINTEGER_MONTGOMERY', 0); +/** + * @see Math_BigInteger::_barrett() + */ +define('MATH_BIGINTEGER_BARRETT', 1); +/** + * @see Math_BigInteger::_mod2() + */ +define('MATH_BIGINTEGER_POWEROF2', 2); +/** + * @see Math_BigInteger::_remainder() + */ +define('MATH_BIGINTEGER_CLASSIC', 3); +/** + * @see Math_BigInteger::__clone() + */ +define('MATH_BIGINTEGER_NONE', 4); +/**#@-*/ + +/**#@+ + * Array constants + * + * Rather than create a thousands and thousands of new Math_BigInteger objects in repeated function calls to add() and + * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them. + * + * @access private + */ +/** + * $result[MATH_BIGINTEGER_VALUE] contains the value. + */ +define('MATH_BIGINTEGER_VALUE', 0); +/** + * $result[MATH_BIGINTEGER_SIGN] contains the sign. + */ +define('MATH_BIGINTEGER_SIGN', 1); +/**#@-*/ + +/**#@+ + * @access private + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_barrett() + */ +/** + * Cache constants + * + * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid. + */ +define('MATH_BIGINTEGER_VARIABLE', 0); +/** + * $cache[MATH_BIGINTEGER_DATA] contains the cached data. + */ +define('MATH_BIGINTEGER_DATA', 1); +/**#@-*/ + +/**#@+ + * Mode constants. + * + * @access private + * @see Math_BigInteger::Math_BigInteger() + */ +/** + * To use the pure-PHP implementation + */ +define('MATH_BIGINTEGER_MODE_INTERNAL', 1); +/** + * To use the BCMath library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_BCMATH', 2); +/** + * To use the GMP library + * + * (if present; otherwise, either the BCMath or the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_GMP', 3); +/**#@-*/ + +/** + * The largest digit that may be used in addition / subtraction + * + * (we do pow(2, 52) instead of using 4503599627370496, directly, because some PHP installations + * will truncate 4503599627370496) + * + * @access private + */ +define('MATH_BIGINTEGER_MAX_DIGIT52', pow(2, 52)); + +/** + * Karatsuba Cutoff + * + * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? + * + * @access private + */ +define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 25); + +/** + * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 + * numbers. + * + * @author Jim Wigginton + * @version 1.0.0RC4 + * @access public + * @package Math_BigInteger + */ +class Math_BigInteger { + /** + * Holds the BigInteger's value. + * + * @var Array + * @access private + */ + var $value; + + /** + * Holds the BigInteger's magnitude. + * + * @var Boolean + * @access private + */ + var $is_negative = false; + + /** + * Random number generator function + * + * @see setRandomGenerator() + * @access private + */ + var $generator = 'mt_rand'; + + /** + * Precision + * + * @see setPrecision() + * @access private + */ + var $precision = -1; + + /** + * Precision Bitmask + * + * @see setPrecision() + * @access private + */ + var $bitmask = false; + + /** + * Mode independant value used for serialization. + * + * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for + * a variable that'll be serializable regardless of whether or not extensions are being used. Unlike $this->value, + * however, $this->hex is only calculated when $this->__sleep() is called. + * + * @see __sleep() + * @see __wakeup() + * @var String + * @access private + */ + var $hex; + + /** + * Converts base-2, base-10, base-16, and binary strings (eg. base-256) to BigIntegers. + * + * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using + * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @param optional $x base-10 number or base-$base number if $base set. + * @param optional integer $base + * @return Math_BigInteger + * @access public + */ + function Math_BigInteger($x = 0, $base = 10) + { + if ( !defined('MATH_BIGINTEGER_MODE') ) { + switch (true) { + case extension_loaded('gmp'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP); + break; + case extension_loaded('bcmath'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH); + break; + default: + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); + } + } + + if (function_exists('openssl_public_encrypt') && !defined('MATH_BIGINTEGER_OPENSSL_DISABLE') && !defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) { + define('MATH_BIGINTEGER_OPENSSL_ENABLED', true); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (is_resource($x) && get_resource_type($x) == 'GMP integer') { + $this->value = $x; + return; + } + $this->value = gmp_init(0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $this->value = '0'; + break; + default: + $this->value = array(); + } + + // '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48 + // '0' is the only value like this per http://php.net/empty + if (empty($x) && (abs($base) != 256 || $x !== '0')) { + return; + } + + switch ($base) { + case -256: + if (ord($x[0]) & 0x80) { + $x = ~$x; + $this->is_negative = true; + } + case 256: + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $sign = $this->is_negative ? '-' : ''; + $this->value = gmp_init($sign . '0x' . bin2hex($x)); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // round $len to the nearest 4 (thanks, DavidMJ!) + $len = (strlen($x) + 3) & 0xFFFFFFFC; + + $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); + + for ($i = 0; $i < $len; $i+= 4) { + $this->value = bcmul($this->value, '4294967296', 0); // 4294967296 == 2**32 + $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3])), 0); + } + + if ($this->is_negative) { + $this->value = '-' . $this->value; + } + + break; + // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) + default: + while (strlen($x)) { + $this->value[] = $this->_bytes2int($this->_base256_rshift($x, 26)); + } + } + + if ($this->is_negative) { + if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) { + $this->is_negative = false; + } + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 16: + case -16: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); + + $is_negative = false; + if ($base < 0 && hexdec($x[0]) >= 8) { + $this->is_negative = $is_negative = true; + $x = bin2hex(~pack('H*', $x)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; + $this->value = gmp_init($temp); + $this->is_negative = false; + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; + $this->is_negative = false; + break; + default: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $temp->value; + } + + if ($is_negative) { + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 10: + case -10: + $x = preg_replace('#^(-?[0-9]*).*#', '$1', $x); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $this->value = gmp_init($x); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different + // results then doing it on '-1' does (modInverse does $x[0]) + $this->value = (string) $x; + break; + default: + $temp = new Math_BigInteger(); + + // array(10000000) is 10**7 in base-2**26. 10**7 is the closest to 2**26 we can get without passing it. + $multiplier = new Math_BigInteger(); + $multiplier->value = array(10000000); + + if ($x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = str_pad($x, strlen($x) + (6 * strlen($x)) % 7, 0, STR_PAD_LEFT); + + while (strlen($x)) { + $temp = $temp->multiply($multiplier); + $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, 7)), 256)); + $x = substr($x, 7); + } + + $this->value = $temp->value; + } + break; + case 2: // base-2 support originally implemented by Lluis Pamies - thanks! + case -2: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^([01]*).*#', '$1', $x); + $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT); + + $str = '0x'; + while (strlen($x)) { + $part = substr($x, 0, 4); + $str.= dechex(bindec($part)); + $x = substr($x, 4); + } + + if ($this->is_negative) { + $str = '-' . $str; + } + + $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16 + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + + break; + default: + // base not supported, so we'll let $this == 0 + } + } + + /** + * Converts a BigInteger to a byte string (eg. base-256). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBytes(); // outputs chr(65) + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toBytes($twos_compliment = false) + { + if ($twos_compliment) { + $comparison = $this->compare(new Math_BigInteger()); + if ($comparison == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy(); + $bytes = $temp->toBytes(); + + if (empty($bytes)) { // eg. if the number we're trying to convert is -1 + $bytes = chr(0); + } + + if (ord($bytes[0]) & 0x80) { + $bytes = chr(0) . $bytes; + } + + return $comparison < 0 ? ~$bytes : $bytes; + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (gmp_cmp($this->value, gmp_init(0)) == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = gmp_strval(gmp_abs($this->value), 16); + $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp; + $temp = pack('H*', $temp); + + return $this->precision > 0 ? + substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($temp, chr(0)); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $value = ''; + $current = $this->value; + + if ($current[0] == '-') { + $current = substr($current, 1); + } + + while (bccomp($current, '0', 0) > 0) { + $temp = bcmod($current, '16777216'); + $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value; + $current = bcdiv($current, '16777216', 0); + } + + return $this->precision > 0 ? + substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($value, chr(0)); + } + + if (!count($this->value)) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + $result = $this->_int2bytes($this->value[count($this->value) - 1]); + + $temp = $this->copy(); + + for ($i = count($temp->value) - 2; $i >= 0; --$i) { + $temp->_base256_lshift($result, 26); + $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT); + } + + return $this->precision > 0 ? + str_pad(substr($result, -(($this->precision + 7) >> 3)), ($this->precision + 7) >> 3, chr(0), STR_PAD_LEFT) : + $result; + } + + /** + * Converts a BigInteger to a hex string (eg. base-16)). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toHex(); // outputs '41' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toHex($twos_compliment = false) + { + return bin2hex($this->toBytes($twos_compliment)); + } + + /** + * Converts a BigInteger to a bit string (eg. base-2). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBits(); // outputs '1000001' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**2 + */ + function toBits($twos_compliment = false) + { + $hex = $this->toHex($twos_compliment); + $bits = ''; + for ($i = strlen($hex) - 8, $start = strlen($hex) & 7; $i >= $start; $i-=8) { + $bits = str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT) . $bits; + } + if ($start) { // hexdec('') == 0 + $bits = str_pad(decbin(hexdec(substr($hex, 0, $start))), 8, '0', STR_PAD_LEFT) . $bits; + } + $result = $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0'); + + if ($twos_compliment && $this->compare(new Math_BigInteger()) > 0 && $this->precision <= 0) { + return '0' . $result; + } + + return $result; + } + + /** + * Converts a BigInteger to a base-10 number. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @return String + * @access public + * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) + */ + function toString() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_strval($this->value); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return '0'; + } + + return ltrim($this->value, '0'); + } + + if (!count($this->value)) { + return '0'; + } + + $temp = $this->copy(); + $temp->is_negative = false; + + $divisor = new Math_BigInteger(); + $divisor->value = array(10000000); // eg. 10**7 + $result = ''; + while (count($temp->value)) { + list($temp, $mod) = $temp->divide($divisor); + $result = str_pad(isset($mod->value[0]) ? $mod->value[0] : '', 7, '0', STR_PAD_LEFT) . $result; + } + $result = ltrim($result, '0'); + if (empty($result)) { + $result = '0'; + } + + if ($this->is_negative) { + $result = '-' . $result; + } + + return $result; + } + + /** + * Copy an object + * + * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee + * that all objects are passed by value, when appropriate. More information can be found here: + * + * {@link http://php.net/language.oop5.basic#51624} + * + * @access public + * @see __clone() + * @return Math_BigInteger + */ + function copy() + { + $temp = new Math_BigInteger(); + $temp->value = $this->value; + $temp->is_negative = $this->is_negative; + $temp->generator = $this->generator; + $temp->precision = $this->precision; + $temp->bitmask = $this->bitmask; + return $temp; + } + + /** + * __toString() magic method + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * toString(). + * + * @access public + * @internal Implemented per a suggestion by Techie-Michael - thanks! + */ + function __toString() + { + return $this->toString(); + } + + /** + * __clone() magic method + * + * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone() + * directly in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 + * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and PHP5, + * call Math_BigInteger::copy(), instead. + * + * @access public + * @see copy() + * @return Math_BigInteger + */ + function __clone() + { + return $this->copy(); + } + + /** + * __sleep() magic method + * + * Will be called, automatically, when serialize() is called on a Math_BigInteger object. + * + * @see __wakeup() + * @access public + */ + function __sleep() + { + $this->hex = $this->toHex(true); + $vars = array('hex'); + if ($this->generator != 'mt_rand') { + $vars[] = 'generator'; + } + if ($this->precision > 0) { + $vars[] = 'precision'; + } + return $vars; + + } + + /** + * __wakeup() magic method + * + * Will be called, automatically, when unserialize() is called on a Math_BigInteger object. + * + * @see __sleep() + * @access public + */ + function __wakeup() + { + $temp = new Math_BigInteger($this->hex, -16); + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + $this->setRandomGenerator($this->generator); + if ($this->precision > 0) { + // recalculate $this->bitmask + $this->setPrecision($this->precision); + } + } + + /** + * Adds two BigIntegers. + * + * Here's an example: + * + * add($b); + * + * echo $c->toString(); // outputs 30 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 addition + */ + function add($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_add($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcadd($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs addition. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _add($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => $y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // subtract, if appropriate + if ( $x_negative != $y_negative ) { + if ( $x_value == $y_value ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + $temp = $this->_subtract($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $this->_compare($x_value, false, $y_value, false) > 0 ? + $x_negative : $y_negative; + + return $temp; + } + + if ($x_size < $y_size) { + $size = $x_size; + $value = $y_value; + } else { + $size = $y_size; + $value = $x_value; + } + + $value[] = 0; // just in case the carry adds an extra digit + + $carry = 0; + for ($i = 0, $j = 1; $j < $size; $i+=2, $j+=2) { + $sum = $x_value[$j] * 0x4000000 + $x_value[$i] + $y_value[$j] * 0x4000000 + $y_value[$i] + $carry; + $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT52; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = (int) ($sum / 0x4000000); + + $value[$i] = (int) ($sum - 0x4000000 * $temp); // eg. a faster alternative to fmod($sum, 0x4000000) + $value[$j] = $temp; + } + + if ($j == $size) { // ie. if $y_size is odd + $sum = $x_value[$i] + $y_value[$i] + $carry; + $carry = $sum >= 0x4000000; + $value[$i] = $carry ? $sum - 0x4000000 : $sum; + ++$i; // ie. let $i = $j since we've just done $value[$i] + } + + if ($carry) { + for (; $value[$i] == 0x3FFFFFF; ++$i) { + $value[$i] = 0; + } + ++$value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Subtracts two BigIntegers. + * + * Here's an example: + * + * subtract($b); + * + * echo $c->toString(); // outputs -10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 subtraction + */ + function subtract($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_sub($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcsub($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs subtraction. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _subtract($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => !$y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // add, if appropriate (ie. -$x - +$y or +$x - -$y) + if ( $x_negative != $y_negative ) { + $temp = $this->_add($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $x_negative; + + return $temp; + } + + $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative); + + if ( !$diff ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + // switch $x and $y around, if appropriate. + if ( (!$x_negative && $diff < 0) || ($x_negative && $diff > 0) ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_negative = !$x_negative; + + $x_size = count($x_value); + $y_size = count($y_value); + } + + // at this point, $x_value should be at least as big as - if not bigger than - $y_value + + $carry = 0; + for ($i = 0, $j = 1; $j < $y_size; $i+=2, $j+=2) { + $sum = $x_value[$j] * 0x4000000 + $x_value[$i] - $y_value[$j] * 0x4000000 - $y_value[$i] - $carry; + $carry = $sum < 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = (int) ($sum / 0x4000000); + + $x_value[$i] = (int) ($sum - 0x4000000 * $temp); + $x_value[$j] = $temp; + } + + if ($j == $y_size) { // ie. if $y_size is odd + $sum = $x_value[$i] - $y_value[$i] - $carry; + $carry = $sum < 0; + $x_value[$i] = $carry ? $sum + 0x4000000 : $sum; + ++$i; + } + + if ($carry) { + for (; !$x_value[$i]; ++$i) { + $x_value[$i] = 0x3FFFFFF; + } + --$x_value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($x_value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Multiplies two BigIntegers + * + * Here's an example: + * + * multiply($b); + * + * echo $c->toString(); // outputs 200 + * ?> + * + * + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access public + */ + function multiply($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_mul($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcmul($this->value, $x->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative); + + $product = new Math_BigInteger(); + $product->value = $temp[MATH_BIGINTEGER_VALUE]; + $product->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($product); + } + + /** + * Performs multiplication. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _multiply($x_value, $x_negative, $y_value, $y_negative) + { + //if ( $x_value == $y_value ) { + // return array( + // MATH_BIGINTEGER_VALUE => $this->_square($x_value), + // MATH_BIGINTEGER_SIGN => $x_sign != $y_value + // ); + //} + + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + return array( + MATH_BIGINTEGER_VALUE => min($x_length, $y_length) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_regularMultiply($x_value, $y_value)) : + $this->_trim($this->_karatsuba($x_value, $y_value)), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Performs long multiplication on two BigIntegers + * + * Modeled after 'multiply' in MutableBigInteger.java. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _regularMultiply($x_value, $y_value) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array(); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0 + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / 0x4000000); + $product_value[$j] = (int) ($temp - 0x4000000 * $carry); + } + + $product_value[$j] = $carry; + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $product_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + $product_value[$k] = $carry; + } + + return $product_value; + } + + /** + * Performs Karatsuba multiplication on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _karatsuba($x_value, $y_value) + { + $m = min(count($x_value) >> 1, count($y_value) >> 1); + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_regularMultiply($x_value, $y_value); + } + + $x1 = array_slice($x_value, $m); + $x0 = array_slice($x_value, 0, $m); + $y1 = array_slice($y_value, $m); + $y0 = array_slice($y_value, 0, $m); + + $z2 = $this->_karatsuba($x1, $y1); + $z0 = $this->_karatsuba($x0, $y0); + + $z1 = $this->_add($x1, false, $x0, false); + $temp = $this->_add($y1, false, $y0, false); + $z1 = $this->_karatsuba($z1[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xy = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xy = $this->_add($xy[MATH_BIGINTEGER_VALUE], $xy[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xy[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs squaring + * + * @param Array $x + * @return Array + * @access private + */ + function _square($x = false) + { + return count($x) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_baseSquare($x)) : + $this->_trim($this->_karatsubaSquare($x)); + } + + /** + * Performs traditional squaring on two BigIntegers + * + * Squaring can be done faster than multiplying a number by itself can be. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. + * + * @param Array $value + * @return Array + * @access private + */ + function _baseSquare($value) + { + if ( empty($value) ) { + return array(); + } + $square_value = $this->_array_repeat(0, 2 * count($value)); + + for ($i = 0, $max_index = count($value) - 1; $i <= $max_index; ++$i) { + $i2 = $i << 1; + + $temp = $square_value[$i2] + $value[$i] * $value[$i]; + $carry = (int) ($temp / 0x4000000); + $square_value[$i2] = (int) ($temp - 0x4000000 * $carry); + + // note how we start from $i+1 instead of 0 as we do in multiplication. + for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) { + $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $square_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + // the following line can yield values larger 2**15. at this point, PHP should switch + // over to floats. + $square_value[$i + $max_index + 1] = $carry; + } + + return $square_value; + } + + /** + * Performs Karatsuba "squaring" on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. + * + * @param Array $value + * @return Array + * @access private + */ + function _karatsubaSquare($value) + { + $m = count($value) >> 1; + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_baseSquare($value); + } + + $x1 = array_slice($value, $m); + $x0 = array_slice($value, 0, $m); + + $z2 = $this->_karatsubaSquare($x1); + $z0 = $this->_karatsubaSquare($x0); + + $z1 = $this->_add($x1, false, $x0, false); + $z1 = $this->_karatsubaSquare($z1[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xx = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xx = $this->_add($xx[MATH_BIGINTEGER_VALUE], $xx[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xx[MATH_BIGINTEGER_VALUE]; + } + + /** + * Divides two BigIntegers. + * + * Returns an array whose first element contains the quotient and whose second element contains the + * "common residue". If the remainder would be positive, the "common residue" and the remainder are the + * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder + * and the divisor (basically, the "common residue" is the first positive modulo). + * + * Here's an example: + * + * divide($b); + * + * echo $quotient->toString(); // outputs 0 + * echo "\r\n"; + * echo $remainder->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Array + * @access public + * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. + */ + function divide($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value); + + if (gmp_sign($remainder->value) < 0) { + $remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + case MATH_BIGINTEGER_MODE_BCMATH: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + $quotient->value = bcdiv($this->value, $y->value, 0); + $remainder->value = bcmod($this->value, $y->value); + + if ($remainder->value[0] == '-') { + $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + if (count($y->value) == 1) { + list($q, $r) = $this->_divide_digit($this->value, $y->value[0]); + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + $quotient->value = $q; + $remainder->value = array($r); + $quotient->is_negative = $this->is_negative != $y->is_negative; + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + static $zero; + if ( !isset($zero) ) { + $zero = new Math_BigInteger(); + } + + $x = $this->copy(); + $y = $y->copy(); + + $x_sign = $x->is_negative; + $y_sign = $y->is_negative; + + $x->is_negative = $y->is_negative = false; + + $diff = $x->compare($y); + + if ( !$diff ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + $temp->is_negative = $x_sign != $y_sign; + return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger())); + } + + if ( $diff < 0 ) { + // if $x is negative, "add" $y. + if ( $x_sign ) { + $x = $y->subtract($x); + } + return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x)); + } + + // normalize $x and $y as described in HAC 14.23 / 14.24 + $msb = $y->value[count($y->value) - 1]; + for ($shift = 0; !($msb & 0x2000000); ++$shift) { + $msb <<= 1; + } + $x->_lshift($shift); + $y->_lshift($shift); + $y_value = &$y->value; + + $x_max = count($x->value) - 1; + $y_max = count($y->value) - 1; + + $quotient = new Math_BigInteger(); + $quotient_value = &$quotient->value; + $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1); + + static $temp, $lhs, $rhs; + if (!isset($temp)) { + $temp = new Math_BigInteger(); + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + } + $temp_value = &$temp->value; + $rhs_value = &$rhs->value; + + // $temp = $y << ($x_max - $y_max-1) in base 2**26 + $temp_value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value); + + while ( $x->compare($temp) >= 0 ) { + // calculate the "common residue" + ++$quotient_value[$x_max - $y_max]; + $x = $x->subtract($temp); + $x_max = count($x->value) - 1; + } + + for ($i = $x_max; $i >= $y_max + 1; --$i) { + $x_value = &$x->value; + $x_window = array( + isset($x_value[$i]) ? $x_value[$i] : 0, + isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0, + isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0 + ); + $y_window = array( + $y_value[$y_max], + ( $y_max > 0 ) ? $y_value[$y_max - 1] : 0 + ); + + $q_index = $i - $y_max - 1; + if ($x_window[0] == $y_window[0]) { + $quotient_value[$q_index] = 0x3FFFFFF; + } else { + $quotient_value[$q_index] = (int) ( + ($x_window[0] * 0x4000000 + $x_window[1]) + / + $y_window[0] + ); + } + + $temp_value = array($y_window[1], $y_window[0]); + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + + $rhs_value = array($x_window[2], $x_window[1], $x_window[0]); + + while ( $lhs->compare($rhs) > 0 ) { + --$quotient_value[$q_index]; + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + } + + $adjust = $this->_array_repeat(0, $q_index); + $temp_value = array($quotient_value[$q_index]); + $temp = $temp->multiply($y); + $temp_value = &$temp->value; + $temp_value = array_merge($adjust, $temp_value); + + $x = $x->subtract($temp); + + if ($x->compare($zero) < 0) { + $temp_value = array_merge($adjust, $y_value); + $x = $x->add($temp); + + --$quotient_value[$q_index]; + } + + $x_max = count($x_value) - 1; + } + + // unnormalize the remainder + $x->_rshift($shift); + + $quotient->is_negative = $x_sign != $y_sign; + + // calculate the "common residue", if appropriate + if ( $x_sign ) { + $y->_rshift($shift); + $x = $y->subtract($x); + } + + return array($this->_normalize($quotient), $this->_normalize($x)); + } + + /** + * Divides a BigInteger by a regular integer + * + * abc / x = a00 / x + b0 / x + c / x + * + * @param Array $dividend + * @param Array $divisor + * @return Array + * @access private + */ + function _divide_digit($dividend, $divisor) + { + $carry = 0; + $result = array(); + + for ($i = count($dividend) - 1; $i >= 0; --$i) { + $temp = 0x4000000 * $carry + $dividend[$i]; + $result[$i] = (int) ($temp / $divisor); + $carry = (int) ($temp - $divisor * $result[$i]); + } + + return array($result, $carry); + } + + /** + * Performs modular exponentiation. + * + * Here's an example: + * + * modPow($b, $c); + * + * echo $c->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and + * and although the approach involving repeated squaring does vastly better, it, too, is impractical + * for our purposes. The reason being that division - by far the most complicated and time-consuming + * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. + * + * Modular reductions resolve this issue. Although an individual modular reduction takes more time + * then an individual division, when performed in succession (with the same modulo), they're a lot faster. + * + * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, + * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the + * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because + * the product of two odd numbers is odd), but what about when RSA isn't used? + * + * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a + * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the + * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, + * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and + * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. + * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. + */ + function modPow($e, $n) + { + $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); + + if ($e->compare(new Math_BigInteger()) < 0) { + $e = $e->abs(); + + $temp = $this->modInverse($n); + if ($temp === false) { + return false; + } + + return $this->_normalize($temp->modPow($e, $n)); + } + + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP ) { + $temp = new Math_BigInteger(); + $temp->value = gmp_powm($this->value, $e->value, $n->value); + + return $this->_normalize($temp); + } + + if ($this->compare(new Math_BigInteger()) < 0 || $this->compare($n) > 0) { + list(, $temp) = $this->divide($n); + return $temp->modPow($e, $n); + } + + if (defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) { + $components = array( + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true) + ); + + $components = array( + 'modulus' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['modulus'])), $components['modulus']), + 'publicExponent' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['publicExponent'])), $components['publicExponent']) + ); + + $RSAPublicKey = pack('Ca*a*a*', + 48, $this->_encodeASN1Length(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $RSAPublicKey = chr(0) . $RSAPublicKey; + $RSAPublicKey = chr(3) . $this->_encodeASN1Length(strlen($RSAPublicKey)) . $RSAPublicKey; + + $encapsulated = pack('Ca*a*', + 48, $this->_encodeASN1Length(strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey + ); + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($encapsulated)) . + '-----END PUBLIC KEY-----'; + + $plaintext = str_pad($this->toBytes(), strlen($n->toBytes(true)) - 1, "\0", STR_PAD_LEFT); + + if (openssl_public_encrypt($plaintext, $result, $RSAPublicKey, OPENSSL_NO_PADDING)) { + return new Math_BigInteger($result, 256); + } + } + + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $temp = new Math_BigInteger(); + $temp->value = bcpowmod($this->value, $e->value, $n->value, 0); + + return $this->_normalize($temp); + } + + if ( empty($e->value) ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->_normalize($temp); + } + + if ( $e->value == array(1) ) { + list(, $temp) = $this->divide($n); + return $this->_normalize($temp); + } + + if ( $e->value == array(2) ) { + $temp = new Math_BigInteger(); + $temp->value = $this->_square($this->value); + list(, $temp) = $temp->divide($n); + return $this->_normalize($temp); + } + + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT)); + + // is the modulo odd? + if ( $n->value[0] & 1 ) { + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY)); + } + // if it's not, it's even + + // find the lowest set bit (eg. the max pow of 2 that divides $n) + for ($i = 0; $i < count($n->value); ++$i) { + if ( $n->value[$i] ) { + $temp = decbin($n->value[$i]); + $j = strlen($temp) - strrpos($temp, '1') - 1; + $j+= 26 * $i; + break; + } + } + // at this point, 2^$j * $n/(2^$j) == $n + + $mod1 = $n->copy(); + $mod1->_rshift($j); + $mod2 = new Math_BigInteger(); + $mod2->value = array(1); + $mod2->_lshift($j); + + $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger(); + $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2); + + $y1 = $mod2->modInverse($mod1); + $y2 = $mod1->modInverse($mod2); + + $result = $part1->multiply($mod2); + $result = $result->multiply($y1); + + $temp = $part2->multiply($mod1); + $temp = $temp->multiply($y2); + + $result = $result->add($temp); + list(, $result) = $result->divide($n); + + return $this->_normalize($result); + } + + /** + * Performs modular exponentiation. + * + * Alias for Math_BigInteger::modPow() + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function powMod($e, $n) + { + return $this->modPow($e, $n); + } + + /** + * Sliding Window k-ary Modular Exponentiation + * + * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, + * however, this function performs a modular reduction after every multiplication and squaring operation. + * As such, this function has the same preconditions that the reductions being used do. + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @param Integer $mode + * @return Math_BigInteger + * @access private + */ + function _slidingWindow($e, $n, $mode) + { + static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function + //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 + + $e_value = $e->value; + $e_length = count($e_value) - 1; + $e_bits = decbin($e_value[$e_length]); + for ($i = $e_length - 1; $i >= 0; --$i) { + $e_bits.= str_pad(decbin($e_value[$i]), 26, '0', STR_PAD_LEFT); + } + + $e_length = strlen($e_bits); + + // calculate the appropriate window size. + // $window_size == 3 if $window_ranges is between 25 and 81, for example. + for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); ++$window_size, ++$i); + + $n_value = $n->value; + + // precompute $this^0 through $this^$window_size + $powers = array(); + $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode); + $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode); + + // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end + // in a 1. ie. it's supposed to be odd. + $temp = 1 << ($window_size - 1); + for ($i = 1; $i < $temp; ++$i) { + $i2 = $i << 1; + $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode); + } + + $result = array(1); + $result = $this->_prepareReduce($result, $n_value, $mode); + + for ($i = 0; $i < $e_length; ) { + if ( !$e_bits[$i] ) { + $result = $this->_squareReduce($result, $n_value, $mode); + ++$i; + } else { + for ($j = $window_size - 1; $j > 0; --$j) { + if ( !empty($e_bits[$i + $j]) ) { + break; + } + } + + for ($k = 0; $k <= $j; ++$k) {// eg. the length of substr($e_bits, $i, $j+1) + $result = $this->_squareReduce($result, $n_value, $mode); + } + + $result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode); + + $i+=$j + 1; + } + } + + $temp = new Math_BigInteger(); + $temp->value = $this->_reduce($result, $n_value, $mode); + + return $temp; + } + + /** + * Modular reduction + * + * For most $modes this will return the remainder. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _reduce($x, $n, $mode) + { + switch ($mode) { + case MATH_BIGINTEGER_MONTGOMERY: + return $this->_montgomery($x, $n); + case MATH_BIGINTEGER_BARRETT: + return $this->_barrett($x, $n); + case MATH_BIGINTEGER_POWEROF2: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + return $x->_mod2($n); + case MATH_BIGINTEGER_CLASSIC: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + case MATH_BIGINTEGER_NONE: + return $x; + default: + // an invalid $mode was provided + } + } + + /** + * Modular reduction preperation + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _prepareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_prepMontgomery($x, $n); + } + return $this->_reduce($x, $n, $mode); + } + + /** + * Modular multiply + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $y + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _multiplyReduce($x, $y, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $y, $n); + } + $temp = $this->_multiply($x, false, $y, false); + return $this->_reduce($temp[MATH_BIGINTEGER_VALUE], $n, $mode); + } + + /** + * Modular square + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _squareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $x, $n); + } + return $this->_reduce($this->_square($x), $n, $mode); + } + + /** + * Modulos for Powers of Two + * + * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), + * we'll just use this function as a wrapper for doing that. + * + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _mod2($n) + { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->bitwise_and($n->subtract($temp)); + } + + /** + * Barrett Modular Reduction + * + * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, + * so as not to require negative numbers (initially, this script didn't support negative numbers). + * + * Employs "folding", as described at + * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}. To quote from + * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x." + * + * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that + * usable on account of (1) its not using reasonable radix points as discussed in + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable + * radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that + * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line + * comments for details. + * + * @see _slidingWindow() + * @access private + * @param Array $n + * @param Array $m + * @return Array + */ + function _barrett($n, $m) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $m_length = count($m); + + // if ($this->_compare($n, $this->_square($m)) >= 0) { + if (count($n) > 2 * $m_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $n; + $rhs->value = $m; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced + if ($m_length < 5) { + return $this->_regularBarrett($n, $m); + } + + // n = 2 * m.length + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1)); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $m; + + list($u, $m1) = $lhs->divide($rhs); + $u = $u->value; + $m1 = $m1->value; + + $cache[MATH_BIGINTEGER_DATA][] = array( + 'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1) + 'm1'=> $m1 // m.length + ); + } else { + extract($cache[MATH_BIGINTEGER_DATA][$key]); + } + + $cutoff = $m_length + ($m_length >> 1); + $lsd = array_slice($n, 0, $cutoff); // m.length + (m.length >> 1) + $msd = array_slice($n, $cutoff); // m.length >> 1 + $lsd = $this->_trim($lsd); + $temp = $this->_multiply($msd, false, $m1, false); + $n = $this->_add($lsd, false, $temp[MATH_BIGINTEGER_VALUE], false); // m.length + (m.length >> 1) + 1 + + if ($m_length & 1) { + return $this->_regularBarrett($n[MATH_BIGINTEGER_VALUE], $m); + } + + // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2 + $temp = array_slice($n[MATH_BIGINTEGER_VALUE], $m_length - 1); + // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2 + // if odd: ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1 + $temp = $this->_multiply($temp, false, $u, false); + // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1 + // if odd: (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], ($m_length >> 1) + 1); + // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1 + // if odd: (m.length - (m.length >> 1)) + m.length = 2 * m.length - (m.length >> 1) + $temp = $this->_multiply($temp, false, $m, false); + + // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit + // number from a m.length + (m.length >> 1) + 1 digit number. ie. there'd be an extra digit and the while loop + // following this comment would loop a lot (hence our calling _regularBarrett() in that situation). + + $result = $this->_subtract($n[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * (Regular) Barrett Modular Reduction + * + * For numbers with more than four digits Math_BigInteger::_barrett() is faster. The difference between that and this + * is that this function does not fold the denominator into a smaller form. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _regularBarrett($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $n_length = count($n); + + if (count($x) > 2 * $n_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $n; + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, 2 * $n_length); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list($temp, ) = $lhs->divide($rhs); // m.length + $cache[MATH_BIGINTEGER_DATA][] = $temp->value; + } + + // 2 * m.length - (m.length - 1) = m.length + 1 + $temp = array_slice($x, $n_length - 1); + // (m.length + 1) + m.length = 2 * m.length + 1 + $temp = $this->_multiply($temp, false, $cache[MATH_BIGINTEGER_DATA][$key], false); + // (2 * m.length + 1) - (m.length - 1) = m.length + 2 + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], $n_length + 1); + + // m.length + 1 + $result = array_slice($x, 0, $n_length + 1); + // m.length + 1 + $temp = $this->_multiplyLower($temp, false, $n, false, $n_length + 1); + // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1) + + if ($this->_compare($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]) < 0) { + $corrector_value = $this->_array_repeat(0, $n_length + 1); + $corrector_value[] = 1; + $result = $this->_add($result, false, $corrector, false); + $result = $result[MATH_BIGINTEGER_VALUE]; + } + + // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits + $result = $this->_subtract($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]); + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false) > 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs long multiplication up to $stop digits + * + * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. + * + * @see _regularBarrett() + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0, $k = $i + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / 0x4000000); + $product_value[$j] = (int) ($temp - 0x4000000 * $carry); + } + + if ($j < $stop) { + $product_value[$j] = $carry; + } + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $product_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + if ($k < $stop) { + $product_value[$k] = $carry; + } + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($product_value), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Montgomery Modular Reduction + * + * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n. + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be + * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function + * to work correctly. + * + * @see _prepMontgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _montgomery($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $x; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($n); + } + + $k = count($n); + + $result = array(MATH_BIGINTEGER_VALUE => $x); + + for ($i = 0; $i < $k; ++$i) { + $temp = $result[MATH_BIGINTEGER_VALUE][$i] * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $this->_regularMultiply(array($temp), $n); + $temp = array_merge($this->_array_repeat(0, $i), $temp); + $result = $this->_add($result[MATH_BIGINTEGER_VALUE], false, $temp, false); + } + + $result[MATH_BIGINTEGER_VALUE] = array_slice($result[MATH_BIGINTEGER_VALUE], $k); + + if ($this->_compare($result, false, $n, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], false, $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Montgomery Multiply + * + * Interleaves the montgomery reduction and long multiplication algorithms together as described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36} + * + * @see _prepMontgomery() + * @see _montgomery() + * @access private + * @param Array $x + * @param Array $y + * @param Array $m + * @return Array + */ + function _montgomeryMultiply($x, $y, $m) + { + $temp = $this->_multiply($x, false, $y, false); + return $this->_montgomery($temp[MATH_BIGINTEGER_VALUE], $m); + + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($m); + } + + $n = max(count($x), count($y), count($m)); + $x = array_pad($x, $n, 0); + $y = array_pad($y, $n, 0); + $m = array_pad($m, $n, 0); + $a = array(MATH_BIGINTEGER_VALUE => $this->_array_repeat(0, $n + 1)); + for ($i = 0; $i < $n; ++$i) { + $temp = $a[MATH_BIGINTEGER_VALUE][0] + $x[$i] * $y[0]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $temp * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), false, $this->_regularMultiply(array($temp), $m), false); + $a = $this->_add($a[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + $a[MATH_BIGINTEGER_VALUE] = array_slice($a[MATH_BIGINTEGER_VALUE], 1); + } + if ($this->_compare($a[MATH_BIGINTEGER_VALUE], false, $m, false) >= 0) { + $a = $this->_subtract($a[MATH_BIGINTEGER_VALUE], false, $m, false); + } + return $a[MATH_BIGINTEGER_VALUE]; + } + + /** + * Prepare a number for use in Montgomery Modular Reductions + * + * @see _montgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _prepMontgomery($x, $n) + { + $lhs = new Math_BigInteger(); + $lhs->value = array_merge($this->_array_repeat(0, count($n)), $x); + $rhs = new Math_BigInteger(); + $rhs->value = $n; + + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + /** + * Modular Inverse of a number mod 2**26 (eg. 67108864) + * + * Based off of the bnpInvDigit function implemented and justified in the following URL: + * + * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} + * + * The following URL provides more info: + * + * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} + * + * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For + * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields + * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't + * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that + * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the + * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to + * 40 bits, which only 64-bit floating points will support. + * + * Thanks to Pedro Gimeno Fortea for input! + * + * @see _montgomery() + * @access private + * @param Array $x + * @return Integer + */ + function _modInverse67108864($x) // 2**26 == 67108864 + { + $x = -$x[0]; + $result = $x & 0x3; // x**-1 mod 2**2 + $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4 + $result = ($result * (2 - ($x & 0xFF) * $result)) & 0xFF; // x**-1 mod 2**8 + $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16 + $result = fmod($result * (2 - fmod($x * $result, 0x4000000)), 0x4000000); // x**-1 mod 2**26 + return $result & 0x3FFFFFF; + } + + /** + * Calculates modular inverses. + * + * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. + * + * Here's an example: + * + * modInverse($b); + * echo $c->toString(); // outputs 4 + * + * echo "\r\n"; + * + * $d = $a->multiply($c); + * list(, $d) = $d->divide($b); + * echo $d; // outputs 1 (as per the definition of modular inverse) + * ?> + * + * + * @param Math_BigInteger $n + * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise. + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. + */ + function modInverse($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_invert($this->value, $n->value); + + return ( $temp->value === false ) ? false : $this->_normalize($temp); + } + + static $zero, $one; + if (!isset($zero)) { + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + } + + // $x mod -$n == $x mod $n. + $n = $n->abs(); + + if ($this->compare($zero) < 0) { + $temp = $this->abs(); + $temp = $temp->modInverse($n); + return $this->_normalize($n->subtract($temp)); + } + + extract($this->extendedGCD($n)); + + if (!$gcd->equals($one)) { + return false; + } + + $x = $x->compare($zero) < 0 ? $x->add($n) : $x; + + return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); + } + + /** + * Calculates the greatest common divisor and Bzout's identity. + * + * Say you have 693 and 609. The GCD is 21. Bzout's identity states that there exist integers x and y such that + * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which + * combination is returned is dependant upon which mode is in use. See + * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bzout's identity - Wikipedia} for more information. + * + * Here's an example: + * + * extendedGCD($b)); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal Calculates the GCD using the binary xGCD algorithim described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, + * the more traditional algorithim requires "relatively costly multiple-precision divisions". + */ + function extendedGCD($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + extract(gmp_gcdext($this->value, $n->value)); + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($g)), + 'x' => $this->_normalize(new Math_BigInteger($s)), + 'y' => $this->_normalize(new Math_BigInteger($t)) + ); + case MATH_BIGINTEGER_MODE_BCMATH: + // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works + // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, + // the basic extended euclidean algorithim is what we're using. + + $u = $this->value; + $v = $n->value; + + $a = '1'; + $b = '0'; + $c = '0'; + $d = '1'; + + while (bccomp($v, '0', 0) != 0) { + $q = bcdiv($u, $v, 0); + + $temp = $u; + $u = $v; + $v = bcsub($temp, bcmul($v, $q, 0), 0); + + $temp = $a; + $a = $c; + $c = bcsub($temp, bcmul($a, $q, 0), 0); + + $temp = $b; + $b = $d; + $d = bcsub($temp, bcmul($b, $q, 0), 0); + } + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($u)), + 'x' => $this->_normalize(new Math_BigInteger($a)), + 'y' => $this->_normalize(new Math_BigInteger($b)) + ); + } + + $y = $n->copy(); + $x = $this->copy(); + $g = new Math_BigInteger(); + $g->value = array(1); + + while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) { + $x->_rshift(1); + $y->_rshift(1); + $g->_lshift(1); + } + + $u = $x->copy(); + $v = $y->copy(); + + $a = new Math_BigInteger(); + $b = new Math_BigInteger(); + $c = new Math_BigInteger(); + $d = new Math_BigInteger(); + + $a->value = $d->value = $g->value = array(1); + $b->value = $c->value = array(); + + while ( !empty($u->value) ) { + while ( !($u->value[0] & 1) ) { + $u->_rshift(1); + if ( (!empty($a->value) && ($a->value[0] & 1)) || (!empty($b->value) && ($b->value[0] & 1)) ) { + $a = $a->add($y); + $b = $b->subtract($x); + } + $a->_rshift(1); + $b->_rshift(1); + } + + while ( !($v->value[0] & 1) ) { + $v->_rshift(1); + if ( (!empty($d->value) && ($d->value[0] & 1)) || (!empty($c->value) && ($c->value[0] & 1)) ) { + $c = $c->add($y); + $d = $d->subtract($x); + } + $c->_rshift(1); + $d->_rshift(1); + } + + if ($u->compare($v) >= 0) { + $u = $u->subtract($v); + $a = $a->subtract($c); + $b = $b->subtract($d); + } else { + $v = $v->subtract($u); + $c = $c->subtract($a); + $d = $d->subtract($b); + } + } + + return array( + 'gcd' => $this->_normalize($g->multiply($v)), + 'x' => $this->_normalize($c), + 'y' => $this->_normalize($d) + ); + } + + /** + * Calculates the greatest common divisor + * + * Say you have 693 and 609. The GCD is 21. + * + * Here's an example: + * + * extendedGCD($b); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function gcd($n) + { + extract($this->extendedGCD($n)); + return $gcd; + } + + /** + * Absolute value. + * + * @return Math_BigInteger + * @access public + */ + function abs() + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp->value = gmp_abs($this->value); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = (bccomp($this->value, '0', 0) < 0) ? substr($this->value, 1) : $this->value; + break; + default: + $temp->value = $this->value; + } + + return $temp; + } + + /** + * Compares two numbers. + * + * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is + * demonstrated thusly: + * + * $x > $y: $x->compare($y) > 0 + * $x < $y: $x->compare($y) < 0 + * $x == $y: $x->compare($y) == 0 + * + * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). + * + * @param Math_BigInteger $x + * @return Integer < 0 if $this is less than $x; > 0 if $this is greater than $x, and 0 if they are equal. + * @access public + * @see equals() + * @internal Could return $this->subtract($x), but that's not as fast as what we do do. + */ + function compare($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $y->value); + case MATH_BIGINTEGER_MODE_BCMATH: + return bccomp($this->value, $y->value, 0); + } + + return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative); + } + + /** + * Compares two numbers. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Integer + * @see compare() + * @access private + */ + function _compare($x_value, $x_negative, $y_value, $y_negative) + { + if ( $x_negative != $y_negative ) { + return ( !$x_negative && $y_negative ) ? 1 : -1; + } + + $result = $x_negative ? -1 : 1; + + if ( count($x_value) != count($y_value) ) { + return ( count($x_value) > count($y_value) ) ? $result : -$result; + } + $size = max(count($x_value), count($y_value)); + + $x_value = array_pad($x_value, $size, 0); + $y_value = array_pad($y_value, $size, 0); + + for ($i = count($x_value) - 1; $i >= 0; --$i) { + if ($x_value[$i] != $y_value[$i]) { + return ( $x_value[$i] > $y_value[$i] ) ? $result : -$result; + } + } + + return 0; + } + + /** + * Tests the equality of two numbers. + * + * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare() + * + * @param Math_BigInteger $x + * @return Boolean + * @access public + * @see compare() + */ + function equals($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $x->value) == 0; + default: + return $this->value === $x->value && $this->is_negative == $x->is_negative; + } + } + + /** + * Set Precision + * + * Some bitwise operations give different results depending on the precision being used. Examples include left + * shift, not, and rotates. + * + * @param Math_BigInteger $x + * @access public + * @return Math_BigInteger + */ + function setPrecision($bits) + { + $this->precision = $bits; + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) { + $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256); + } else { + $this->bitmask = new Math_BigInteger(bcpow('2', $bits, 0)); + } + + $temp = $this->_normalize($this); + $this->value = $temp->value; + } + + /** + * Logical And + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_and($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_and($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left & $right, 256)); + } + + $result = $this->copy(); + + $length = min(count($x->value), count($this->value)); + + $result->value = array_slice($result->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $result->value[$i] & $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_or($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_or($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left | $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $this->value[$i] | $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Exclusive-Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_xor($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_xor($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left ^ $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $this->value[$i] ^ $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Not + * + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_not() + { + // calculuate "not" without regard to $this->precision + // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) + $temp = $this->toBytes(); + $pre_msb = decbin(ord($temp[0])); + $temp = ~$temp; + $msb = decbin(ord($temp[0])); + if (strlen($msb) == 8) { + $msb = substr($msb, strpos($msb, '0')); + } + $temp[0] = chr(bindec($msb)); + + // see if we need to add extra leading 1's + $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8; + $new_bits = $this->precision - $current_bits; + if ($new_bits <= 0) { + return $this->_normalize(new Math_BigInteger($temp, 256)); + } + + // generate as many leading 1's as we need to. + $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3); + $this->_base256_lshift($leading_ones, $current_bits); + + $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256)); + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_rightShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcdiv($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_rshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_leftShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_mul($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcmul($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_lshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Rotate + * + * Instead of the top x bits being dropped they're appended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_leftRotate($shift) + { + $bits = $this->toBytes(); + + if ($this->precision > 0) { + $precision = $this->precision; + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $mask = $this->bitmask->subtract(new Math_BigInteger(1)); + $mask = $mask->toBytes(); + } else { + $mask = $this->bitmask->toBytes(); + } + } else { + $temp = ord($bits[0]); + for ($i = 0; $temp >> $i; ++$i); + $precision = 8 * strlen($bits) - 8 + $i; + $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3); + } + + if ($shift < 0) { + $shift+= $precision; + } + $shift%= $precision; + + if (!$shift) { + return $this->copy(); + } + + $left = $this->bitwise_leftShift($shift); + $left = $left->bitwise_and(new Math_BigInteger($mask, 256)); + $right = $this->bitwise_rightShift($precision - $shift); + $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); + return $this->_normalize($result); + } + + /** + * Logical Right Rotate + * + * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_rightRotate($shift) + { + return $this->bitwise_leftRotate(-$shift); + } + + /** + * Set random number generator function + * + * This function is deprecated. + * + * @param String $generator + * @access public + */ + function setRandomGenerator($generator) + { + } + + /** + * Generate a random number + * + * @param optional Integer $min + * @param optional Integer $max + * @return Math_BigInteger + * @access public + */ + function random($min = false, $max = false) + { + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $this->_normalize($min); + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + $generator = $this->generator; + + $max = $max->subtract($min); + $max = ltrim($max->toBytes(), chr(0)); + $size = strlen($max) - 1; + + $crypt_random = function_exists('crypt_random_string') || (!class_exists('Crypt_Random') && function_exists('crypt_random_string')); + if ($crypt_random) { + $random = crypt_random_string($size); + } else { + $random = ''; + + if ($size & 1) { + $random.= chr(mt_rand(0, 255)); + } + + $blocks = $size >> 1; + for ($i = 0; $i < $blocks; ++$i) { + // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems + $random.= pack('n', mt_rand(0, 0xFFFF)); + } + } + + $fragment = new Math_BigInteger($random, 256); + $leading = $fragment->compare(new Math_BigInteger(substr($max, 1), 256)) > 0 ? + ord($max[0]) - 1 : ord($max[0]); + + if (!$crypt_random) { + $msb = chr(mt_rand(0, $leading)); + } else { + $cutoff = floor(0xFF / $leading) * $leading; + while (true) { + $msb = ord(crypt_random_string(1)); + if ($msb <= $cutoff) { + $msb%= $leading; + break; + } + } + $msb = chr($msb); + } + + $random = new Math_BigInteger($msb . $random, 256); + + return $this->_normalize($random->add($min)); + } + + /** + * Generate a random prime number. + * + * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed, + * give up and return false. + * + * @param optional Integer $min + * @param optional Integer $max + * @param optional Integer $timeout + * @return Math_BigInteger + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. + */ + function randomPrime($min = false, $max = false, $timeout = false) + { + $compare = $max->compare($min); + + if (!$compare) { + return $min; + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + // gmp_nextprime() requires PHP 5 >= 5.2.0 per . + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) { + // we don't rely on Math_BigInteger::random()'s min / max when gmp_nextprime() is being used since this function + // does its own checks on $max / $min when gmp_nextprime() is used. When gmp_nextprime() is not used, however, + // the same $max / $min checks are not performed. + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $x = $this->random($min, $max); + + $x->value = gmp_nextprime($x->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + $x->value = gmp_nextprime($min->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + return false; + } + + static $one, $two; + if (!isset($one)) { + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + $start = time(); + + $x = $this->random($min, $max); + if ($x->equals($two)) { + return $x; + } + + $x->_make_odd(); + if ($x->compare($max) > 0) { + // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range + if ($min->equals($max)) { + return false; + } + $x = $min->copy(); + $x->_make_odd(); + } + + $initial_x = $x->copy(); + + while (true) { + if ($timeout !== false && time() - $start > $timeout) { + return false; + } + + if ($x->isPrime()) { + return $x; + } + + $x = $x->add($two); + + if ($x->compare($max) > 0) { + $x = $min->copy(); + if ($x->equals($two)) { + return $x; + } + $x->_make_odd(); + } + + if ($x->equals($initial_x)) { + return false; + } + } + } + + /** + * Make the current number odd + * + * If the current number is odd it'll be unchanged. If it's even, one will be added to it. + * + * @see randomPrime() + * @access private + */ + function _make_odd() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + gmp_setbit($this->value, 0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + $this->value = bcadd($this->value, '1'); + } + break; + default: + $this->value[0] |= 1; + } + } + + /** + * Checks a numer to see if it's prime + * + * Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the + * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed accross multiple pageloads + * on a website instead of just one. + * + * @param optional Integer $t + * @return Boolean + * @access public + * @internal Uses the + * {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}. + */ + function isPrime($t = false) + { + $length = strlen($this->toBytes()); + + if (!$t) { + // see HAC 4.49 "Note (controlling the error probability)" + if ($length >= 163) { $t = 2; } // floor(1300 / 8) + else if ($length >= 106) { $t = 3; } // floor( 850 / 8) + else if ($length >= 81 ) { $t = 4; } // floor( 650 / 8) + else if ($length >= 68 ) { $t = 5; } // floor( 550 / 8) + else if ($length >= 56 ) { $t = 6; } // floor( 450 / 8) + else if ($length >= 50 ) { $t = 7; } // floor( 400 / 8) + else if ($length >= 43 ) { $t = 8; } // floor( 350 / 8) + else if ($length >= 37 ) { $t = 9; } // floor( 300 / 8) + else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8) + else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8) + else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8) + else { $t = 27; } + } + + // ie. gmp_testbit($this, 0) + // ie. isEven() or !isOdd() + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_prob_prime($this->value, $t) != 0; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '2') { + return true; + } + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + return false; + } + break; + default: + if ($this->value == array(2)) { + return true; + } + if (~$this->value[0] & 1) { + return false; + } + } + + static $primes, $zero, $one, $two; + + if (!isset($primes)) { + $primes = array( + 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, + 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, + 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, + 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, + 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, + 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997 + ); + + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + for ($i = 0; $i < count($primes); ++$i) { + $primes[$i] = new Math_BigInteger($primes[$i]); + } + } + + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + if ($this->equals($one)) { + return false; + } + + // see HAC 4.4.1 "Random search for probable primes" + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + foreach ($primes as $prime) { + list(, $r) = $this->divide($prime); + if ($r->equals($zero)) { + return $this->equals($prime); + } + } + } else { + $value = $this->value; + foreach ($primes as $prime) { + list(, $r) = $this->_divide_digit($value, $prime); + if (!$r) { + return count($value) == 1 && $value[0] == $prime; + } + } + } + + $n = $this->copy(); + $n_1 = $n->subtract($one); + $n_2 = $n->subtract($two); + + $r = $n_1->copy(); + $r_value = $r->value; + // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $s = 0; + // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier + while ($r->value[strlen($r->value) - 1] % 2 == 0) { + $r->value = bcdiv($r->value, '2', 0); + ++$s; + } + } else { + for ($i = 0, $r_length = count($r_value); $i < $r_length; ++$i) { + $temp = ~$r_value[$i] & 0xFFFFFF; + for ($j = 1; ($temp >> $j) & 1; ++$j); + if ($j != 25) { + break; + } + } + $s = 26 * $i + $j - 1; + $r->_rshift($s); + } + + for ($i = 0; $i < $t; ++$i) { + $a = $this->random($two, $n_2); + $y = $a->modPow($r, $n); + + if (!$y->equals($one) && !$y->equals($n_1)) { + for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) { + $y = $y->modPow($two, $n); + if ($y->equals($one)) { + return false; + } + } + + if (!$y->equals($n_1)) { + return false; + } + } + } + return true; + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _lshift($shift) + { + if ( $shift == 0 ) { + return; + } + + $num_digits = (int) ($shift / 26); + $shift %= 26; + $shift = 1 << $shift; + + $carry = 0; + + for ($i = 0; $i < count($this->value); ++$i) { + $temp = $this->value[$i] * $shift + $carry; + $carry = (int) ($temp / 0x4000000); + $this->value[$i] = (int) ($temp - $carry * 0x4000000); + } + + if ( $carry ) { + $this->value[] = $carry; + } + + while ($num_digits--) { + array_unshift($this->value, 0); + } + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _rshift($shift) + { + if ($shift == 0) { + return; + } + + $num_digits = (int) ($shift / 26); + $shift %= 26; + $carry_shift = 26 - $shift; + $carry_mask = (1 << $shift) - 1; + + if ( $num_digits ) { + $this->value = array_slice($this->value, $num_digits); + } + + $carry = 0; + + for ($i = count($this->value) - 1; $i >= 0; --$i) { + $temp = $this->value[$i] >> $shift | $carry; + $carry = ($this->value[$i] & $carry_mask) << $carry_shift; + $this->value[$i] = $temp; + } + + $this->value = $this->_trim($this->value); + } + + /** + * Normalize + * + * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision + * + * @param Math_BigInteger + * @return Math_BigInteger + * @see _trim() + * @access private + */ + function _normalize($result) + { + $result->precision = $this->precision; + $result->bitmask = $this->bitmask; + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (!empty($result->bitmask->value)) { + $result->value = gmp_and($result->value, $result->bitmask->value); + } + + return $result; + case MATH_BIGINTEGER_MODE_BCMATH: + if (!empty($result->bitmask->value)) { + $result->value = bcmod($result->value, $result->bitmask->value); + } + + return $result; + } + + $value = &$result->value; + + if ( !count($value) ) { + return $result; + } + + $value = $this->_trim($value); + + if (!empty($result->bitmask->value)) { + $length = min(count($value), count($this->bitmask->value)); + $value = array_slice($value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $value[$i] = $value[$i] & $this->bitmask->value[$i]; + } + } + + return $result; + } + + /** + * Trim + * + * Removes leading zeros + * + * @return Math_BigInteger + * @access private + */ + function _trim($value) + { + for ($i = count($value) - 1; $i >= 0; --$i) { + if ( $value[$i] ) { + break; + } + unset($value[$i]); + } + + return $value; + } + + /** + * Array Repeat + * + * @param $input Array + * @param $multiplier mixed + * @return Array + * @access private + */ + function _array_repeat($input, $multiplier) + { + return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); + } + + /** + * Logical Left Shift + * + * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_lshift(&$x, $shift) + { + if ($shift == 0) { + return; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $carry = 0; + for ($i = strlen($x) - 1; $i >= 0; --$i) { + $temp = ord($x[$i]) << $shift | $carry; + $x[$i] = chr($temp); + $carry = $temp >> 8; + } + $carry = ($carry != 0) ? chr($carry) : ''; + $x = $carry . $x . str_repeat(chr(0), $num_bytes); + } + + /** + * Logical Right Shift + * + * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_rshift(&$x, $shift) + { + if ($shift == 0) { + $x = ltrim($x, chr(0)); + return ''; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $remainder = ''; + if ($num_bytes) { + $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes; + $remainder = substr($x, $start); + $x = substr($x, 0, -$num_bytes); + } + + $carry = 0; + $carry_shift = 8 - $shift; + for ($i = 0; $i < strlen($x); ++$i) { + $temp = (ord($x[$i]) >> $shift) | $carry; + $carry = (ord($x[$i]) << $carry_shift) & 0xFF; + $x[$i] = chr($temp); + } + $x = ltrim($x, chr(0)); + + $remainder = chr($carry >> $carry_shift) . $remainder; + + return ltrim($remainder, chr(0)); + } + + // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long + // at 32-bits, while java's longs are 64-bits. + + /** + * Converts 32-bit integers to bytes. + * + * @param Integer $x + * @return String + * @access private + */ + function _int2bytes($x) + { + return ltrim(pack('N', $x), chr(0)); + } + + /** + * Converts bytes to 32-bit integers + * + * @param String $x + * @return Integer + * @access private + */ + function _bytes2int($x) + { + $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT)); + return $temp['int']; + } + + /** + * DER-encode an integer + * + * The ability to DER-encode integers is needed to create RSA public keys for use with OpenSSL + * + * @see modPow() + * @access private + * @param Integer $length + * @return String + */ + function _encodeASN1Length($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } +} \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SFTP.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SFTP.php new file mode 100644 index 0000000000000000000000000000000000000000..8db087d3d99c695fe6b701ce720d6e9c3f9431a7 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SFTP.php @@ -0,0 +1,2029 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $sftp->pwd() . "\r\n"; + * $sftp->put('filename.ext', 'hello, world!'); + * print_r($sftp->nlist()); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SFTP + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Net_SSH2 + */ +if (!class_exists('Net_SSH2')) { + require_once('Net/SSH2.php'); +} + +/**#@+ + * @access public + * @see Net_SFTP::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SFTP_LOG_SIMPLE', NET_SSH2_LOG_SIMPLE); +/** + * Returns the message content + */ +define('NET_SFTP_LOG_COMPLEX', NET_SSH2_LOG_COMPLEX); +/** + * Outputs the message content in real-time. + */ +define('NET_SFTP_LOG_REALTIME', 3); +/**#@-*/ + +/** + * SFTP channel constant + * + * Net_SSH2::exec() uses 0 and Net_SSH2::read() / Net_SSH2::write() use 1. + * + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::_get_channel_packet() + * @access private + */ +define('NET_SFTP_CHANNEL', 2); + +/**#@+ + * @access public + * @see Net_SFTP::put() + */ +/** + * Reads data from a local file. + */ +define('NET_SFTP_LOCAL_FILE', 1); +/** + * Reads data from a string. + */ +// this value isn't really used anymore but i'm keeping it reserved for historical reasons +define('NET_SFTP_STRING', 2); +/** + * Resumes an upload + */ +define('NET_SFTP_RESUME', 4); +/**#@-*/ + +/** + * Pure-PHP implementations of SFTP. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Net_SFTP + */ +class Net_SFTP extends Net_SSH2 { + /** + * Packet Types + * + * @see Net_SFTP::Net_SFTP() + * @var Array + * @access private + */ + var $packet_types = array(); + + /** + * Status Codes + * + * @see Net_SFTP::Net_SFTP() + * @var Array + * @access private + */ + var $status_codes = array(); + + /** + * The Request ID + * + * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support + * concurrent actions, so it's somewhat academic, here. + * + * @var Integer + * @see Net_SFTP::_send_sftp_packet() + * @access private + */ + var $request_id = false; + + /** + * The Packet Type + * + * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support + * concurrent actions, so it's somewhat academic, here. + * + * @var Integer + * @see Net_SFTP::_get_sftp_packet() + * @access private + */ + var $packet_type = -1; + + /** + * Packet Buffer + * + * @var String + * @see Net_SFTP::_get_sftp_packet() + * @access private + */ + var $packet_buffer = ''; + + /** + * Extensions supported by the server + * + * @var Array + * @see Net_SFTP::_initChannel() + * @access private + */ + var $extensions = array(); + + /** + * Server SFTP version + * + * @var Integer + * @see Net_SFTP::_initChannel() + * @access private + */ + var $version; + + /** + * Current working directory + * + * @var String + * @see Net_SFTP::_realpath() + * @see Net_SFTP::chdir() + * @access private + */ + var $pwd = false; + + /** + * Packet Type Log + * + * @see Net_SFTP::getLog() + * @var Array + * @access private + */ + var $packet_type_log = array(); + + /** + * Packet Log + * + * @see Net_SFTP::getLog() + * @var Array + * @access private + */ + var $packet_log = array(); + + /** + * Error information + * + * @see Net_SFTP::getSFTPErrors() + * @see Net_SFTP::getLastSFTPError() + * @var String + * @access private + */ + var $sftp_errors = array(); + + /** + * File Type + * + * @see Net_SFTP::_parseLongname() + * @var Integer + * @access private + */ + var $fileType = 0; + + /** + * Directory Cache + * + * Rather than always having to open a directory and close it immediately there after to see if a file is a directory or + * rather than always + * + * @see Net_SFTP::_save_dir() + * @see Net_SFTP::_remove_dir() + * @see Net_SFTP::_is_dir() + * @var Array + * @access private + */ + var $dirs = array(); + + /** + * Default Constructor. + * + * Connects to an SFTP server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @return Net_SFTP + * @access public + */ + function Net_SFTP($host, $port = 22, $timeout = 10) + { + parent::Net_SSH2($host, $port, $timeout); + $this->packet_types = array( + 1 => 'NET_SFTP_INIT', + 2 => 'NET_SFTP_VERSION', + /* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+: + SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.1 + pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 */ + 3 => 'NET_SFTP_OPEN', + 4 => 'NET_SFTP_CLOSE', + 5 => 'NET_SFTP_READ', + 6 => 'NET_SFTP_WRITE', + 7 => 'NET_SFTP_LSTAT', + 9 => 'NET_SFTP_SETSTAT', + 11 => 'NET_SFTP_OPENDIR', + 12 => 'NET_SFTP_READDIR', + 13 => 'NET_SFTP_REMOVE', + 14 => 'NET_SFTP_MKDIR', + 15 => 'NET_SFTP_RMDIR', + 16 => 'NET_SFTP_REALPATH', + 17 => 'NET_SFTP_STAT', + /* the format of SSH_FXP_RENAME changed between SFTPv4 and SFTPv5+: + SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.5 */ + 18 => 'NET_SFTP_RENAME', + + 101=> 'NET_SFTP_STATUS', + 102=> 'NET_SFTP_HANDLE', + /* the format of SSH_FXP_NAME changed between SFTPv3 and SFTPv4+: + SFTPv4+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.4 + pre-SFTPv4 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-7 */ + 103=> 'NET_SFTP_DATA', + 104=> 'NET_SFTP_NAME', + 105=> 'NET_SFTP_ATTRS', + + 200=> 'NET_SFTP_EXTENDED' + ); + $this->status_codes = array( + 0 => 'NET_SFTP_STATUS_OK', + 1 => 'NET_SFTP_STATUS_EOF', + 2 => 'NET_SFTP_STATUS_NO_SUCH_FILE', + 3 => 'NET_SFTP_STATUS_PERMISSION_DENIED', + 4 => 'NET_SFTP_STATUS_FAILURE', + 5 => 'NET_SFTP_STATUS_BAD_MESSAGE', + 6 => 'NET_SFTP_STATUS_NO_CONNECTION', + 7 => 'NET_SFTP_STATUS_CONNECTION_LOST', + 8 => 'NET_SFTP_STATUS_OP_UNSUPPORTED' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1 + // the order, in this case, matters quite a lot - see Net_SFTP::_parseAttributes() to understand why + $this->attributes = array( + 0x00000001 => 'NET_SFTP_ATTR_SIZE', + 0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+ + 0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS', + 0x00000008 => 'NET_SFTP_ATTR_ACCESSTIME', + // 0x80000000 will yield a floating point on 32-bit systems and converting floating points to integers + // yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in + // two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000. + // that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored. + -1 << 31 => 'NET_SFTP_ATTR_EXTENDED' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 + // the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name + // the array for that $this->open5_flags and similarily alter the constant names. + $this->open_flags = array( + 0x00000001 => 'NET_SFTP_OPEN_READ', + 0x00000002 => 'NET_SFTP_OPEN_WRITE', + 0x00000004 => 'NET_SFTP_OPEN_APPEND', + 0x00000008 => 'NET_SFTP_OPEN_CREATE', + 0x00000010 => 'NET_SFTP_OPEN_TRUNCATE' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 + // see Net_SFTP::_parseLongname() for an explanation + $this->file_types = array( + 1 => 'NET_SFTP_TYPE_REGULAR', + 2 => 'NET_SFTP_TYPE_DIRECTORY', + 3 => 'NET_SFTP_TYPE_SYMLINK', + 4 => 'NET_SFTP_TYPE_SPECIAL' + ); + $this->_define_array( + $this->packet_types, + $this->status_codes, + $this->attributes, + $this->open_flags, + $this->file_types + ); + } + + /** + * Login + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access public + */ + function login($username, $password = '') + { + if (!parent::login($username, $password)) { + return false; + } + + $this->window_size_client_to_server[NET_SFTP_CHANNEL] = $this->window_size; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SFTP_CHANNEL, $this->window_size, 0x4000); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if ($response === false) { + return false; + } + + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SFTP_CHANNEL], strlen('subsystem'), 'subsystem', 1, strlen('sftp'), 'sftp'); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if ($response === false) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_DATA; + + if (!$this->_send_sftp_packet(NET_SFTP_INIT, "\0\0\0\3")) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_VERSION) { + user_error('Expected SSH_FXP_VERSION'); + return false; + } + + extract(unpack('Nversion', $this->_string_shift($response, 4))); + $this->version = $version; + while (!empty($response)) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $key = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $value = $this->_string_shift($response, $length); + $this->extensions[$key] = $value; + } + + /* + SFTPv4+ defines a 'newline' extension. SFTPv3 seems to have unofficial support for it via 'newline@vandyke.com', + however, I'm not sure what 'newline@vandyke.com' is supposed to do (the fact that it's unofficial means that it's + not in the official SFTPv3 specs) and 'newline@vandyke.com' / 'newline' are likely not drop-in substitutes for + one another due to the fact that 'newline' comes with a SSH_FXF_TEXT bitmask whereas it seems unlikely that + 'newline@vandyke.com' would. + */ + /* + if (isset($this->extensions['newline@vandyke.com'])) { + $this->extensions['newline'] = $this->extensions['newline@vandyke.com']; + unset($this->extensions['newline@vandyke.com']); + } + */ + + $this->request_id = 1; + + /* + A Note on SFTPv4/5/6 support: + states the following: + + "If the client wishes to interoperate with servers that support noncontiguous version + numbers it SHOULD send '3'" + + Given that the server only sends its version number after the client has already done so, the above + seems to be suggesting that v3 should be the default version. This makes sense given that v3 is the + most popular. + + states the following; + + "If the server did not send the "versions" extension, or the version-from-list was not included, the + server MAY send a status response describing the failure, but MUST then close the channel without + processing any further requests." + + So what do you do if you have a client whose initial SSH_FXP_INIT packet says it implements v3 and + a server whose initial SSH_FXP_VERSION reply says it implements v4 and only v4? If it only implements + v4, the "versions" extension is likely not going to have been sent so version re-negotiation as discussed + in draft-ietf-secsh-filexfer-13 would be quite impossible. As such, what Net_SFTP would do is close the + channel and reopen it with a new and updated SSH_FXP_INIT packet. + */ + switch ($this->version) { + case 2: + case 3: + break; + default: + return false; + } + + $this->pwd = $this->_realpath('.', false); + + $this->_save_dir($this->pwd); + + return true; + } + + /** + * Returns the current directory name + * + * @return Mixed + * @access public + */ + function pwd() + { + return $this->pwd; + } + + /** + * Logs errors + * + * @param String $response + * @param optional Integer $status + * @access public + */ + function _logError($response, $status = -1) { + if ($status == -1) { + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + } + + $error = $this->status_codes[$status]; + + if ($this->version > 2) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->sftp_errors[] = $error . ': ' . $this->_string_shift($response, $length); + } else { + $this->sftp_errors[] = $error; + } + } + + /** + * Canonicalize the Server-Side Path Name + * + * SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns + * the absolute (canonicalized) path. + * + * @see Net_SFTP::chdir() + * @param String $dir + * @return Mixed + * @access private + */ + function _realpath($dir, $check_dir = true) + { + if ($check_dir && $this->_is_dir($dir)) { + return true; + } + + /* + "This protocol represents file names as strings. File names are + assumed to use the slash ('/') character as a directory separator. + + File names starting with a slash are "absolute", and are relative to + the root of the file system. Names starting with any other character + are relative to the user's default directory (home directory). Note + that identifying the user is assumed to take place outside of this + protocol." + + -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-6 + */ + $file = ''; + if ($this->pwd !== false) { + // if the SFTP server returned the canonicalized path even for non-existant files this wouldn't be necessary + // on OpenSSH it isn't necessary but on other SFTP servers it is. that and since the specs say nothing on + // the subject, we'll go ahead and work around it with the following. + if (empty($dir) || $dir[strlen($dir) - 1] != '/') { + $file = basename($dir); + $dir = dirname($dir); + } + + $dir = $dir[0] == '/' ? '/' . rtrim(substr($dir, 1), '/') : rtrim($dir, '/'); + + if ($dir == '.' || $dir == $this->pwd) { + $temp = $this->pwd; + if (!empty($file)) { + $temp.= '/' . $file; + } + return $temp; + } + + if ($dir[0] != '/') { + $dir = $this->pwd . '/' . $dir; + } + // on the surface it seems like maybe resolving a path beginning with / is unnecessary, but such paths + // can contain .'s and ..'s just like any other. we could parse those out as appropriate or we can let + // the server do it. we'll do the latter. + } + + /* + that SSH_FXP_REALPATH returns SSH_FXP_NAME does not necessarily mean that anything actually exists at the + specified path. generally speaking, no attributes are returned with this particular SSH_FXP_NAME packet + regardless of whether or not a file actually exists. and in SFTPv3, the longname field and the filename + field match for this particular SSH_FXP_NAME packet. for other SSH_FXP_NAME packets, this will likely + not be the case, but for this one, it is. + */ + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.9 + if (!$this->_send_sftp_packet(NET_SFTP_REALPATH, pack('Na*', strlen($dir), $dir))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_NAME: + // although SSH_FXP_NAME is implemented differently in SFTPv3 than it is in SFTPv4+, the following + // should work on all SFTP versions since the only part of the SSH_FXP_NAME packet the following looks + // at is the first part and that part is defined the same in SFTP versions 3 through 6. + $this->_string_shift($response, 4); // skip over the count - it should be 1, anyway + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $realpath = $this->_string_shift($response, $length); + // the following is SFTPv3 only code. see Net_SFTP::_parseLongname() for more information. + // per the above comment, this is a shot in the dark that, on most servers, won't help us in determining + // the file type for Net_SFTP::stat() and Net_SFTP::lstat() but it's worth a shot. + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->fileType = $this->_parseLongname($this->_string_shift($response, $length)); + break; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS'); + return false; + } + + // if $this->pwd isn't set than the only thing $realpath could be is for '.', which is pretty much guaranteed to + // be a bonafide directory + if (!empty($file)) { + $realpath.= '/' . $file; + } + + return $realpath; + } + + /** + * Changes the current directory + * + * @param String $dir + * @return Boolean + * @access public + */ + function chdir($dir) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + if ($dir[strlen($dir) - 1] != '/') { + $dir.= '/'; + } + + // confirm that $dir is, in fact, a valid directory + if ($this->_is_dir($dir)) { + $this->pwd = $dir; + return true; + } + + $dir = $this->_realpath($dir, false); + + if ($this->_is_dir($dir)) { + $this->pwd = $dir; + return true; + } + + if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + // see Net_SFTP::nlist() for a more thorough explanation of the following + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + $this->_save_dir($dir); + + $this->pwd = $dir; + return true; + } + + /** + * Returns a list of files in the given directory + * + * @param optional String $dir + * @return Mixed + * @access public + */ + function nlist($dir = '.') + { + return $this->_list($dir, false); + } + + /** + * Returns a detailed list of files in the given directory + * + * @param optional String $dir + * @return Mixed + * @access public + */ + function rawlist($dir = '.') + { + return $this->_list($dir, true); + } + + /** + * Reads a list, be it detailed or not, of files in the given directory + * + * $realpath exists because, in the case of the recursive deletes and recursive chmod's $realpath has already + * been calculated. + * + * @param String $dir + * @param optional Boolean $raw + * @param optional Boolean $realpath + * @return Mixed + * @access private + */ + function _list($dir, $raw = true, $realpath = true) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $dir = $this->_realpath($dir . '/'); + if ($dir === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.2 + if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.2 + // since 'handle' is the last field in the SSH_FXP_HANDLE packet, we'll just remove the first four bytes that + // represent the length of the string and leave it at that + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + $this->_save_dir($dir); + + $contents = array(); + while (true) { + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.2 + // why multiple SSH_FXP_READDIR packets would be sent when the response to a single one can span arbitrarily many + // SSH_MSG_CHANNEL_DATA messages is not known to me. + if (!$this->_send_sftp_packet(NET_SFTP_READDIR, pack('Na*', strlen($handle), $handle))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_NAME: + extract(unpack('Ncount', $this->_string_shift($response, 4))); + for ($i = 0; $i < $count; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $shortname = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $longname = $this->_string_shift($response, $length); + $attributes = $this->_parseAttributes($response); // we also don't care about the attributes + if (!$raw) { + $contents[] = $shortname; + } else { + $contents[$shortname] = $attributes; + $fileType = $this->_parseLongname($longname); + if ($fileType) { + if ($fileType == NET_SFTP_TYPE_DIRECTORY && ($shortname != '.' && $shortname != '..')) { + $this->_save_dir($dir . '/' . $shortname); + } + $contents[$shortname]['type'] = $fileType; + } + } + // SFTPv6 has an optional boolean end-of-list field, but we'll ignore that, since the + // final SSH_FXP_STATUS packet should tell us that, already. + } + break; + case NET_SFTP_STATUS: + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_EOF) { + $this->_logError($response, $status); + return false; + } + break 2; + default: + user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS'); + return false; + } + } + + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { + return false; + } + + // "The client MUST release all resources associated with the handle regardless of the status." + // -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.3 + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return $contents; + } + + /** + * Returns the file size, in bytes, or false, on failure + * + * Files larger than 4GB will show up as being exactly 4GB. + * + * @param String $filename + * @return Mixed + * @access public + */ + function size($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + return $this->_size($filename); + } + + /** + * Save directories to cache + * + * @param String $dir + * @access private + */ + function _save_dir($dir) + { + // preg_replace('#^/|/(?=/)|/$#', '', $dir) == str_replace('//', '/', trim($dir, '/')) + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if (!isset($temp[$dir])) { + $temp[$dir] = array(); + } + $temp = &$temp[$dir]; + } + } + + /** + * Remove directories from cache + * + * @param String $dir + * @access private + */ + function _remove_dir($dir) + { + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if ($dir == end($dirs)) { + unset($temp[$dir]); + return true; + } + if (!isset($temp[$dir])) { + return false; + } + $temp = &$temp[$dir]; + } + } + + /** + * Checks cache for directory + * + * @param String $dir + * @access private + */ + function _is_dir($dir) + { + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if (!isset($temp[$dir])) { + return false; + } + $temp = &$temp[$dir]; + } + } + + /** + * Returns general information about a file. + * + * Returns an array on success and false otherwise. + * + * @param String $filename + * @return Mixed + * @access public + */ + function stat($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + $stat = $this->_stat($filename, NET_SFTP_STAT); + if ($stat === false) { + return false; + } + + $pwd = $this->pwd; + $stat['type'] = $this->chdir($filename) ? + NET_SFTP_TYPE_DIRECTORY : + NET_SFTP_TYPE_REGULAR; + $this->pwd = $pwd; + + return $stat; + } + + /** + * Returns general information about a file or symbolic link. + * + * Returns an array on success and false otherwise. + * + * @param String $filename + * @return Mixed + * @access public + */ + function lstat($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + $lstat = $this->_stat($filename, NET_SFTP_LSTAT); + $stat = $this->_stat($filename, NET_SFTP_STAT); + if ($stat === false) { + return false; + } + + if ($lstat != $stat) { + return array_merge($lstat, array('type' => NET_SFTP_TYPE_SYMLINK)); + } + + $pwd = $this->pwd; + $lstat['type'] = $this->chdir($filename) ? + NET_SFTP_TYPE_DIRECTORY : + NET_SFTP_TYPE_REGULAR; + $this->pwd = $pwd; + + return $lstat; + } + + /** + * Returns general information about a file or symbolic link + * + * Determines information without calling Net_SFTP::_realpath(). + * The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT. + * + * @param String $filename + * @param Integer $type + * @return Mixed + * @access private + */ + function _stat($filename, $type) + { + // SFTPv4+ adds an additional 32-bit integer field - flags - to the following: + $packet = pack('Na*', strlen($filename), $filename); + if (!$this->_send_sftp_packet($type, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_ATTRS: + $attributes = $this->_parseAttributes($response); + if ($this->fileType) { + $attributes['type'] = $this->fileType; + } + return $attributes; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + } + + user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS'); + return false; + } + + /** + * Attempt to identify the file type + * + * @param String $path + * @param Array $stat + * @param Array $lstat + * @return Integer + * @access private + */ + function _identify_type($path, $stat1, $stat2) + { + $stat1 = $this->_stat($path, $stat1); + $stat2 = $this->_stat($path, $stat2); + + if ($stat1 != $stat2) { + return array_merge($stat1, array('type' => NET_SFTP_TYPE_SYMLINK)); + } + + $pwd = $this->pwd; + $stat1['type'] = $this->chdir($path) ? + NET_SFTP_TYPE_DIRECTORY : + NET_SFTP_TYPE_REGULAR; + $this->pwd = $pwd; + + return $stat1; + } + + /** + * Returns the file size, in bytes, or false, on failure + * + * Determines the size without calling Net_SFTP::_realpath() + * + * @param String $filename + * @return Mixed + * @access private + */ + function _size($filename) + { + $result = $this->_stat($filename, NET_SFTP_LSTAT); + if ($result === false) { + return false; + } + return isset($result['size']) ? $result['size'] : -1; + } + + /** + * Set permissions on a file. + * + * Returns the new file permissions on success or FALSE on error. + * + * @param Integer $mode + * @param String $filename + * @return Mixed + * @access public + */ + function chmod($mode, $filename, $recursive = false) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + if ($recursive) { + $i = 0; + $result = $this->_chmod_recursive($mode, $filename, $i); + $this->_read_put_responses($i); + return $result; + } + + // SFTPv4+ has an additional byte field - type - that would need to be sent, as well. setting it to + // SSH_FILEXFER_TYPE_UNKNOWN might work. if not, we'd have to do an SSH_FXP_STAT before doing an SSH_FXP_SETSTAT. + $attr = pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($filename), $filename, $attr))) { + return false; + } + + /* + "Because some systems must use separate system calls to set various attributes, it is possible that a failure + response will be returned, but yet some of the attributes may be have been successfully modified. If possible, + servers SHOULD avoid this situation; however, clients MUST be aware that this is possible." + + -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.6 + */ + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + } + + // rather than return what the permissions *should* be, we'll return what they actually are. this will also + // tell us if the file actually exists. + // incidentally, SFTPv4+ adds an additional 32-bit integer field - flags - to the following: + $packet = pack('Na*', strlen($filename), $filename); + if (!$this->_send_sftp_packet(NET_SFTP_STAT, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_ATTRS: + $attrs = $this->_parseAttributes($response); + return $attrs['permissions']; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + } + + user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS'); + return false; + } + + /** + * Recursively chmods directories on the SFTP server + * + * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. + * + * @param Integer $mode + * @param String $filename + * @return Boolean + * @access private + */ + function _chmod_recursive($mode, $path, &$i) + { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + $entries = $this->_list($path, true, false); + + if ($entries === false) { + return $this->chmod($mode, $path); + } + + // normally $entries would have at least . and .. but it might not if the directories + // permissions didn't allow reading + if (empty($entries)) { + return false; + } + + foreach ($entries as $filename=>$props) { + if ($filename == '.' || $filename == '..') { + continue; + } + + if (!isset($props['type'])) { + return false; + } + + $temp = $path . '/' . $filename; + if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) { + if (!$this->_chmod_recursive($mode, $temp, $i)) { + return false; + } + } else { + $attr = pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($temp), $temp, $attr))) { + return false; + } + + $i++; + + if ($i >= 50) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + } + } + + $attr = pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($path), $path, $attr))) { + return false; + } + + $i++; + + if ($i >= 50) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + + return true; + } + + /** + * Creates a directory. + * + * @param String $dir + * @return Boolean + * @access public + */ + function mkdir($dir) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + if ($dir[0] != '/') { + $dir = $this->_realpath(rtrim($dir, '/')); + if ($dir === false) { + return false; + } + if (!$this->_mkdir_helper($dir)) { + return false; + } + } else { + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + $temp = ''; + foreach ($dirs as $dir) { + $temp.= '/' . $dir; + $result = $this->_mkdir_helper($temp); + } + if (!$result) { + return false; + } + } + + return true; + } + + /** + * Helper function for directory creation + * + * @param String $dir + * @return Boolean + * @access private + */ + function _mkdir_helper($dir) + { + // by not providing any permissions, hopefully the server will use the logged in users umask - their + // default permissions. + if (!$this->_send_sftp_packet(NET_SFTP_MKDIR, pack('Na*N', strlen($dir), $dir, 0))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + $this->_save_dir($dir); + + return true; + } + + /** + * Removes a directory. + * + * @param String $dir + * @return Boolean + * @access public + */ + function rmdir($dir) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $dir = $this->_realpath($dir); + if ($dir === false) { + return false; + } + + if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED? + $this->_logError($response, $status); + return false; + } + + $this->_remove_dir($dir); + + return true; + } + + /** + * Uploads a file to the SFTP server. + * + * By default, Net_SFTP::put() does not read from the local filesystem. $data is dumped directly into $remote_file. + * So, for example, if you set $data to 'filename.ext' and then do Net_SFTP::get(), you will get a file, twelve bytes + * long, containing 'filename.ext' as its contents. + * + * Setting $mode to NET_SFTP_LOCAL_FILE will change the above behavior. With NET_SFTP_LOCAL_FILE, $remote_file will + * contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how + * large $remote_file will be, as well. + * + * Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take + * care of that, yourself. + * + * @param String $remote_file + * @param String $data + * @param optional Integer $mode + * @return Boolean + * @access public + * @internal ASCII mode for SFTPv4/5/6 can be supported by adding a new function - Net_SFTP::setMode(). + */ + function put($remote_file, $data, $mode = NET_SFTP_STRING) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $remote_file = $this->_realpath($remote_file); + if ($remote_file === false) { + return false; + } + + $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE; + // according to the SFTP specs, NET_SFTP_OPEN_APPEND should "force all writes to append data at the end of the file." + // in practice, it doesn't seem to do that. + //$flags|= ($mode & NET_SFTP_RESUME) ? NET_SFTP_OPEN_APPEND : NET_SFTP_OPEN_TRUNCATE; + + // if NET_SFTP_OPEN_APPEND worked as it should the following (up until the -----------) wouldn't be necessary + $offset = 0; + if ($mode & NET_SFTP_RESUME) { + $size = $this->_size($remote_file); + $offset = $size !== false ? $size : 0; + } else { + $flags|= NET_SFTP_OPEN_TRUNCATE; + } + // -------------- + + $packet = pack('Na*N2', strlen($remote_file), $remote_file, $flags, 0); + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + $initialize = true; + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.3 + if ($mode & NET_SFTP_LOCAL_FILE) { + if (!is_file($data)) { + user_error("$data is not a valid file"); + return false; + } + $fp = @fopen($data, 'rb'); + if (!$fp) { + return false; + } + $size = filesize($data); + } else { + $size = strlen($data); + } + + $sent = 0; + $size = $size < 0 ? ($size & 0x7FFFFFFF) + 0x80000000 : $size; + + $sftp_packet_size = 4096; // PuTTY uses 4096 + $i = 0; + while ($sent < $size) { + $temp = $mode & NET_SFTP_LOCAL_FILE ? fread($fp, $sftp_packet_size) : $this->_string_shift($data, $sftp_packet_size); + $packet = pack('Na*N3a*', strlen($handle), $handle, 0, $offset + $sent, strlen($temp), $temp); + if (!$this->_send_sftp_packet(NET_SFTP_WRITE, $packet)) { + fclose($fp); + return false; + } + $sent+= strlen($temp); + + $i++; + + if ($i == 50) { + if (!$this->_read_put_responses($i)) { + $i = 0; + break; + } + $i = 0; + } + } + + if (!$this->_read_put_responses($i)) { + return false; + } + + if ($mode & NET_SFTP_LOCAL_FILE) { + fclose($fp); + } + + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return true; + } + + /** + * Reads multiple successive SSH_FXP_WRITE responses + * + * Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i + * SSH_FXP_WRITEs, in succession, and then reading $i responses. + * + * @param Integer $i + * @return Boolean + * @access private + */ + function _read_put_responses($i) + { + while ($i--) { + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + break; + } + } + + return $i < 0; + } + + /** + * Downloads a file from the SFTP server. + * + * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if + * the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the + * operation + * + * @param String $remote_file + * @param optional String $local_file + * @return Mixed + * @access public + */ + function get($remote_file, $local_file = false, $offset = 0, $length = -1) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $remote_file = $this->_realpath($remote_file); + if ($remote_file === false) { + return false; + } + + $packet = pack('Na*N2', strlen($remote_file), $remote_file, NET_SFTP_OPEN_READ, 0); + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + if ($local_file !== false) { + $fp = fopen($local_file, 'wb'); + if (!$fp) { + return false; + } + } else { + $content = ''; + } + + $size = (1 << 20) < $length || $length < 0 ? 1 << 20 : $length; + $start = $offset; + while (true) { + $packet = pack('Na*N3', strlen($handle), $handle, 0, $offset, $size); + if (!$this->_send_sftp_packet(NET_SFTP_READ, $packet)) { + if ($local_file !== false) { + fclose($fp); + } + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_DATA: + $temp = substr($response, 4); + $offset+= strlen($temp); + if ($local_file === false) { + $content.= $temp; + } else { + fputs($fp, $temp); + } + break; + case NET_SFTP_STATUS: + $this->_logError($response); + break 2; + default: + user_error('Expected SSH_FXP_DATA or SSH_FXP_STATUS'); + if ($local_file !== false) { + fclose($fp); + } + return false; + } + + if ($length > 0 && $length <= $offset - $size) { + if ($local_file === false) { + $content = substr($content, 0, $length); + } else { + ftruncate($fp, $length); + } + break; + } + } + + if ($local_file !== false) { + fclose($fp); + } + + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + if (isset($content)) { + return $content; + } + + return true; + } + + /** + * Deletes a file on the SFTP server. + * + * @param String $path + * @param Boolean $recursive + * @return Boolean + * @access public + */ + function delete($path, $recursive = true) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $path = $this->_realpath($path); + if ($path === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($path), $path))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + if (!$recursive) { + return false; + } + $i = 0; + $result = $this->_delete_recursive($path, $i); + $this->_read_put_responses($i); + return $result; + } + + return true; + } + + /** + * Recursively deletes directories on the SFTP server + * + * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. + * + * @param String $path + * @param Integer $i + * @return Boolean + * @access private + */ + function _delete_recursive($path, &$i) + { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + $entries = $this->_list($path, true, false); + + // normally $entries would have at least . and .. but it might not if the directories + // permissions didn't allow reading + if (empty($entries)) { + return false; + } + + foreach ($entries as $filename=>$props) { + if ($filename == '.' || $filename == '..') { + continue; + } + + if (!isset($props['type'])) { + return false; + } + + $temp = $path . '/' . $filename; + if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) { + if (!$this->_delete_recursive($temp, $i)) { + return false; + } + } else { + if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($temp), $temp))) { + return false; + } + + $i++; + + if ($i >= 50) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + } + } + + if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($path), $path))) { + return false; + } + $this->_remove_dir($path); + + $i++; + + if ($i >= 50) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + + return true; + } + + /** + * Renames a file or a directory on the SFTP server + * + * @param String $oldname + * @param String $newname + * @return Boolean + * @access public + */ + function rename($oldname, $newname) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $oldname = $this->_realpath($oldname); + $newname = $this->_realpath($newname); + if ($oldname === false || $newname === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + $packet = pack('Na*Na*', strlen($oldname), $oldname, strlen($newname), $newname); + if (!$this->_send_sftp_packet(NET_SFTP_RENAME, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return true; + } + + /** + * Parse Attributes + * + * See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info. + * + * @param String $response + * @return Array + * @access private + */ + function _parseAttributes(&$response) + { + $attr = array(); + extract(unpack('Nflags', $this->_string_shift($response, 4))); + // SFTPv4+ have a type field (a byte) that follows the above flag field + foreach ($this->attributes as $key => $value) { + switch ($flags & $key) { + case NET_SFTP_ATTR_SIZE: // 0x00000001 + // size is represented by a 64-bit integer, so we perhaps ought to be doing the following: + // $attr['size'] = new Math_BigInteger($this->_string_shift($response, 8), 256); + // of course, you shouldn't be using Net_SFTP to transfer files that are in excess of 4GB + // (0xFFFFFFFF bytes), anyway. as such, we'll just represent all file sizes that are bigger than + // 4GB as being 4GB. + extract(unpack('Nupper/Nsize', $this->_string_shift($response, 8))); + if ($upper) { + $attr['size'] = 0xFFFFFFFF; + } else { + $attr['size'] = $size < 0 ? ($size & 0x7FFFFFFF) + 0x80000000 : $size; + } + break; + case NET_SFTP_ATTR_UIDGID: // 0x00000002 (SFTPv3 only) + $attr+= unpack('Nuid/Ngid', $this->_string_shift($response, 8)); + break; + case NET_SFTP_ATTR_PERMISSIONS: // 0x00000004 + $attr+= unpack('Npermissions', $this->_string_shift($response, 4)); + break; + case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008 + $attr+= unpack('Natime/Nmtime', $this->_string_shift($response, 8)); + break; + case NET_SFTP_ATTR_EXTENDED: // 0x80000000 + extract(unpack('Ncount', $this->_string_shift($response, 4))); + for ($i = 0; $i < $count; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $key = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $attr[$key] = $this->_string_shift($response, $length); + } + } + } + return $attr; + } + + /** + * Parse Longname + * + * SFTPv3 doesn't provide any easy way of identifying a file type. You could try to open + * a file as a directory and see if an error is returned or you could try to parse the + * SFTPv3-specific longname field of the SSH_FXP_NAME packet. That's what this function does. + * The result is returned using the + * {@link http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 SFTPv4 type constants}. + * + * If the longname is in an unrecognized format bool(false) is returned. + * + * @param String $longname + * @return Mixed + * @access private + */ + function _parseLongname($longname) + { + // http://en.wikipedia.org/wiki/Unix_file_types + // http://en.wikipedia.org/wiki/Filesystem_permissions#Notation_of_traditional_Unix_permissions + if (preg_match('#^[^/]([r-][w-][xstST-]){3}#', $longname)) { + switch ($longname[0]) { + case '-': + return NET_SFTP_TYPE_REGULAR; + case 'd': + return NET_SFTP_TYPE_DIRECTORY; + case 'l': + return NET_SFTP_TYPE_SYMLINK; + default: + return NET_SFTP_TYPE_SPECIAL; + } + } + + return false; + } + + /** + * Sends SFTP Packets + * + * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. + * + * @param Integer $type + * @param String $data + * @see Net_SFTP::_get_sftp_packet() + * @see Net_SSH2::_send_channel_packet() + * @return Boolean + * @access private + */ + function _send_sftp_packet($type, $data) + { + $packet = $this->request_id !== false ? + pack('NCNa*', strlen($data) + 5, $type, $this->request_id, $data) : + pack('NCa*', strlen($data) + 1, $type, $data); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = $this->_send_channel_packet(NET_SFTP_CHANNEL, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SFTP_LOGGING')) { + $packet_type = '-> ' . $this->packet_types[$type] . + ' (' . round($stop - $start, 4) . 's)'; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_REALTIME) { + echo "
\r\n" . $this->_format_log(array($data), array($packet_type)) . "\r\n
\r\n"; + flush(); + ob_flush(); + } else { + $this->packet_type_log[] = $packet_type; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX) { + $this->packet_log[] = $data; + } + } + } + + return $result; + } + + /** + * Receives SFTP Packets + * + * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. + * + * Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present. + * There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA + * messages containing one SFTP packet. + * + * @see Net_SFTP::_send_sftp_packet() + * @return String + * @access private + */ + function _get_sftp_packet() + { + $this->curTimeout = false; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + + // SFTP packet length + while (strlen($this->packet_buffer) < 4) { + $temp = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if (is_bool($temp)) { + $this->packet_type = false; + $this->packet_buffer = ''; + return false; + } + $this->packet_buffer.= $temp; + } + extract(unpack('Nlength', $this->_string_shift($this->packet_buffer, 4))); + $tempLength = $length; + $tempLength-= strlen($this->packet_buffer); + + // SFTP packet type and data payload + while ($tempLength > 0) { + $temp = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if (is_bool($temp)) { + $this->packet_type = false; + $this->packet_buffer = ''; + return false; + } + $this->packet_buffer.= $temp; + $tempLength-= strlen($temp); + } + + $stop = strtok(microtime(), ' ') + strtok(''); + + $this->packet_type = ord($this->_string_shift($this->packet_buffer)); + + if ($this->request_id !== false) { + $this->_string_shift($this->packet_buffer, 4); // remove the request id + $length-= 5; // account for the request id and the packet type + } else { + $length-= 1; // account for the packet type + } + + $packet = $this->_string_shift($this->packet_buffer, $length); + + if (defined('NET_SFTP_LOGGING')) { + $packet_type = '<- ' . $this->packet_types[$this->packet_type] . + ' (' . round($stop - $start, 4) . 's)'; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_REALTIME) { + echo "
\r\n" . $this->_format_log(array($packet), array($packet_type)) . "\r\n
\r\n"; + flush(); + ob_flush(); + } else { + $this->packet_type_log[] = $packet_type; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX) { + $this->packet_log[] = $packet; + } + } + } + + return $packet; + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING') + * + * @access public + * @return String or Array + */ + function getSFTPLog() + { + if (!defined('NET_SFTP_LOGGING')) { + return false; + } + + switch (NET_SFTP_LOGGING) { + case NET_SFTP_LOG_COMPLEX: + return $this->_format_log($this->packet_log, $this->packet_type_log); + break; + //case NET_SFTP_LOG_SIMPLE: + default: + return $this->packet_type_log; + } + } + + /** + * Returns all errors + * + * @return String + * @access public + */ + function getSFTPErrors() + { + return $this->sftp_errors; + } + + /** + * Returns the last error + * + * @return String + * @access public + */ + function getLastSFTPError() + { + return count($this->sftp_errors) ? $this->sftp_errors[count($this->sftp_errors) - 1] : ''; + } + + /** + * Get supported SFTP versions + * + * @return Array + * @access public + */ + function getSupportedVersions() + { + $temp = array('version' => $this->version); + if (isset($this->extensions['versions'])) { + $temp['extensions'] = $this->extensions['versions']; + } + return $temp; + } + + /** + * Disconnect + * + * @param Integer $reason + * @return Boolean + * @access private + */ + function _disconnect($reason) + { + $this->pwd = false; + parent::_disconnect($reason); + } +} \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH1.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH1.php new file mode 100644 index 0000000000000000000000000000000000000000..8f5c79938e49f21d223fae387b72911107a3489f --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH1.php @@ -0,0 +1,1577 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->exec('ls -la'); + * ?> + * + * + * Here's another short example: + * + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->read('username@username:~$'); + * $ssh->write("ls -la\n"); + * echo $ssh->read('username@username:~$'); + * ?> + * + * + * More information on the SSHv1 specification can be found by reading + * {@link http://www.snailbook.com/docs/protocol-1.5.txt protocol-1.5.txt}. + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SSH1 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: SSH1.php,v 1.15 2010/03/22 22:01:38 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + * + * Used to do RSA encryption. + */ +if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); +} + +/** + * Include Crypt_Null + */ +//require_once('Crypt/Null.php'); + +/** + * Include Crypt_DES + */ +if (!class_exists('Crypt_DES')) { + require_once('Crypt/DES.php'); +} + +/** + * Include Crypt_TripleDES + */ +if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); +} + +/** + * Include Crypt_RC4 + */ +if (!class_exists('Crypt_RC4')) { + require_once('Crypt/RC4.php'); +} + +/** + * Include Crypt_Random + */ +// the class_exists() will only be called if the crypt_random_string function hasn't been defined and +// will trigger a call to __autoload() if you're wanting to auto-load classes +// call function_exists() a second time to stop the require_once from being called outside +// of the auto loader +if (!function_exists('crypt_random_string') && !class_exists('Crypt_Random') && !function_exists('crypt_random_string')) { + require_once('Crypt/Random.php'); +} + +/**#@+ + * Encryption Methods + * + * @see Net_SSH1::getSupportedCiphers() + * @access public + */ +/** + * No encryption + * + * Not supported. + */ +define('NET_SSH1_CIPHER_NONE', 0); +/** + * IDEA in CFB mode + * + * Not supported. + */ +define('NET_SSH1_CIPHER_IDEA', 1); +/** + * DES in CBC mode + */ +define('NET_SSH1_CIPHER_DES', 2); +/** + * Triple-DES in CBC mode + * + * All implementations are required to support this + */ +define('NET_SSH1_CIPHER_3DES', 3); +/** + * TRI's Simple Stream encryption CBC + * + * Not supported nor is it defined in the official SSH1 specs. OpenSSH, however, does define it (see cipher.h), + * although it doesn't use it (see cipher.c) + */ +define('NET_SSH1_CIPHER_BROKEN_TSS', 4); +/** + * RC4 + * + * Not supported. + * + * @internal According to the SSH1 specs: + * + * "The first 16 bytes of the session key are used as the key for + * the server to client direction. The remaining 16 bytes are used + * as the key for the client to server direction. This gives + * independent 128-bit keys for each direction." + * + * This library currently only supports encryption when the same key is being used for both directions. This is + * because there's only one $crypto object. Two could be added ($encrypt and $decrypt, perhaps). + */ +define('NET_SSH1_CIPHER_RC4', 5); +/** + * Blowfish + * + * Not supported nor is it defined in the official SSH1 specs. OpenSSH, however, defines it (see cipher.h) and + * uses it (see cipher.c) + */ +define('NET_SSH1_CIPHER_BLOWFISH', 6); +/**#@-*/ + +/**#@+ + * Authentication Methods + * + * @see Net_SSH1::getSupportedAuthentications() + * @access public + */ +/** + * .rhosts or /etc/hosts.equiv + */ +define('NET_SSH1_AUTH_RHOSTS', 1); +/** + * pure RSA authentication + */ +define('NET_SSH1_AUTH_RSA', 2); +/** + * password authentication + * + * This is the only method that is supported by this library. + */ +define('NET_SSH1_AUTH_PASSWORD', 3); +/** + * .rhosts with RSA host authentication + */ +define('NET_SSH1_AUTH_RHOSTS_RSA', 4); +/**#@-*/ + +/**#@+ + * Terminal Modes + * + * @link http://3sp.com/content/developer/maverick-net/docs/Maverick.SSH.PseudoTerminalModesMembers.html + * @access private + */ +define('NET_SSH1_TTY_OP_END', 0); +/**#@-*/ + +/** + * The Response Type + * + * @see Net_SSH1::_get_binary_packet() + * @access private + */ +define('NET_SSH1_RESPONSE_TYPE', 1); + +/** + * The Response Data + * + * @see Net_SSH1::_get_binary_packet() + * @access private + */ +define('NET_SSH1_RESPONSE_DATA', 2); + +/**#@+ + * Execution Bitmap Masks + * + * @see Net_SSH1::bitmap + * @access private + */ +define('NET_SSH1_MASK_CONSTRUCTOR', 0x00000001); +define('NET_SSH1_MASK_LOGIN', 0x00000002); +define('NET_SSH1_MASK_SHELL', 0x00000004); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH1::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SSH1_LOG_SIMPLE', 1); +/** + * Returns the message content + */ +define('NET_SSH1_LOG_COMPLEX', 2); +/** + * Outputs the content real-time + */ +define('NET_SSH2_LOG_REALTIME', 3); +/** + * Dumps the content real-time to a file + */ +define('NET_SSH2_LOG_REALTIME_FILE', 4); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH1::read() + */ +/** + * Returns when a string matching $expect exactly is found + */ +define('NET_SSH1_READ_SIMPLE', 1); +/** + * Returns when a string matching the regular expression $expect is found + */ +define('NET_SSH1_READ_REGEX', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of SSHv1. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Net_SSH1 + */ +class Net_SSH1 { + /** + * The SSH identifier + * + * @var String + * @access private + */ + var $identifier = 'SSH-1.5-phpseclib'; + + /** + * The Socket Object + * + * @var Object + * @access private + */ + var $fsock; + + /** + * The cryptography object + * + * @var Object + * @access private + */ + var $crypto = false; + + /** + * Execution Bitmap + * + * The bits that are set represent functions that have been called already. This is used to determine + * if a requisite function has been successfully executed. If not, an error should be thrown. + * + * @var Integer + * @access private + */ + var $bitmap = 0; + + /** + * The Server Key Public Exponent + * + * Logged for debug purposes + * + * @see Net_SSH1::getServerKeyPublicExponent() + * @var String + * @access private + */ + var $server_key_public_exponent; + + /** + * The Server Key Public Modulus + * + * Logged for debug purposes + * + * @see Net_SSH1::getServerKeyPublicModulus() + * @var String + * @access private + */ + var $server_key_public_modulus; + + /** + * The Host Key Public Exponent + * + * Logged for debug purposes + * + * @see Net_SSH1::getHostKeyPublicExponent() + * @var String + * @access private + */ + var $host_key_public_exponent; + + /** + * The Host Key Public Modulus + * + * Logged for debug purposes + * + * @see Net_SSH1::getHostKeyPublicModulus() + * @var String + * @access private + */ + var $host_key_public_modulus; + + /** + * Supported Ciphers + * + * Logged for debug purposes + * + * @see Net_SSH1::getSupportedCiphers() + * @var Array + * @access private + */ + var $supported_ciphers = array( + NET_SSH1_CIPHER_NONE => 'No encryption', + NET_SSH1_CIPHER_IDEA => 'IDEA in CFB mode', + NET_SSH1_CIPHER_DES => 'DES in CBC mode', + NET_SSH1_CIPHER_3DES => 'Triple-DES in CBC mode', + NET_SSH1_CIPHER_BROKEN_TSS => 'TRI\'s Simple Stream encryption CBC', + NET_SSH1_CIPHER_RC4 => 'RC4', + NET_SSH1_CIPHER_BLOWFISH => 'Blowfish' + ); + + /** + * Supported Authentications + * + * Logged for debug purposes + * + * @see Net_SSH1::getSupportedAuthentications() + * @var Array + * @access private + */ + var $supported_authentications = array( + NET_SSH1_AUTH_RHOSTS => '.rhosts or /etc/hosts.equiv', + NET_SSH1_AUTH_RSA => 'pure RSA authentication', + NET_SSH1_AUTH_PASSWORD => 'password authentication', + NET_SSH1_AUTH_RHOSTS_RSA => '.rhosts with RSA host authentication' + ); + + /** + * Server Identification + * + * @see Net_SSH1::getServerIdentification() + * @var String + * @access private + */ + var $server_identification = ''; + + /** + * Protocol Flags + * + * @see Net_SSH1::Net_SSH1() + * @var Array + * @access private + */ + var $protocol_flags = array(); + + /** + * Protocol Flag Log + * + * @see Net_SSH1::getLog() + * @var Array + * @access private + */ + var $protocol_flag_log = array(); + + /** + * Message Log + * + * @see Net_SSH1::getLog() + * @var Array + * @access private + */ + var $message_log = array(); + + /** + * Real-time log file pointer + * + * @see Net_SSH1::_append_log() + * @var Resource + * @access private + */ + var $realtime_log_file; + + /** + * Real-time log file size + * + * @see Net_SSH1::_append_log() + * @var Integer + * @access private + */ + var $realtime_log_size; + + /** + * Real-time log file wrap boolean + * + * @see Net_SSH1::_append_log() + * @var Boolean + * @access private + */ + var $realtime_log_wrap; + + /** + * Interactive Buffer + * + * @see Net_SSH1::read() + * @var Array + * @access private + */ + var $interactiveBuffer = ''; + + /** + * Timeout + * + * @see Net_SSH1::setTimeout() + * @access private + */ + var $timeout; + + /** + * Current Timeout + * + * @see Net_SSH2::_get_channel_packet() + * @access private + */ + var $curTimeout; + + /** + * Default Constructor. + * + * Connects to an SSHv1 server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @param optional Integer $cipher + * @return Net_SSH1 + * @access public + */ + function Net_SSH1($host, $port = 22, $timeout = 10, $cipher = NET_SSH1_CIPHER_3DES) + { + $this->protocol_flags = array( + 1 => 'NET_SSH1_MSG_DISCONNECT', + 2 => 'NET_SSH1_SMSG_PUBLIC_KEY', + 3 => 'NET_SSH1_CMSG_SESSION_KEY', + 4 => 'NET_SSH1_CMSG_USER', + 9 => 'NET_SSH1_CMSG_AUTH_PASSWORD', + 10 => 'NET_SSH1_CMSG_REQUEST_PTY', + 12 => 'NET_SSH1_CMSG_EXEC_SHELL', + 13 => 'NET_SSH1_CMSG_EXEC_CMD', + 14 => 'NET_SSH1_SMSG_SUCCESS', + 15 => 'NET_SSH1_SMSG_FAILURE', + 16 => 'NET_SSH1_CMSG_STDIN_DATA', + 17 => 'NET_SSH1_SMSG_STDOUT_DATA', + 18 => 'NET_SSH1_SMSG_STDERR_DATA', + 19 => 'NET_SSH1_CMSG_EOF', + 20 => 'NET_SSH1_SMSG_EXITSTATUS', + 33 => 'NET_SSH1_CMSG_EXIT_CONFIRMATION' + ); + + $this->_define_array($this->protocol_flags); + + $this->fsock = @fsockopen($host, $port, $errno, $errstr, $timeout); + if (!$this->fsock) { + user_error(rtrim("Cannot connect to $host. Error $errno. $errstr")); + return; + } + + $this->server_identification = $init_line = fgets($this->fsock, 255); + + if (defined('NET_SSH1_LOGGING')) { + $this->_append_log('<-', $this->server_identification); + $this->_append_log('->', $this->identifier . "\r\n"); + } + + if (!preg_match('#SSH-([0-9\.]+)-(.+)#', $init_line, $parts)) { + user_error('Can only connect to SSH servers'); + return; + } + if ($parts[1][0] != 1) { + user_error("Cannot connect to SSH $parts[1] servers"); + return; + } + + fputs($this->fsock, $this->identifier."\r\n"); + + $response = $this->_get_binary_packet(); + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_PUBLIC_KEY) { + user_error('Expected SSH_SMSG_PUBLIC_KEY'); + return; + } + + $anti_spoofing_cookie = $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 8); + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $server_key_public_exponent = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->server_key_public_exponent = $server_key_public_exponent; + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $server_key_public_modulus = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->server_key_public_modulus = $server_key_public_modulus; + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $host_key_public_exponent = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->host_key_public_exponent = $host_key_public_exponent; + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $host_key_public_modulus = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->host_key_public_modulus = $host_key_public_modulus; + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + // get a list of the supported ciphers + extract(unpack('Nsupported_ciphers_mask', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4))); + foreach ($this->supported_ciphers as $mask=>$name) { + if (($supported_ciphers_mask & (1 << $mask)) == 0) { + unset($this->supported_ciphers[$mask]); + } + } + + // get a list of the supported authentications + extract(unpack('Nsupported_authentications_mask', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4))); + foreach ($this->supported_authentications as $mask=>$name) { + if (($supported_authentications_mask & (1 << $mask)) == 0) { + unset($this->supported_authentications[$mask]); + } + } + + $session_id = pack('H*', md5($host_key_public_modulus->toBytes() . $server_key_public_modulus->toBytes() . $anti_spoofing_cookie)); + + $session_key = crypt_random_string(32); + $double_encrypted_session_key = $session_key ^ str_pad($session_id, 32, chr(0)); + + if ($server_key_public_modulus->compare($host_key_public_modulus) < 0) { + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $server_key_public_exponent, + $server_key_public_modulus + ) + ); + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $host_key_public_exponent, + $host_key_public_modulus + ) + ); + } else { + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $host_key_public_exponent, + $host_key_public_modulus + ) + ); + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $server_key_public_exponent, + $server_key_public_modulus + ) + ); + } + + $cipher = isset($this->supported_ciphers[$cipher]) ? $cipher : NET_SSH1_CIPHER_3DES; + $data = pack('C2a*na*N', NET_SSH1_CMSG_SESSION_KEY, $cipher, $anti_spoofing_cookie, 8 * strlen($double_encrypted_session_key), $double_encrypted_session_key, 0); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_SESSION_KEY'); + return; + } + + switch ($cipher) { + //case NET_SSH1_CIPHER_NONE: + // $this->crypto = new Crypt_Null(); + // break; + case NET_SSH1_CIPHER_DES: + $this->crypto = new Crypt_DES(); + $this->crypto->disablePadding(); + $this->crypto->enableContinuousBuffer(); + $this->crypto->setKey(substr($session_key, 0, 8)); + break; + case NET_SSH1_CIPHER_3DES: + $this->crypto = new Crypt_TripleDES(CRYPT_DES_MODE_3CBC); + $this->crypto->disablePadding(); + $this->crypto->enableContinuousBuffer(); + $this->crypto->setKey(substr($session_key, 0, 24)); + break; + //case NET_SSH1_CIPHER_RC4: + // $this->crypto = new Crypt_RC4(); + // $this->crypto->enableContinuousBuffer(); + // $this->crypto->setKey(substr($session_key, 0, 16)); + // break; + } + + $response = $this->_get_binary_packet(); + + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) { + user_error('Expected SSH_SMSG_SUCCESS'); + return; + } + + $this->bitmap = NET_SSH1_MASK_CONSTRUCTOR; + } + + /** + * Login + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access public + */ + function login($username, $password = '') + { + if (!($this->bitmap & NET_SSH1_MASK_CONSTRUCTOR)) { + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_USER, strlen($username), $username); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_USER'); + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) { + $this->bitmap |= NET_SSH1_MASK_LOGIN; + return true; + } else if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_FAILURE) { + user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen($password), $password); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_AUTH_PASSWORD'); + return false; + } + + // remove the username and password from the last logged packet + if (defined('NET_SSH1_LOGGING') && NET_SSH1_LOGGING == NET_SSH1_LOG_COMPLEX) { + $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen('password'), 'password'); + $this->message_log[count($this->message_log) - 1] = $data; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) { + $this->bitmap |= NET_SSH1_MASK_LOGIN; + return true; + } else if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_FAILURE) { + return false; + } else { + user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE'); + return false; + } + } + + /** + * Set Timeout + * + * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. + * Setting $timeout to false or 0 will mean there is no timeout. + * + * @param Mixed $timeout + */ + function setTimeout($timeout) + { + $this->timeout = $this->curTimeout = $timeout; + } + + /** + * Executes a command on a non-interactive shell, returns the output, and quits. + * + * An SSH1 server will close the connection after a command has been executed on a non-interactive shell. SSH2 + * servers don't, however, this isn't an SSH2 client. The way this works, on the server, is by initiating a + * shell with the -s option, as discussed in the following links: + * + * {@link http://www.faqs.org/docs/bashman/bashref_65.html http://www.faqs.org/docs/bashman/bashref_65.html} + * {@link http://www.faqs.org/docs/bashman/bashref_62.html http://www.faqs.org/docs/bashman/bashref_62.html} + * + * To execute further commands, a new Net_SSH1 object will need to be created. + * + * Returns false on failure and the output, otherwise. + * + * @see Net_SSH1::interactiveRead() + * @see Net_SSH1::interactiveWrite() + * @param String $cmd + * @return mixed + * @access public + */ + function exec($cmd, $block = true) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_EXEC_CMD, strlen($cmd), $cmd); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_EXEC_CMD'); + return false; + } + + if (!$block) { + return true; + } + + $output = ''; + $response = $this->_get_binary_packet(); + + if ($response !== false) { + do { + $output.= substr($response[NET_SSH1_RESPONSE_DATA], 4); + $response = $this->_get_binary_packet(); + } while (is_array($response) && $response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_EXITSTATUS); + } + + $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION); + + // i don't think it's really all that important if this packet gets sent or not. + $this->_send_binary_packet($data); + + fclose($this->fsock); + + // reset the execution bitmap - a new Net_SSH1 object needs to be created. + $this->bitmap = 0; + + return $output; + } + + /** + * Creates an interactive shell + * + * @see Net_SSH1::interactiveRead() + * @see Net_SSH1::interactiveWrite() + * @return Boolean + * @access private + */ + function _initShell() + { + // connect using the sample parameters in protocol-1.5.txt. + // according to wikipedia.org's entry on text terminals, "the fundamental type of application running on a text + // terminal is a command line interpreter or shell". thus, opening a terminal session to run the shell. + $data = pack('CNa*N4C', NET_SSH1_CMSG_REQUEST_PTY, strlen('vt100'), 'vt100', 24, 80, 0, 0, NET_SSH1_TTY_OP_END); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_REQUEST_PTY'); + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) { + user_error('Expected SSH_SMSG_SUCCESS'); + return false; + } + + $data = pack('C', NET_SSH1_CMSG_EXEC_SHELL); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_EXEC_SHELL'); + return false; + } + + $this->bitmap |= NET_SSH1_MASK_SHELL; + + //stream_set_blocking($this->fsock, 0); + + return true; + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH1::interactiveWrite() + * @param String $cmd + * @return Boolean + * @access public + */ + function write($cmd) + { + return $this->interactiveWrite($cmd); + } + + /** + * Returns the output of an interactive shell when there's a match for $expect + * + * $expect can take the form of a string literal or, if $mode == NET_SSH1_READ_REGEX, + * a regular expression. + * + * @see Net_SSH1::write() + * @param String $expect + * @param Integer $mode + * @return Boolean + * @access public + */ + function read($expect, $mode = NET_SSH1_READ_SIMPLE) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $match = $expect; + while (true) { + if ($mode == NET_SSH1_READ_REGEX) { + preg_match($expect, $this->interactiveBuffer, $matches); + $match = isset($matches[0]) ? $matches[0] : ''; + } + $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false; + if ($pos !== false) { + return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match)); + } + $response = $this->_get_binary_packet(); + + if ($response === true) { + return $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer)); + } + $this->interactiveBuffer.= substr($response[NET_SSH1_RESPONSE_DATA], 4); + } + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH1::interactiveRead() + * @param String $cmd + * @return Boolean + * @access public + */ + function interactiveWrite($cmd) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_STDIN_DATA, strlen($cmd), $cmd); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_STDIN'); + return false; + } + + return true; + } + + /** + * Returns the output of an interactive shell when no more output is available. + * + * Requires PHP 4.3.0 or later due to the use of the stream_select() function. If you see stuff like + * "", you're seeing ANSI escape codes. According to + * {@link http://support.microsoft.com/kb/101875 How to Enable ANSI.SYS in a Command Window}, "Windows NT + * does not support ANSI escape sequences in Win32 Console applications", so if you're a Windows user, + * there's not going to be much recourse. + * + * @see Net_SSH1::interactiveRead() + * @return String + * @access public + */ + function interactiveRead() + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $read = array($this->fsock); + $write = $except = null; + if (stream_select($read, $write, $except, 0)) { + $response = $this->_get_binary_packet(); + return substr($response[NET_SSH1_RESPONSE_DATA], 4); + } else { + return ''; + } + } + + /** + * Disconnect + * + * @access public + */ + function disconnect() + { + $this->_disconnect(); + } + + /** + * Destructor. + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * disconnect(). + * + * @access public + */ + function __destruct() + { + $this->_disconnect(); + } + + /** + * Disconnect + * + * @param String $msg + * @access private + */ + function _disconnect($msg = 'Client Quit') + { + if ($this->bitmap) { + $data = pack('C', NET_SSH1_CMSG_EOF); + $this->_send_binary_packet($data); + /* + $response = $this->_get_binary_packet(); + if ($response === true) { + $response = array(NET_SSH1_RESPONSE_TYPE => -1); + } + switch ($response[NET_SSH1_RESPONSE_TYPE]) { + case NET_SSH1_SMSG_EXITSTATUS: + $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION); + break; + default: + $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg); + } + */ + $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg); + + $this->_send_binary_packet($data); + fclose($this->fsock); + $this->bitmap = 0; + } + } + + /** + * Gets Binary Packets + * + * See 'The Binary Packet Protocol' of protocol-1.5.txt for more info. + * + * Also, this function could be improved upon by adding detection for the following exploit: + * http://www.securiteam.com/securitynews/5LP042K3FY.html + * + * @see Net_SSH1::_send_binary_packet() + * @return Array + * @access private + */ + function _get_binary_packet() + { + if (feof($this->fsock)) { + //user_error('connection closed prematurely'); + return false; + } + + if ($this->curTimeout) { + $read = array($this->fsock); + $write = $except = NULL; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $sec = floor($this->curTimeout); + $usec = 1000000 * ($this->curTimeout - $sec); + // on windows this returns a "Warning: Invalid CRT parameters detected" error + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + //$this->_disconnect('Timeout'); + return true; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + $this->curTimeout-= $elapsed; + } + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $temp = unpack('Nlength', fread($this->fsock, 4)); + + $padding_length = 8 - ($temp['length'] & 7); + $length = $temp['length'] + $padding_length; + + while ($length > 0) { + $temp = fread($this->fsock, $length); + $raw.= $temp; + $length-= strlen($temp); + } + $stop = strtok(microtime(), ' ') + strtok(''); + + if (strlen($raw) && $this->crypto !== false) { + $raw = $this->crypto->decrypt($raw); + } + + $padding = substr($raw, 0, $padding_length); + $type = $raw[$padding_length]; + $data = substr($raw, $padding_length + 1, -4); + + $temp = unpack('Ncrc', substr($raw, -4)); + + //if ( $temp['crc'] != $this->_crc($padding . $type . $data) ) { + // user_error('Bad CRC in packet from server'); + // return false; + //} + + $type = ord($type); + + if (defined('NET_SSH1_LOGGING')) { + $temp = isset($this->protocol_flags[$type]) ? $this->protocol_flags[$type] : 'UNKNOWN'; + $temp = '<- ' . $temp . + ' (' . round($stop - $start, 4) . 's)'; + $this->_append_log($temp, $data); + } + + return array( + NET_SSH1_RESPONSE_TYPE => $type, + NET_SSH1_RESPONSE_DATA => $data + ); + } + + /** + * Sends Binary Packets + * + * Returns true on success, false on failure. + * + * @see Net_SSH1::_get_binary_packet() + * @param String $data + * @return Boolean + * @access private + */ + function _send_binary_packet($data) + { + if (feof($this->fsock)) { + //user_error('connection closed prematurely'); + return false; + } + + $length = strlen($data) + 4; + + $padding = crypt_random_string(8 - ($length & 7)); + + $orig = $data; + $data = $padding . $data; + $data.= pack('N', $this->_crc($data)); + + if ($this->crypto !== false) { + $data = $this->crypto->encrypt($data); + } + + $packet = pack('Na*', $length, $data); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = strlen($packet) == fputs($this->fsock, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SSH1_LOGGING')) { + $temp = isset($this->protocol_flags[ord($orig[0])]) ? $this->protocol_flags[ord($orig[0])] : 'UNKNOWN'; + $temp = '-> ' . $temp . + ' (' . round($stop - $start, 4) . 's)'; + $this->_append_log($temp, $orig); + } + + return $result; + } + + /** + * Cyclic Redundancy Check (CRC) + * + * PHP's crc32 function is implemented slightly differently than the one that SSH v1 uses, so + * we've reimplemented it. A more detailed discussion of the differences can be found after + * $crc_lookup_table's initialization. + * + * @see Net_SSH1::_get_binary_packet() + * @see Net_SSH1::_send_binary_packet() + * @param String $data + * @return Integer + * @access private + */ + function _crc($data) + { + static $crc_lookup_table = array( + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, + 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, + 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, + 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, + 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, + 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, + 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, + 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, + 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, + 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, + 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, + 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, + 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, + 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, + 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, + 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, + 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, + 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, + 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, + 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, + 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, + 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, + 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, + 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, + 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, + 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, + 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, + 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, + 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, + 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, + 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, + 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, + 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, + 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, + 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, + 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, + 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, + 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, + 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, + 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, + 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, + 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, + 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, + 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, + 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, + 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, + 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, + 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, + 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, + 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, + 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D + ); + + // For this function to yield the same output as PHP's crc32 function, $crc would have to be + // set to 0xFFFFFFFF, initially - not 0x00000000 as it currently is. + $crc = 0x00000000; + $length = strlen($data); + + for ($i=0;$i<$length;$i++) { + // We AND $crc >> 8 with 0x00FFFFFF because we want the eight newly added bits to all + // be zero. PHP, unfortunately, doesn't always do this. 0x80000000 >> 8, as an example, + // yields 0xFF800000 - not 0x00800000. The following link elaborates: + // http://www.php.net/manual/en/language.operators.bitwise.php#57281 + $crc = (($crc >> 8) & 0x00FFFFFF) ^ $crc_lookup_table[($crc & 0xFF) ^ ord($data[$i])]; + } + + // In addition to having to set $crc to 0xFFFFFFFF, initially, the return value must be XOR'd with + // 0xFFFFFFFF for this function to return the same thing that PHP's crc32 function would. + return $crc; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * RSA Encrypt + * + * Returns mod(pow($m, $e), $n), where $n should be the product of two (large) primes $p and $q and where $e + * should be a number with the property that gcd($e, ($p - 1) * ($q - 1)) == 1. Could just make anything that + * calls this call modexp, instead, but I think this makes things clearer, maybe... + * + * @see Net_SSH1::Net_SSH1() + * @param Math_BigInteger $m + * @param Array $key + * @return Math_BigInteger + * @access private + */ + function _rsa_crypt($m, $key) + { + /* + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + + $rsa = new Crypt_RSA(); + $rsa->loadKey($key, CRYPT_RSA_PUBLIC_FORMAT_RAW); + $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); + return $rsa->encrypt($m); + */ + + // To quote from protocol-1.5.txt: + // The most significant byte (which is only partial as the value must be + // less than the public modulus, which is never a power of two) is zero. + // + // The next byte contains the value 2 (which stands for public-key + // encrypted data in the PKCS standard [PKCS#1]). Then, there are non- + // zero random bytes to fill any unused space, a zero byte, and the data + // to be encrypted in the least significant bytes, the last byte of the + // data in the least significant byte. + + // Presumably the part of PKCS#1 they're refering to is "Section 7.2.1 Encryption Operation", + // under "7.2 RSAES-PKCS1-v1.5" and "7 Encryption schemes" of the following URL: + // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf + $modulus = $key[1]->toBytes(); + $length = strlen($modulus) - strlen($m) - 3; + $random = ''; + while (strlen($random) != $length) { + $block = crypt_random_string($length - strlen($random)); + $block = str_replace("\x00", '', $block); + $random.= $block; + } + $temp = chr(0) . chr(2) . $random . chr(0) . $m; + + $m = new Math_BigInteger($temp, 256); + $m = $m->modPow($key[0], $key[1]); + + return $m->toBytes(); + } + + /** + * Define Array + * + * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of + * named constants from it, using the value as the name of the constant and the index as the value of the constant. + * If any of the constants that would be defined already exists, none of the constants will be defined. + * + * @param Array $array + * @access private + */ + function _define_array() + { + $args = func_get_args(); + foreach ($args as $arg) { + foreach ($arg as $key=>$value) { + if (!defined($value)) { + define($value, $key); + } else { + break 2; + } + } + } + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX, an array if NET_SSH2_LOGGING == NET_SSH2_LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING') + * + * @access public + * @return String or Array + */ + function getLog() + { + if (!defined('NET_SSH1_LOGGING')) { + return false; + } + + switch (NET_SSH1_LOGGING) { + case NET_SSH1_LOG_SIMPLE: + return $this->message_number_log; + break; + case NET_SSH1_LOG_COMPLEX: + return $this->_format_log($this->message_log, $this->protocol_flags_log); + break; + default: + return false; + } + } + + /** + * Formats a log for printing + * + * @param Array $message_log + * @param Array $message_number_log + * @access private + * @return String + */ + function _format_log($message_log, $message_number_log) + { + static $boundary = ':', $long_width = 65, $short_width = 16; + + $output = ''; + for ($i = 0; $i < count($message_log); $i++) { + $output.= $message_number_log[$i] . "\r\n"; + $current_log = $message_log[$i]; + $j = 0; + do { + if (strlen($current_log)) { + $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; + } + $fragment = $this->_string_shift($current_log, $short_width); + $hex = substr( + preg_replace( + '#(.)#es', + '"' . $boundary . '" . str_pad(dechex(ord(substr("\\1", -1))), 2, "0", STR_PAD_LEFT)', + $fragment), + strlen($boundary) + ); + // replace non ASCII printable characters with dots + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + // also replace < with a . since < messes up the output on web browsers + $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment); + $output.= str_pad($hex, $long_width - $short_width, ' ') . $raw . "\r\n"; + $j++; + } while (strlen($current_log)); + $output.= "\r\n"; + } + + return $output; + } + + /** + * Return the server key public exponent + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getServerKeyPublicExponent($raw_output = false) + { + return $raw_output ? $this->server_key_public_exponent->toBytes() : $this->server_key_public_exponent->toString(); + } + + /** + * Return the server key public modulus + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getServerKeyPublicModulus($raw_output = false) + { + return $raw_output ? $this->server_key_public_modulus->toBytes() : $this->server_key_public_modulus->toString(); + } + + /** + * Return the host key public exponent + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getHostKeyPublicExponent($raw_output = false) + { + return $raw_output ? $this->host_key_public_exponent->toBytes() : $this->host_key_public_exponent->toString(); + } + + /** + * Return the host key public modulus + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getHostKeyPublicModulus($raw_output = false) + { + return $raw_output ? $this->host_key_public_modulus->toBytes() : $this->host_key_public_modulus->toString(); + } + + /** + * Return a list of ciphers supported by SSH1 server. + * + * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output + * is set to true, returns, instead, an array of constants. ie. instead of array('Triple-DES in CBC mode'), you'll + * get array(NET_SSH1_CIPHER_3DES). + * + * @param optional Boolean $raw_output + * @return Array + * @access public + */ + function getSupportedCiphers($raw_output = false) + { + return $raw_output ? array_keys($this->supported_ciphers) : array_values($this->supported_ciphers); + } + + /** + * Return a list of authentications supported by SSH1 server. + * + * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output + * is set to true, returns, instead, an array of constants. ie. instead of array('password authentication'), you'll + * get array(NET_SSH1_AUTH_PASSWORD). + * + * @param optional Boolean $raw_output + * @return Array + * @access public + */ + function getSupportedAuthentications($raw_output = false) + { + return $raw_output ? array_keys($this->supported_authentications) : array_values($this->supported_authentications); + } + + /** + * Return the server identification. + * + * @return String + * @access public + */ + function getServerIdentification() + { + return rtrim($this->server_identification); + } + + /** + * Logs data packets + * + * Makes sure that only the last 1MB worth of packets will be logged + * + * @param String $data + * @access private + */ + function _append_log($protocol_flags, $message) + { + switch (NET_SSH1_LOGGING) { + // useful for benchmarks + case NET_SSH1_LOG_SIMPLE: + $this->protocol_flags_log[] = $protocol_flags; + break; + // the most useful log for SSH1 + case NET_SSH1_LOG_COMPLEX: + $this->protocol_flags_log[] = $protocol_flags; + $this->_string_shift($message); + $this->log_size+= strlen($message); + $this->message_log[] = $message; + while ($this->log_size > NET_SSH2_LOG_MAX_SIZE) { + $this->log_size-= strlen(array_shift($this->message_log)); + array_shift($this->protocol_flags_log); + } + break; + // dump the output out realtime; packets may be interspersed with non packets, + // passwords won't be filtered out and select other packets may not be correctly + // identified + case NET_SSH1_LOG_REALTIME: + echo "
\r\n" . $this->_format_log(array($message), array($protocol_flags)) . "\r\n
\r\n"; + @flush(); + @ob_flush(); + break; + // basically the same thing as NET_SSH1_LOG_REALTIME with the caveat that NET_SSH1_LOG_REALTIME_FILE + // needs to be defined and that the resultant log file will be capped out at NET_SSH1_LOG_MAX_SIZE. + // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily + // at the beginning of the file + case NET_SSH1_LOG_REALTIME_FILE: + if (!isset($this->realtime_log_file)) { + // PHP doesn't seem to like using constants in fopen() + $filename = NET_SSH2_LOG_REALTIME_FILE; + $fp = fopen($filename, 'w'); + $this->realtime_log_file = $fp; + } + if (!is_resource($this->realtime_log_file)) { + break; + } + $entry = $this->_format_log(array($message), array($protocol_flags)); + if ($this->realtime_log_wrap) { + $temp = "<<< START >>>\r\n"; + $entry.= $temp; + fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp)); + } + $this->realtime_log_size+= strlen($entry); + if ($this->realtime_log_size > NET_SSH1_LOG_MAX_SIZE) { + fseek($this->realtime_log_file, 0); + $this->realtime_log_size = strlen($entry); + $this->realtime_log_wrap = true; + } + fputs($this->realtime_log_file, $entry); + } + } +} \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH2.php b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH2.php new file mode 100644 index 0000000000000000000000000000000000000000..43bfbca2dbe17abbd111da70af3a6b61399acb71 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/Net/SSH2.php @@ -0,0 +1,3009 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->exec('pwd'); + * echo $ssh->exec('ls -la'); + * ?> + * + * + * + * setPassword('whatever'); + * $key->loadKey(file_get_contents('privatekey')); + * + * $ssh = new Net_SSH2('www.domain.tld'); + * if (!$ssh->login('username', $key)) { + * exit('Login Failed'); + * } + * + * echo $ssh->read('username@username:~$'); + * $ssh->write("ls -la\n"); + * echo $ssh->read('username@username:~$'); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SSH2 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version $Id: SSH2.php,v 1.53 2010-10-24 01:24:30 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + * + * Used to do Diffie-Hellman key exchange and DSA/RSA signature verification. + */ +if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); +} + +/** + * Include Crypt_Random + */ +// the class_exists() will only be called if the crypt_random_string function hasn't been defined and +// will trigger a call to __autoload() if you're wanting to auto-load classes +// call function_exists() a second time to stop the require_once from being called outside +// of the auto loader +if (!function_exists('crypt_random_string') && !class_exists('Crypt_Random') && !function_exists('crypt_random_string')) { + require_once('Crypt/Random.php'); +} + +/** + * Include Crypt_Hash + */ +if (!class_exists('Crypt_Hash')) { + require_once('Crypt/Hash.php'); +} + +/** + * Include Crypt_TripleDES + */ +if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); +} + +/** + * Include Crypt_RC4 + */ +if (!class_exists('Crypt_RC4')) { + require_once('Crypt/RC4.php'); +} + +/** + * Include Crypt_AES + */ +if (!class_exists('Crypt_AES')) { + require_once('Crypt/AES.php'); +} + +/**#@+ + * Execution Bitmap Masks + * + * @see Net_SSH2::bitmap + * @access private + */ +define('NET_SSH2_MASK_CONSTRUCTOR', 0x00000001); +define('NET_SSH2_MASK_LOGIN', 0x00000002); +define('NET_SSH2_MASK_SHELL', 0x00000004); +/**#@-*/ + +/**#@+ + * Channel constants + * + * RFC4254 refers not to client and server channels but rather to sender and recipient channels. we don't refer + * to them in that way because RFC4254 toggles the meaning. the client sends a SSH_MSG_CHANNEL_OPEN message with + * a sender channel and the server sends a SSH_MSG_CHANNEL_OPEN_CONFIRMATION in response, with a sender and a + * recepient channel. at first glance, you might conclude that SSH_MSG_CHANNEL_OPEN_CONFIRMATION's sender channel + * would be the same thing as SSH_MSG_CHANNEL_OPEN's sender channel, but it's not, per this snipet: + * The 'recipient channel' is the channel number given in the original + * open request, and 'sender channel' is the channel number allocated by + * the other side. + * + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::_get_channel_packet() + * @access private + */ +define('NET_SSH2_CHANNEL_EXEC', 0); // PuTTy uses 0x100 +define('NET_SSH2_CHANNEL_SHELL',1); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH2::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SSH2_LOG_SIMPLE', 1); +/** + * Returns the message content + */ +define('NET_SSH2_LOG_COMPLEX', 2); +/** + * Outputs the content real-time + */ +define('NET_SSH2_LOG_REALTIME', 3); +/** + * Dumps the content real-time to a file + */ +define('NET_SSH2_LOG_REALTIME_FILE', 4); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH2::read() + */ +/** + * Returns when a string matching $expect exactly is found + */ +define('NET_SSH2_READ_SIMPLE', 1); +/** + * Returns when a string matching the regular expression $expect is found + */ +define('NET_SSH2_READ_REGEX', 2); +/** + * Make sure that the log never gets larger than this + */ +define('NET_SSH2_LOG_MAX_SIZE', 1024 * 1024); +/**#@-*/ + +/** + * Pure-PHP implementation of SSHv2. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Net_SSH2 + */ +class Net_SSH2 { + /** + * The SSH identifier + * + * @var String + * @access private + */ + var $identifier = 'SSH-2.0-phpseclib_0.3'; + + /** + * The Socket Object + * + * @var Object + * @access private + */ + var $fsock; + + /** + * Execution Bitmap + * + * The bits that are set represent functions that have been called already. This is used to determine + * if a requisite function has been successfully executed. If not, an error should be thrown. + * + * @var Integer + * @access private + */ + var $bitmap = 0; + + /** + * Error information + * + * @see Net_SSH2::getErrors() + * @see Net_SSH2::getLastError() + * @var String + * @access private + */ + var $errors = array(); + + /** + * Server Identifier + * + * @see Net_SSH2::getServerIdentification() + * @var String + * @access private + */ + var $server_identifier = ''; + + /** + * Key Exchange Algorithms + * + * @see Net_SSH2::getKexAlgorithims() + * @var Array + * @access private + */ + var $kex_algorithms; + + /** + * Server Host Key Algorithms + * + * @see Net_SSH2::getServerHostKeyAlgorithms() + * @var Array + * @access private + */ + var $server_host_key_algorithms; + + /** + * Encryption Algorithms: Client to Server + * + * @see Net_SSH2::getEncryptionAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $encryption_algorithms_client_to_server; + + /** + * Encryption Algorithms: Server to Client + * + * @see Net_SSH2::getEncryptionAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $encryption_algorithms_server_to_client; + + /** + * MAC Algorithms: Client to Server + * + * @see Net_SSH2::getMACAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $mac_algorithms_client_to_server; + + /** + * MAC Algorithms: Server to Client + * + * @see Net_SSH2::getMACAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $mac_algorithms_server_to_client; + + /** + * Compression Algorithms: Client to Server + * + * @see Net_SSH2::getCompressionAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $compression_algorithms_client_to_server; + + /** + * Compression Algorithms: Server to Client + * + * @see Net_SSH2::getCompressionAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $compression_algorithms_server_to_client; + + /** + * Languages: Server to Client + * + * @see Net_SSH2::getLanguagesServer2Client() + * @var Array + * @access private + */ + var $languages_server_to_client; + + /** + * Languages: Client to Server + * + * @see Net_SSH2::getLanguagesClient2Server() + * @var Array + * @access private + */ + var $languages_client_to_server; + + /** + * Block Size for Server to Client Encryption + * + * "Note that the length of the concatenation of 'packet_length', + * 'padding_length', 'payload', and 'random padding' MUST be a multiple + * of the cipher block size or 8, whichever is larger. This constraint + * MUST be enforced, even when using stream ciphers." + * + * -- http://tools.ietf.org/html/rfc4253#section-6 + * + * @see Net_SSH2::Net_SSH2() + * @see Net_SSH2::_send_binary_packet() + * @var Integer + * @access private + */ + var $encrypt_block_size = 8; + + /** + * Block Size for Client to Server Encryption + * + * @see Net_SSH2::Net_SSH2() + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $decrypt_block_size = 8; + + /** + * Server to Client Encryption Object + * + * @see Net_SSH2::_get_binary_packet() + * @var Object + * @access private + */ + var $decrypt = false; + + /** + * Client to Server Encryption Object + * + * @see Net_SSH2::_send_binary_packet() + * @var Object + * @access private + */ + var $encrypt = false; + + /** + * Client to Server HMAC Object + * + * @see Net_SSH2::_send_binary_packet() + * @var Object + * @access private + */ + var $hmac_create = false; + + /** + * Server to Client HMAC Object + * + * @see Net_SSH2::_get_binary_packet() + * @var Object + * @access private + */ + var $hmac_check = false; + + /** + * Size of server to client HMAC + * + * We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read. + * For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is + * append it. + * + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $hmac_size = false; + + /** + * Server Public Host Key + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $server_public_host_key; + + /** + * Session identifer + * + * "The exchange hash H from the first key exchange is additionally + * used as the session identifier, which is a unique identifier for + * this connection." + * + * -- http://tools.ietf.org/html/rfc4253#section-7.2 + * + * @see Net_SSH2::_key_exchange() + * @var String + * @access private + */ + var $session_id = false; + + /** + * Exchange hash + * + * The current exchange hash + * + * @see Net_SSH2::_key_exchange() + * @var String + * @access private + */ + var $exchange_hash = false; + + /** + * Message Numbers + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $message_numbers = array(); + + /** + * Disconnection Message 'reason codes' defined in RFC4253 + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $disconnect_reasons = array(); + + /** + * SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254 + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $channel_open_failure_reasons = array(); + + /** + * Terminal Modes + * + * @link http://tools.ietf.org/html/rfc4254#section-8 + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $terminal_modes = array(); + + /** + * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes + * + * @link http://tools.ietf.org/html/rfc4254#section-5.2 + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $channel_extended_data_type_codes = array(); + + /** + * Send Sequence Number + * + * See 'Section 6.4. Data Integrity' of rfc4253 for more info. + * + * @see Net_SSH2::_send_binary_packet() + * @var Integer + * @access private + */ + var $send_seq_no = 0; + + /** + * Get Sequence Number + * + * See 'Section 6.4. Data Integrity' of rfc4253 for more info. + * + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $get_seq_no = 0; + + /** + * Server Channels + * + * Maps client channels to server channels + * + * @see Net_SSH2::_get_channel_packet() + * @see Net_SSH2::exec() + * @var Array + * @access private + */ + var $server_channels = array(); + + /** + * Channel Buffers + * + * If a client requests a packet from one channel but receives two packets from another those packets should + * be placed in a buffer + * + * @see Net_SSH2::_get_channel_packet() + * @see Net_SSH2::exec() + * @var Array + * @access private + */ + var $channel_buffers = array(); + + /** + * Channel Status + * + * Contains the type of the last sent message + * + * @see Net_SSH2::_get_channel_packet() + * @var Array + * @access private + */ + var $channel_status = array(); + + /** + * Packet Size + * + * Maximum packet size indexed by channel + * + * @see Net_SSH2::_send_channel_packet() + * @var Array + * @access private + */ + var $packet_size_client_to_server = array(); + + /** + * Message Number Log + * + * @see Net_SSH2::getLog() + * @var Array + * @access private + */ + var $message_number_log = array(); + + /** + * Message Log + * + * @see Net_SSH2::getLog() + * @var Array + * @access private + */ + var $message_log = array(); + + /** + * The Window Size + * + * Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 4GB) + * + * @var Integer + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::exec() + * @access private + */ + var $window_size = 0x7FFFFFFF; + + /** + * Window size + * + * Window size indexed by channel + * + * @see Net_SSH2::_send_channel_packet() + * @var Array + * @access private + */ + var $window_size_client_to_server = array(); + + /** + * Server signature + * + * Verified against $this->session_id + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $signature = ''; + + /** + * Server signature format + * + * ssh-rsa or ssh-dss. + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $signature_format = ''; + + /** + * Interactive Buffer + * + * @see Net_SSH2::read() + * @var Array + * @access private + */ + var $interactiveBuffer = ''; + + /** + * Current log size + * + * Should never exceed NET_SSH2_LOG_MAX_SIZE + * + * @see Net_SSH2::_send_binary_packet() + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $log_size; + + /** + * Timeout + * + * @see Net_SSH2::setTimeout() + * @access private + */ + var $timeout; + + /** + * Current Timeout + * + * @see Net_SSH2::_get_channel_packet() + * @access private + */ + var $curTimeout; + + /** + * Real-time log file pointer + * + * @see Net_SSH2::_append_log() + * @var Resource + * @access private + */ + var $realtime_log_file; + + /** + * Real-time log file size + * + * @see Net_SSH2::_append_log() + * @var Integer + * @access private + */ + var $realtime_log_size; + + /** + * Has the signature been validated? + * + * @see Net_SSH2::getServerPublicHostKey() + * @var Boolean + * @access private + */ + var $signature_validated = false; + + /** + * Real-time log file wrap boolean + * + * @see Net_SSH2::_append_log() + * @access private + */ + var $realtime_log_wrap; + + /** + * Flag to suppress stderr from output + * + * @see Net_SSH2::enableQuietMode() + * @access private + */ + var $quiet_mode = false; + + /** + * Time of first network activity + * + * @access private + */ + var $last_packet; + + /** + * Exit status returned from ssh if any + * + * @var Integer + * @access private + */ + var $exit_status; + + /** + * Default Constructor. + * + * Connects to an SSHv2 server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @return Net_SSH2 + * @access public + */ + function Net_SSH2($host, $port = 22, $timeout = 10) + { + $this->last_packet = strtok(microtime(), ' ') + strtok(''); // == microtime(true) in PHP5 + $this->message_numbers = array( + 1 => 'NET_SSH2_MSG_DISCONNECT', + 2 => 'NET_SSH2_MSG_IGNORE', + 3 => 'NET_SSH2_MSG_UNIMPLEMENTED', + 4 => 'NET_SSH2_MSG_DEBUG', + 5 => 'NET_SSH2_MSG_SERVICE_REQUEST', + 6 => 'NET_SSH2_MSG_SERVICE_ACCEPT', + 20 => 'NET_SSH2_MSG_KEXINIT', + 21 => 'NET_SSH2_MSG_NEWKEYS', + 30 => 'NET_SSH2_MSG_KEXDH_INIT', + 31 => 'NET_SSH2_MSG_KEXDH_REPLY', + 50 => 'NET_SSH2_MSG_USERAUTH_REQUEST', + 51 => 'NET_SSH2_MSG_USERAUTH_FAILURE', + 52 => 'NET_SSH2_MSG_USERAUTH_SUCCESS', + 53 => 'NET_SSH2_MSG_USERAUTH_BANNER', + + 80 => 'NET_SSH2_MSG_GLOBAL_REQUEST', + 81 => 'NET_SSH2_MSG_REQUEST_SUCCESS', + 82 => 'NET_SSH2_MSG_REQUEST_FAILURE', + 90 => 'NET_SSH2_MSG_CHANNEL_OPEN', + 91 => 'NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION', + 92 => 'NET_SSH2_MSG_CHANNEL_OPEN_FAILURE', + 93 => 'NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST', + 94 => 'NET_SSH2_MSG_CHANNEL_DATA', + 95 => 'NET_SSH2_MSG_CHANNEL_EXTENDED_DATA', + 96 => 'NET_SSH2_MSG_CHANNEL_EOF', + 97 => 'NET_SSH2_MSG_CHANNEL_CLOSE', + 98 => 'NET_SSH2_MSG_CHANNEL_REQUEST', + 99 => 'NET_SSH2_MSG_CHANNEL_SUCCESS', + 100 => 'NET_SSH2_MSG_CHANNEL_FAILURE' + ); + $this->disconnect_reasons = array( + 1 => 'NET_SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT', + 2 => 'NET_SSH2_DISCONNECT_PROTOCOL_ERROR', + 3 => 'NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED', + 4 => 'NET_SSH2_DISCONNECT_RESERVED', + 5 => 'NET_SSH2_DISCONNECT_MAC_ERROR', + 6 => 'NET_SSH2_DISCONNECT_COMPRESSION_ERROR', + 7 => 'NET_SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE', + 8 => 'NET_SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED', + 9 => 'NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE', + 10 => 'NET_SSH2_DISCONNECT_CONNECTION_LOST', + 11 => 'NET_SSH2_DISCONNECT_BY_APPLICATION', + 12 => 'NET_SSH2_DISCONNECT_TOO_MANY_CONNECTIONS', + 13 => 'NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER', + 14 => 'NET_SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE', + 15 => 'NET_SSH2_DISCONNECT_ILLEGAL_USER_NAME' + ); + $this->channel_open_failure_reasons = array( + 1 => 'NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED' + ); + $this->terminal_modes = array( + 0 => 'NET_SSH2_TTY_OP_END' + ); + $this->channel_extended_data_type_codes = array( + 1 => 'NET_SSH2_EXTENDED_DATA_STDERR' + ); + + $this->_define_array( + $this->message_numbers, + $this->disconnect_reasons, + $this->channel_open_failure_reasons, + $this->terminal_modes, + $this->channel_extended_data_type_codes, + array(60 => 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'), + array(60 => 'NET_SSH2_MSG_USERAUTH_PK_OK'), + array(60 => 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST', + 61 => 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE') + ); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $this->fsock = @fsockopen($host, $port, $errno, $errstr, $timeout); + if (!$this->fsock) { + user_error(rtrim("Cannot connect to $host. Error $errno. $errstr")); + return; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + + $timeout-= $elapsed; + + if ($timeout <= 0) { + user_error(rtrim("Cannot connect to $host. Timeout error")); + return; + } + + $read = array($this->fsock); + $write = $except = NULL; + + $sec = floor($timeout); + $usec = 1000000 * ($timeout - $sec); + + // on windows this returns a "Warning: Invalid CRT parameters detected" error + // the !count() is done as a workaround for + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + user_error(rtrim("Cannot connect to $host. Banner timeout")); + return; + } + + /* According to the SSH2 specs, + + "The server MAY send other lines of data before sending the version + string. Each line SHOULD be terminated by a Carriage Return and Line + Feed. Such lines MUST NOT begin with "SSH-", and SHOULD be encoded + in ISO-10646 UTF-8 [RFC3629] (language is not specified). Clients + MUST be able to process such lines." */ + $temp = ''; + $extra = ''; + while (!feof($this->fsock) && !preg_match('#^SSH-(\d\.\d+)#', $temp, $matches)) { + if (substr($temp, -2) == "\r\n") { + $extra.= $temp; + $temp = ''; + } + $temp.= fgets($this->fsock, 255); + } + + if (feof($this->fsock)) { + user_error('Connection closed by server'); + return false; + } + + $ext = array(); + if (extension_loaded('mcrypt')) { + $ext[] = 'mcrypt'; + } + if (extension_loaded('gmp')) { + $ext[] = 'gmp'; + } else if (extension_loaded('bcmath')) { + $ext[] = 'bcmath'; + } + + if (!empty($ext)) { + $this->identifier.= ' (' . implode(', ', $ext) . ')'; + } + + if (defined('NET_SSH2_LOGGING')) { + $this->_append_log('<-', $extra . $temp); + $this->_append_log('->', $this->identifier . "\r\n"); + } + + $this->server_identifier = trim($temp, "\r\n"); + if (strlen($extra)) { + $this->errors[] = utf8_decode($extra); + } + + if ($matches[1] != '1.99' && $matches[1] != '2.0') { + user_error("Cannot connect to SSH $matches[1] servers"); + return; + } + + fputs($this->fsock, $this->identifier . "\r\n"); + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return; + } + + if (ord($response[0]) != NET_SSH2_MSG_KEXINIT) { + user_error('Expected SSH_MSG_KEXINIT'); + return; + } + + if (!$this->_key_exchange($response)) { + return; + } + + $this->bitmap = NET_SSH2_MASK_CONSTRUCTOR; + } + + /** + * Key Exchange + * + * @param String $kexinit_payload_server + * @access private + */ + function _key_exchange($kexinit_payload_server) + { + static $kex_algorithms = array( + 'diffie-hellman-group1-sha1', // REQUIRED + 'diffie-hellman-group14-sha1' // REQUIRED + ); + + static $server_host_key_algorithms = array( + 'ssh-rsa', // RECOMMENDED sign Raw RSA Key + 'ssh-dss' // REQUIRED sign Raw DSS Key + ); + + static $encryption_algorithms = array( + // from : + 'arcfour256', + 'arcfour128', + + 'arcfour', // OPTIONAL the ARCFOUR stream cipher with a 128-bit key + + 'aes128-cbc', // RECOMMENDED AES with a 128-bit key + 'aes192-cbc', // OPTIONAL AES with a 192-bit key + 'aes256-cbc', // OPTIONAL AES in CBC mode, with a 256-bit key + + // from : + 'aes128-ctr', // RECOMMENDED AES (Rijndael) in SDCTR mode, with 128-bit key + 'aes192-ctr', // RECOMMENDED AES with 192-bit key + 'aes256-ctr', // RECOMMENDED AES with 256-bit key + '3des-ctr', // RECOMMENDED Three-key 3DES in SDCTR mode + + '3des-cbc', // REQUIRED three-key 3DES in CBC mode + 'none' // OPTIONAL no encryption; NOT RECOMMENDED + ); + + static $mac_algorithms = array( + 'hmac-sha1-96', // RECOMMENDED first 96 bits of HMAC-SHA1 (digest length = 12, key length = 20) + 'hmac-sha1', // REQUIRED HMAC-SHA1 (digest length = key length = 20) + 'hmac-md5-96', // OPTIONAL first 96 bits of HMAC-MD5 (digest length = 12, key length = 16) + 'hmac-md5', // OPTIONAL HMAC-MD5 (digest length = key length = 16) + 'none' // OPTIONAL no MAC; NOT RECOMMENDED + ); + + static $compression_algorithms = array( + 'none' // REQUIRED no compression + //'zlib' // OPTIONAL ZLIB (LZ77) compression + ); + + // some SSH servers have buggy implementations of some of the above algorithms + switch ($this->server_identifier) { + case 'SSH-2.0-SSHD': + $mac_algorithms = array_values(array_diff( + $mac_algorithms, + array('hmac-sha1-96', 'hmac-md5-96') + )); + } + + static $str_kex_algorithms, $str_server_host_key_algorithms, + $encryption_algorithms_server_to_client, $mac_algorithms_server_to_client, $compression_algorithms_server_to_client, + $encryption_algorithms_client_to_server, $mac_algorithms_client_to_server, $compression_algorithms_client_to_server; + + if (empty($str_kex_algorithms)) { + $str_kex_algorithms = implode(',', $kex_algorithms); + $str_server_host_key_algorithms = implode(',', $server_host_key_algorithms); + $encryption_algorithms_server_to_client = $encryption_algorithms_client_to_server = implode(',', $encryption_algorithms); + $mac_algorithms_server_to_client = $mac_algorithms_client_to_server = implode(',', $mac_algorithms); + $compression_algorithms_server_to_client = $compression_algorithms_client_to_server = implode(',', $compression_algorithms); + } + + $client_cookie = crypt_random_string(16); + + $response = $kexinit_payload_server; + $this->_string_shift($response, 1); // skip past the message number (it should be SSH_MSG_KEXINIT) + $server_cookie = $this->_string_shift($response, 16); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->kex_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->server_host_key_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->encryption_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->encryption_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->mac_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->mac_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->compression_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->compression_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->languages_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->languages_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + extract(unpack('Cfirst_kex_packet_follows', $this->_string_shift($response, 1))); + $first_kex_packet_follows = $first_kex_packet_follows != 0; + + // the sending of SSH2_MSG_KEXINIT could go in one of two places. this is the second place. + $kexinit_payload_client = pack('Ca*Na*Na*Na*Na*Na*Na*Na*Na*Na*Na*CN', + NET_SSH2_MSG_KEXINIT, $client_cookie, strlen($str_kex_algorithms), $str_kex_algorithms, + strlen($str_server_host_key_algorithms), $str_server_host_key_algorithms, strlen($encryption_algorithms_client_to_server), + $encryption_algorithms_client_to_server, strlen($encryption_algorithms_server_to_client), $encryption_algorithms_server_to_client, + strlen($mac_algorithms_client_to_server), $mac_algorithms_client_to_server, strlen($mac_algorithms_server_to_client), + $mac_algorithms_server_to_client, strlen($compression_algorithms_client_to_server), $compression_algorithms_client_to_server, + strlen($compression_algorithms_server_to_client), $compression_algorithms_server_to_client, 0, '', 0, '', + 0, 0 + ); + + if (!$this->_send_binary_packet($kexinit_payload_client)) { + return false; + } + // here ends the second place. + + // we need to decide upon the symmetric encryption algorithms before we do the diffie-hellman key exchange + for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_server_to_client); $i++); + if ($i == count($encryption_algorithms)) { + user_error('No compatible server to client encryption algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + // we don't initialize any crypto-objects, yet - we do that, later. for now, we need the lengths to make the + // diffie-hellman key exchange as fast as possible + $decrypt = $encryption_algorithms[$i]; + switch ($decrypt) { + case '3des-cbc': + case '3des-ctr': + $decryptKeyLength = 24; // eg. 192 / 8 + break; + case 'aes256-cbc': + case 'aes256-ctr': + $decryptKeyLength = 32; // eg. 256 / 8 + break; + case 'aes192-cbc': + case 'aes192-ctr': + $decryptKeyLength = 24; // eg. 192 / 8 + break; + case 'aes128-cbc': + case 'aes128-ctr': + $decryptKeyLength = 16; // eg. 128 / 8 + break; + case 'arcfour': + case 'arcfour128': + $decryptKeyLength = 16; // eg. 128 / 8 + break; + case 'arcfour256': + $decryptKeyLength = 32; // eg. 128 / 8 + break; + case 'none'; + $decryptKeyLength = 0; + } + + for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_client_to_server); $i++); + if ($i == count($encryption_algorithms)) { + user_error('No compatible client to server encryption algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $encrypt = $encryption_algorithms[$i]; + switch ($encrypt) { + case '3des-cbc': + case '3des-ctr': + $encryptKeyLength = 24; + break; + case 'aes256-cbc': + case 'aes256-ctr': + $encryptKeyLength = 32; + break; + case 'aes192-cbc': + case 'aes192-ctr': + $encryptKeyLength = 24; + break; + case 'aes128-cbc': + case 'aes128-ctr': + $encryptKeyLength = 16; + break; + case 'arcfour': + case 'arcfour128': + $encryptKeyLength = 16; + break; + case 'arcfour256': + $encryptKeyLength = 32; + break; + case 'none'; + $encryptKeyLength = 0; + } + + $keyLength = $decryptKeyLength > $encryptKeyLength ? $decryptKeyLength : $encryptKeyLength; + + // through diffie-hellman key exchange a symmetric key is obtained + for ($i = 0; $i < count($kex_algorithms) && !in_array($kex_algorithms[$i], $this->kex_algorithms); $i++); + if ($i == count($kex_algorithms)) { + user_error('No compatible key exchange algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + switch ($kex_algorithms[$i]) { + // see http://tools.ietf.org/html/rfc2409#section-6.2 and + // http://tools.ietf.org/html/rfc2412, appendex E + case 'diffie-hellman-group1-sha1': + $p = pack('H256', 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' . + '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' . + '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' . + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF'); + $keyLength = $keyLength < 160 ? $keyLength : 160; + $hash = 'sha1'; + break; + // see http://tools.ietf.org/html/rfc3526#section-3 + case 'diffie-hellman-group14-sha1': + $p = pack('H512', 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' . + '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' . + '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' . + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05' . + '98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB' . + '9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' . + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF695581718' . + '3995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF'); + $keyLength = $keyLength < 160 ? $keyLength : 160; + $hash = 'sha1'; + } + + $p = new Math_BigInteger($p, 256); + //$q = $p->bitwise_rightShift(1); + + /* To increase the speed of the key exchange, both client and server may + reduce the size of their private exponents. It should be at least + twice as long as the key material that is generated from the shared + secret. For more details, see the paper by van Oorschot and Wiener + [VAN-OORSCHOT]. + + -- http://tools.ietf.org/html/rfc4419#section-6.2 */ + $q = new Math_BigInteger(1); + $q = $q->bitwise_leftShift(2 * $keyLength); + $q = $q->subtract(new Math_BigInteger(1)); + + $g = new Math_BigInteger(2); + $x = new Math_BigInteger(); + $x = $x->random(new Math_BigInteger(1), $q); + $e = $g->modPow($x, $p); + + $eBytes = $e->toBytes(true); + $data = pack('CNa*', NET_SSH2_MSG_KEXDH_INIT, strlen($eBytes), $eBytes); + + if (!$this->_send_binary_packet($data)) { + user_error('Connection closed by server'); + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_KEXDH_REPLY) { + user_error('Expected SSH_MSG_KEXDH_REPLY'); + return false; + } + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->server_public_host_key = $server_public_host_key = $this->_string_shift($response, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $public_key_format = $this->_string_shift($server_public_host_key, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $fBytes = $this->_string_shift($response, $temp['length']); + $f = new Math_BigInteger($fBytes, -256); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->signature = $this->_string_shift($response, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($this->signature, 4)); + $this->signature_format = $this->_string_shift($this->signature, $temp['length']); + + $key = $f->modPow($x, $p); + $keyBytes = $key->toBytes(true); + + $this->exchange_hash = pack('Na*Na*Na*Na*Na*Na*Na*Na*', + strlen($this->identifier), $this->identifier, strlen($this->server_identifier), $this->server_identifier, + strlen($kexinit_payload_client), $kexinit_payload_client, strlen($kexinit_payload_server), + $kexinit_payload_server, strlen($this->server_public_host_key), $this->server_public_host_key, strlen($eBytes), + $eBytes, strlen($fBytes), $fBytes, strlen($keyBytes), $keyBytes + ); + + $this->exchange_hash = pack('H*', $hash($this->exchange_hash)); + + if ($this->session_id === false) { + $this->session_id = $this->exchange_hash; + } + + for ($i = 0; $i < count($server_host_key_algorithms) && !in_array($server_host_key_algorithms[$i], $this->server_host_key_algorithms); $i++); + if ($i == count($server_host_key_algorithms)) { + user_error('No compatible server host key algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + if ($public_key_format != $server_host_key_algorithms[$i] || $this->signature_format != $server_host_key_algorithms[$i]) { + user_error('Sever Host Key Algorithm Mismatch'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $packet = pack('C', + NET_SSH2_MSG_NEWKEYS + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_NEWKEYS) { + user_error('Expected SSH_MSG_NEWKEYS'); + return false; + } + + switch ($encrypt) { + case '3des-cbc': + $this->encrypt = new Crypt_TripleDES(); + // $this->encrypt_block_size = 64 / 8 == the default + break; + case '3des-ctr': + $this->encrypt = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + // $this->encrypt_block_size = 64 / 8 == the default + break; + case 'aes256-cbc': + case 'aes192-cbc': + case 'aes128-cbc': + $this->encrypt = new Crypt_AES(); + $this->encrypt_block_size = 16; // eg. 128 / 8 + break; + case 'aes256-ctr': + case 'aes192-ctr': + case 'aes128-ctr': + $this->encrypt = new Crypt_AES(CRYPT_AES_MODE_CTR); + $this->encrypt_block_size = 16; // eg. 128 / 8 + break; + case 'arcfour': + case 'arcfour128': + case 'arcfour256': + $this->encrypt = new Crypt_RC4(); + break; + case 'none'; + //$this->encrypt = new Crypt_Null(); + } + + switch ($decrypt) { + case '3des-cbc': + $this->decrypt = new Crypt_TripleDES(); + break; + case '3des-ctr': + $this->decrypt = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + break; + case 'aes256-cbc': + case 'aes192-cbc': + case 'aes128-cbc': + $this->decrypt = new Crypt_AES(); + $this->decrypt_block_size = 16; + break; + case 'aes256-ctr': + case 'aes192-ctr': + case 'aes128-ctr': + $this->decrypt = new Crypt_AES(CRYPT_AES_MODE_CTR); + $this->decrypt_block_size = 16; + break; + case 'arcfour': + case 'arcfour128': + case 'arcfour256': + $this->decrypt = new Crypt_RC4(); + break; + case 'none'; + //$this->decrypt = new Crypt_Null(); + } + + $keyBytes = pack('Na*', strlen($keyBytes), $keyBytes); + + if ($this->encrypt) { + $this->encrypt->enableContinuousBuffer(); + $this->encrypt->disablePadding(); + + $iv = pack('H*', $hash($keyBytes . $this->exchange_hash . 'A' . $this->session_id)); + while ($this->encrypt_block_size > strlen($iv)) { + $iv.= pack('H*', $hash($keyBytes . $this->exchange_hash . $iv)); + } + $this->encrypt->setIV(substr($iv, 0, $this->encrypt_block_size)); + + $key = pack('H*', $hash($keyBytes . $this->exchange_hash . 'C' . $this->session_id)); + while ($encryptKeyLength > strlen($key)) { + $key.= pack('H*', $hash($keyBytes . $this->exchange_hash . $key)); + } + $this->encrypt->setKey(substr($key, 0, $encryptKeyLength)); + } + + if ($this->decrypt) { + $this->decrypt->enableContinuousBuffer(); + $this->decrypt->disablePadding(); + + $iv = pack('H*', $hash($keyBytes . $this->exchange_hash . 'B' . $this->session_id)); + while ($this->decrypt_block_size > strlen($iv)) { + $iv.= pack('H*', $hash($keyBytes . $this->exchange_hash . $iv)); + } + $this->decrypt->setIV(substr($iv, 0, $this->decrypt_block_size)); + + $key = pack('H*', $hash($keyBytes . $this->exchange_hash . 'D' . $this->session_id)); + while ($decryptKeyLength > strlen($key)) { + $key.= pack('H*', $hash($keyBytes . $this->exchange_hash . $key)); + } + $this->decrypt->setKey(substr($key, 0, $decryptKeyLength)); + } + + /* The "arcfour128" algorithm is the RC4 cipher, as described in + [SCHNEIER], using a 128-bit key. The first 1536 bytes of keystream + generated by the cipher MUST be discarded, and the first byte of the + first encrypted packet MUST be encrypted using the 1537th byte of + keystream. + + -- http://tools.ietf.org/html/rfc4345#section-4 */ + if ($encrypt == 'arcfour128' || $encrypt == 'arcfour256') { + $this->encrypt->encrypt(str_repeat("\0", 1536)); + } + if ($decrypt == 'arcfour128' || $decrypt == 'arcfour256') { + $this->decrypt->decrypt(str_repeat("\0", 1536)); + } + + for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_client_to_server); $i++); + if ($i == count($mac_algorithms)) { + user_error('No compatible client to server message authentication algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $createKeyLength = 0; // ie. $mac_algorithms[$i] == 'none' + switch ($mac_algorithms[$i]) { + case 'hmac-sha1': + $this->hmac_create = new Crypt_Hash('sha1'); + $createKeyLength = 20; + break; + case 'hmac-sha1-96': + $this->hmac_create = new Crypt_Hash('sha1-96'); + $createKeyLength = 20; + break; + case 'hmac-md5': + $this->hmac_create = new Crypt_Hash('md5'); + $createKeyLength = 16; + break; + case 'hmac-md5-96': + $this->hmac_create = new Crypt_Hash('md5-96'); + $createKeyLength = 16; + } + + for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_server_to_client); $i++); + if ($i == count($mac_algorithms)) { + user_error('No compatible server to client message authentication algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $checkKeyLength = 0; + $this->hmac_size = 0; + switch ($mac_algorithms[$i]) { + case 'hmac-sha1': + $this->hmac_check = new Crypt_Hash('sha1'); + $checkKeyLength = 20; + $this->hmac_size = 20; + break; + case 'hmac-sha1-96': + $this->hmac_check = new Crypt_Hash('sha1-96'); + $checkKeyLength = 20; + $this->hmac_size = 12; + break; + case 'hmac-md5': + $this->hmac_check = new Crypt_Hash('md5'); + $checkKeyLength = 16; + $this->hmac_size = 16; + break; + case 'hmac-md5-96': + $this->hmac_check = new Crypt_Hash('md5-96'); + $checkKeyLength = 16; + $this->hmac_size = 12; + } + + $key = pack('H*', $hash($keyBytes . $this->exchange_hash . 'E' . $this->session_id)); + while ($createKeyLength > strlen($key)) { + $key.= pack('H*', $hash($keyBytes . $this->exchange_hash . $key)); + } + $this->hmac_create->setKey(substr($key, 0, $createKeyLength)); + + $key = pack('H*', $hash($keyBytes . $this->exchange_hash . 'F' . $this->session_id)); + while ($checkKeyLength > strlen($key)) { + $key.= pack('H*', $hash($keyBytes . $this->exchange_hash . $key)); + } + $this->hmac_check->setKey(substr($key, 0, $checkKeyLength)); + + for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_server_to_client); $i++); + if ($i == count($compression_algorithms)) { + user_error('No compatible server to client compression algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + $this->decompress = $compression_algorithms[$i] == 'zlib'; + + for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_client_to_server); $i++); + if ($i == count($compression_algorithms)) { + user_error('No compatible client to server compression algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + $this->compress = $compression_algorithms[$i] == 'zlib'; + + return true; + } + + /** + * Login + * + * The $password parameter can be a plaintext password or a Crypt_RSA object. + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access public + * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} + * by sending dummy SSH_MSG_IGNORE messages. + */ + function login($username, $password = null) + { + if (!($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR)) { + return false; + } + + $packet = pack('CNa*', + NET_SSH2_MSG_SERVICE_REQUEST, strlen('ssh-userauth'), 'ssh-userauth' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_SERVICE_ACCEPT) { + user_error('Expected SSH_MSG_SERVICE_ACCEPT'); + return false; + } + + // although PHP5's get_class() preserves the case, PHP4's does not + if (is_object($password) && strtolower(get_class($password)) == 'crypt_rsa') { + return $this->_privatekey_login($username, $password); + } + + if (!isset($password)) { + $packet = pack('CNa*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('none'), 'none' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + //case NET_SSH2_MSG_USERAUTH_FAILURE: + default: + return false; + } + } + + $packet = pack('CNa*Na*Na*CNa*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('password'), 'password', 0, strlen($password), $password + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + // remove the username and password from the last logged packet + if (defined('NET_SSH2_LOGGING') && NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX) { + $packet = pack('CNa*Na*Na*CNa*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen('username'), 'username', strlen('ssh-connection'), 'ssh-connection', + strlen('password'), 'password', 0, strlen('password'), 'password' + ); + $this->message_log[count($this->message_log) - 1] = $packet; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ: // in theory, the password can be changed + if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . utf8_decode($this->_string_shift($response, $length)); + return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER); + case NET_SSH2_MSG_USERAUTH_FAILURE: + // can we use keyboard-interactive authentication? if not then either the login is bad or the server employees + // multi-factor authentication + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $auth_methods = explode(',', $this->_string_shift($response, $length)); + if (in_array('keyboard-interactive', $auth_methods)) { + if ($this->_keyboard_interactive_login($username, $password)) { + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + return false; + } + return false; + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + + return false; + } + + /** + * Login via keyboard-interactive authentication + * + * See {@link http://tools.ietf.org/html/rfc4256 RFC4256} for details. This is not a full-featured keyboard-interactive authenticator. + * + * @param String $username + * @param String $password + * @return Boolean + * @access private + */ + function _keyboard_interactive_login($username, $password) + { + $packet = pack('CNa*Na*Na*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('keyboard-interactive'), 'keyboard-interactive', 0, '', 0, '' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + return $this->_keyboard_interactive_process($password); + } + + /** + * Handle the keyboard-interactive requests / responses. + * + * @param String $responses... + * @return Boolean + * @access private + */ + function _keyboard_interactive_process() + { + $responses = func_get_args(); + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_INFO_REQUEST: + // see http://tools.ietf.org/html/rfc4256#section-3.2 + if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST', + $this->message_number_log[count($this->message_number_log) - 1] + ); + } + + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // name; may be empty + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // instruction; may be empty + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // language tag; may be empty + extract(unpack('Nnum_prompts', $this->_string_shift($response, 4))); + /* + for ($i = 0; $i < $num_prompts; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + // prompt - ie. "Password: "; must not be empty + $this->_string_shift($response, $length); + $echo = $this->_string_shift($response) != chr(0); + } + */ + + /* + After obtaining the requested information from the user, the client + MUST respond with an SSH_MSG_USERAUTH_INFO_RESPONSE message. + */ + // see http://tools.ietf.org/html/rfc4256#section-3.4 + $packet = $logged = pack('CN', NET_SSH2_MSG_USERAUTH_INFO_RESPONSE, count($responses)); + for ($i = 0; $i < count($responses); $i++) { + $packet.= pack('Na*', strlen($responses[$i]), $responses[$i]); + $logged.= pack('Na*', strlen('dummy-answer'), 'dummy-answer'); + } + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE', + $this->message_number_log[count($this->message_number_log) - 1] + ); + $this->message_log[count($this->message_log) - 1] = $logged; + } + + /* + After receiving the response, the server MUST send either an + SSH_MSG_USERAUTH_SUCCESS, SSH_MSG_USERAUTH_FAILURE, or another + SSH_MSG_USERAUTH_INFO_REQUEST message. + */ + // maybe phpseclib should force close the connection after x request / responses? unless something like that is done + // there could be an infinite loop of request / responses. + return $this->_keyboard_interactive_process(); + case NET_SSH2_MSG_USERAUTH_SUCCESS: + return true; + case NET_SSH2_MSG_USERAUTH_FAILURE: + return false; + } + + return false; + } + + /** + * Login with an RSA private key + * + * @param String $username + * @param Crypt_RSA $password + * @return Boolean + * @access private + * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} + * by sending dummy SSH_MSG_IGNORE messages. + */ + function _privatekey_login($username, $privatekey) + { + // see http://tools.ietf.org/html/rfc4253#page-15 + $publickey = $privatekey->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_RAW); + if ($publickey === false) { + return false; + } + + $publickey = array( + 'e' => $publickey['e']->toBytes(true), + 'n' => $publickey['n']->toBytes(true) + ); + $publickey = pack('Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($publickey['e']), $publickey['e'], strlen($publickey['n']), $publickey['n'] + ); + + $part1 = pack('CNa*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('publickey'), 'publickey' + ); + $part2 = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publickey), $publickey); + + $packet = $part1 . chr(0) . $part2; + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_FAILURE: + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_USERAUTH_FAILURE: ' . $this->_string_shift($response, $length); + return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER); + case NET_SSH2_MSG_USERAUTH_PK_OK: + // we'll just take it on faith that the public key blob and the public key algorithm name are as + // they should be + if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_PK_OK', + $this->message_number_log[count($this->message_number_log) - 1] + ); + } + } + + $packet = $part1 . chr(1) . $part2; + $privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + $signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet)); + $signature = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($signature), $signature); + $packet.= pack('Na*', strlen($signature), $signature); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_FAILURE: + // either the login is bad or the server employs multi-factor authentication + return false; + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + + return false; + } + + /** + * Set Timeout + * + * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. + * Setting $timeout to false or 0 will mean there is no timeout. + * + * @param Mixed $timeout + */ + function setTimeout($timeout) + { + $this->timeout = $this->curTimeout = $timeout; + } + + /** + * Execute Command + * + * If $block is set to false then Net_SSH2::_get_channel_packet(NET_SSH2_CHANNEL_EXEC) will need to be called manually. + * In all likelihood, this is not a feature you want to be taking advantage of. + * + * @param String $command + * @param optional Boolean $block + * @return String + * @access public + */ + function exec($command, $block = true) + { + $this->curTimeout = $this->timeout; + + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + // RFC4254 defines the (client) window size as "bytes the other party can send before it must wait for the window to + // be adjusted". 0x7FFFFFFF is, at 4GB, the max size. technically, it should probably be decremented, but, + // honestly, if you're transfering more than 4GB, you probably shouldn't be using phpseclib, anyway. + // see http://tools.ietf.org/html/rfc4254#section-5.2 for more info + $this->window_size_client_to_server[NET_SSH2_CHANNEL_EXEC] = 0x7FFFFFFF; + // 0x8000 is the maximum max packet size, per http://tools.ietf.org/html/rfc4253#section-6.1, although since PuTTy + // uses 0x4000, that's what will be used here, as well. + $packet_size = 0x4000; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SSH2_CHANNEL_EXEC, $this->window_size_client_to_server[NET_SSH2_CHANNEL_EXEC], $packet_size); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + if ($response === false) { + return false; + } + + // sending a pty-req SSH_MSG_CHANNEL_REQUEST message is unnecessary and, in fact, in most cases, slows things + // down. the one place where it might be desirable is if you're doing something like Net_SSH2::exec('ping localhost &'). + // with a pty-req SSH_MSG_CHANNEL_REQUEST, exec() will return immediately and the ping process will then + // then immediately terminate. without such a request exec() will loop indefinitely. the ping process won't end but + // neither will your script. + + // although, in theory, the size of SSH_MSG_CHANNEL_REQUEST could exceed the maximum packet size established by + // SSH_MSG_CHANNEL_OPEN_CONFIRMATION, RFC4254#section-5.1 states that the "maximum packet size" refers to the + // "maximum size of an individual data packet". ie. SSH_MSG_CHANNEL_DATA. RFC4254#section-5.2 corroborates. + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_EXEC], strlen('exec'), 'exec', 1, strlen($command), $command); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + if ($response === false) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_DATA; + + if (!$block) { + return true; + } + + $output = ''; + while (true) { + $temp = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + switch (true) { + case $temp === true: + return $output; + case $temp === false: + return false; + default: + $output.= $temp; + } + } + } + + /** + * Creates an interactive shell + * + * @see Net_SSH2::read() + * @see Net_SSH2::write() + * @return Boolean + * @access private + */ + function _initShell() + { + $this->window_size_client_to_server[NET_SSH2_CHANNEL_SHELL] = 0x7FFFFFFF; + $packet_size = 0x4000; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SSH2_CHANNEL_SHELL, $this->window_size_client_to_server[NET_SSH2_CHANNEL_SHELL], $packet_size); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SHELL); + if ($response === false) { + return false; + } + + $terminal_modes = pack('C', NET_SSH2_TTY_OP_END); + $packet = pack('CNNa*CNa*N5a*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_SHELL], strlen('pty-req'), 'pty-req', 1, strlen('vt100'), 'vt100', + 80, 24, 0, 0, strlen($terminal_modes), $terminal_modes); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + list(, $type) = unpack('C', $this->_string_shift($response, 1)); + + switch ($type) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + break; + case NET_SSH2_MSG_CHANNEL_FAILURE: + default: + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $packet = pack('CNNa*C', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_SHELL], strlen('shell'), 'shell', 1); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SHELL); + if ($response === false) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_DATA; + + $this->bitmap |= NET_SSH2_MASK_SHELL; + + return true; + } + + /** + * Returns the output of an interactive shell + * + * Returns when there's a match for $expect, which can take the form of a string literal or, + * if $mode == NET_SSH2_READ_REGEX, a regular expression. + * + * @see Net_SSH2::read() + * @param String $expect + * @param Integer $mode + * @return String + * @access public + */ + function read($expect = '', $mode = NET_SSH2_READ_SIMPLE) + { + $this->curTimeout = $this->timeout; + + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH2_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $match = $expect; + while (true) { + if ($mode == NET_SSH2_READ_REGEX) { + preg_match($expect, $this->interactiveBuffer, $matches); + $match = isset($matches[0]) ? $matches[0] : ''; + } + $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false; + if ($pos !== false) { + return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match)); + } + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SHELL); + if (is_bool($response)) { + return $response ? $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer)) : false; + } + + $this->interactiveBuffer.= $response; + } + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH1::interactiveWrite() + * @param String $cmd + * @return Boolean + * @access public + */ + function write($cmd) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH2_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + return $this->_send_channel_packet(NET_SSH2_CHANNEL_SHELL, $cmd); + } + + /** + * Disconnect + * + * @access public + */ + function disconnect() + { + $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + if (isset($this->realtime_log_file) && is_resource($this->realtime_log_file)) { + fclose($this->realtime_log_file); + } + } + + /** + * Destructor. + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * disconnect(). + * + * @access public + */ + function __destruct() + { + $this->disconnect(); + } + + /** + * Gets Binary Packets + * + * See '6. Binary Packet Protocol' of rfc4253 for more info. + * + * @see Net_SSH2::_send_binary_packet() + * @return String + * @access private + */ + function _get_binary_packet() + { + if (!is_resource($this->fsock) || feof($this->fsock)) { + user_error('Connection closed prematurely'); + $this->bitmask = 0; + return false; + } + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $raw = fread($this->fsock, $this->decrypt_block_size); + + if (!strlen($raw)) { + return ''; + } + + if ($this->decrypt !== false) { + $raw = $this->decrypt->decrypt($raw); + } + if ($raw === false) { + user_error('Unable to decrypt content'); + return false; + } + + extract(unpack('Npacket_length/Cpadding_length', $this->_string_shift($raw, 5))); + + $remaining_length = $packet_length + 4 - $this->decrypt_block_size; + + // quoting , + // "implementations SHOULD check that the packet length is reasonable" + // PuTTY uses 0x9000 as the actual max packet size and so to shall we + if ($remaining_length < -$this->decrypt_block_size || $remaining_length > 0x9000 || $remaining_length % $this->decrypt_block_size != 0) { + user_error('Invalid size'); + return false; + } + + $buffer = ''; + while ($remaining_length > 0) { + $temp = fread($this->fsock, $remaining_length); + $buffer.= $temp; + $remaining_length-= strlen($temp); + } + $stop = strtok(microtime(), ' ') + strtok(''); + if (strlen($buffer)) { + $raw.= $this->decrypt !== false ? $this->decrypt->decrypt($buffer) : $buffer; + } + + $payload = $this->_string_shift($raw, $packet_length - $padding_length - 1); + $padding = $this->_string_shift($raw, $padding_length); // should leave $raw empty + + if ($this->hmac_check !== false) { + $hmac = fread($this->fsock, $this->hmac_size); + if ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) { + user_error('Invalid HMAC'); + return false; + } + } + + //if ($this->decompress) { + // $payload = gzinflate(substr($payload, 2)); + //} + + $this->get_seq_no++; + + if (defined('NET_SSH2_LOGGING')) { + $current = strtok(microtime(), ' ') + strtok(''); + $message_number = isset($this->message_numbers[ord($payload[0])]) ? $this->message_numbers[ord($payload[0])] : 'UNKNOWN (' . ord($payload[0]) . ')'; + $message_number = '<- ' . $message_number . + ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)'; + $this->_append_log($message_number, $payload); + $this->last_packet = $current; + } + + return $this->_filter($payload); + } + + /** + * Filter Binary Packets + * + * Because some binary packets need to be ignored... + * + * @see Net_SSH2::_get_binary_packet() + * @return String + * @access private + */ + function _filter($payload) + { + switch (ord($payload[0])) { + case NET_SSH2_MSG_DISCONNECT: + $this->_string_shift($payload, 1); + extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8))); + $this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . utf8_decode($this->_string_shift($payload, $length)); + $this->bitmask = 0; + return false; + case NET_SSH2_MSG_IGNORE: + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_DEBUG: + $this->_string_shift($payload, 2); + extract(unpack('Nlength', $this->_string_shift($payload, 4))); + $this->errors[] = 'SSH_MSG_DEBUG: ' . utf8_decode($this->_string_shift($payload, $length)); + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_UNIMPLEMENTED: + return false; + case NET_SSH2_MSG_KEXINIT: + if ($this->session_id !== false) { + if (!$this->_key_exchange($payload)) { + $this->bitmask = 0; + return false; + } + $payload = $this->_get_binary_packet(); + } + } + + // see http://tools.ietf.org/html/rfc4252#section-5.4; only called when the encryption has been activated and when we haven't already logged in + if (($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR) && !($this->bitmap & NET_SSH2_MASK_LOGIN) && ord($payload[0]) == NET_SSH2_MSG_USERAUTH_BANNER) { + $this->_string_shift($payload, 1); + extract(unpack('Nlength', $this->_string_shift($payload, 4))); + $this->errors[] = 'SSH_MSG_USERAUTH_BANNER: ' . utf8_decode($this->_string_shift($payload, $length)); + $payload = $this->_get_binary_packet(); + } + + // only called when we've already logged in + if (($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR) && ($this->bitmap & NET_SSH2_MASK_LOGIN)) { + switch (ord($payload[0])) { + case NET_SSH2_MSG_GLOBAL_REQUEST: // see http://tools.ietf.org/html/rfc4254#section-4 + $this->_string_shift($payload, 1); + extract(unpack('Nlength', $this->_string_shift($payload))); + $this->errors[] = 'SSH_MSG_GLOBAL_REQUEST: ' . utf8_decode($this->_string_shift($payload, $length)); + + if (!$this->_send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE))) { + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_CHANNEL_OPEN: // see http://tools.ietf.org/html/rfc4254#section-5.1 + $this->_string_shift($payload, 1); + extract(unpack('N', $this->_string_shift($payload, 4))); + $this->errors[] = 'SSH_MSG_CHANNEL_OPEN: ' . utf8_decode($this->_string_shift($payload, $length)); + + $this->_string_shift($payload, 4); // skip over client channel + extract(unpack('Nserver_channel', $this->_string_shift($payload, 4))); + + $packet = pack('CN3a*Na*', + NET_SSH2_MSG_REQUEST_FAILURE, $server_channel, NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED, 0, '', 0, ''); + + if (!$this->_send_binary_packet($packet)) { + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST: + $payload = $this->_get_binary_packet(); + } + } + + return $payload; + } + + /** + * Enable Quiet Mode + * + * Suppress stderr from output + * + * @access public + */ + function enableQuietMode() + { + $this->quiet_mode = true; + } + + /** + * Disable Quiet Mode + * + * Show stderr in output + * + * @access public + */ + function disableQuietMode() + { + $this->quiet_mode = false; + } + + /** + * Gets channel data + * + * Returns the data as a string if it's available and false if not. + * + * @param $client_channel + * @return Mixed + * @access private + */ + function _get_channel_packet($client_channel, $skip_extended = false) + { + if (!empty($this->channel_buffers[$client_channel])) { + return array_shift($this->channel_buffers[$client_channel]); + } + + while (true) { + if ($this->curTimeout) { + $read = array($this->fsock); + $write = $except = NULL; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $sec = floor($this->curTimeout); + $usec = 1000000 * ($this->curTimeout - $sec); + // on windows this returns a "Warning: Invalid CRT parameters detected" error + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + $this->_close_channel($client_channel); + return true; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + $this->curTimeout-= $elapsed; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + if (!strlen($response)) { + return ''; + } + + extract(unpack('Ctype/Nchannel', $this->_string_shift($response, 5))); + + switch ($this->channel_status[$channel]) { + case NET_SSH2_MSG_CHANNEL_OPEN: + switch ($type) { + case NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION: + extract(unpack('Nserver_channel', $this->_string_shift($response, 4))); + $this->server_channels[$channel] = $server_channel; + $this->_string_shift($response, 4); // skip over (server) window size + $temp = unpack('Npacket_size_client_to_server', $this->_string_shift($response, 4)); + $this->packet_size_client_to_server[$channel] = $temp['packet_size_client_to_server']; + return $client_channel == $channel ? true : $this->_get_channel_packet($client_channel, $skip_extended); + //case NET_SSH2_MSG_CHANNEL_OPEN_FAILURE: + default: + user_error('Unable to open channel'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + break; + case NET_SSH2_MSG_CHANNEL_REQUEST: + switch ($type) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + return true; + //case NET_SSH2_MSG_CHANNEL_FAILURE: + default: + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + case NET_SSH2_MSG_CHANNEL_CLOSE: + return $type == NET_SSH2_MSG_CHANNEL_CLOSE ? true : $this->_get_channel_packet($client_channel, $skip_extended); + } + + switch ($type) { + case NET_SSH2_MSG_CHANNEL_DATA: + /* + if ($client_channel == NET_SSH2_CHANNEL_EXEC) { + // SCP requires null packets, such as this, be sent. further, in the case of the ssh.com SSH server + // this actually seems to make things twice as fast. more to the point, the message right after + // SSH_MSG_CHANNEL_DATA (usually SSH_MSG_IGNORE) won't block for as long as it would have otherwise. + // in OpenSSH it slows things down but only by a couple thousandths of a second. + $this->_send_channel_packet($client_channel, chr(0)); + } + */ + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $data = $this->_string_shift($response, $length); + if ($client_channel == $channel) { + return $data; + } + if (!isset($this->channel_buffers[$client_channel])) { + $this->channel_buffers[$client_channel] = array(); + } + $this->channel_buffers[$client_channel][] = $data; + break; + case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA: + if ($skip_extended || $this->quiet_mode) { + break; + } + /* + if ($client_channel == NET_SSH2_CHANNEL_EXEC) { + $this->_send_channel_packet($client_channel, chr(0)); + } + */ + // currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR + extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8))); + $data = $this->_string_shift($response, $length); + if ($client_channel == $channel) { + return $data; + } + if (!isset($this->channel_buffers[$client_channel])) { + $this->channel_buffers[$client_channel] = array(); + } + $this->channel_buffers[$client_channel][] = $data; + break; + case NET_SSH2_MSG_CHANNEL_REQUEST: + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $value = $this->_string_shift($response, $length); + switch ($value) { + case 'exit-signal': + $this->_string_shift($response, 1); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length); + $this->_string_shift($response, 1); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if ($length) { + $this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length); + } + case 'exit-status': + extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5))); + $this->exit_status = $exit_status; + // "The channel needs to be closed with SSH_MSG_CHANNEL_CLOSE after this message." + // -- http://tools.ietf.org/html/rfc4254#section-6.10 + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel])); + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel])); + + $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF; + default: + // "Some systems may not implement signals, in which case they SHOULD ignore this message." + // -- http://tools.ietf.org/html/rfc4254#section-6.9 + break; + } + break; + case NET_SSH2_MSG_CHANNEL_CLOSE: + $this->curTimeout = 0; + + if ($this->bitmap & NET_SSH2_MASK_SHELL) { + $this->bitmap&= ~NET_SSH2_MASK_SHELL; + } + if ($this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_EOF) { + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel])); + } + + $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_CLOSE; + return true; + case NET_SSH2_MSG_CHANNEL_EOF: + break; + default: + user_error('Error reading channel data'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + } + } + + /** + * Sends Binary Packets + * + * See '6. Binary Packet Protocol' of rfc4253 for more info. + * + * @param String $data + * @see Net_SSH2::_get_binary_packet() + * @return Boolean + * @access private + */ + function _send_binary_packet($data) + { + if (!is_resource($this->fsock) || feof($this->fsock)) { + user_error('Connection closed prematurely'); + $this->bitmask = 0; + return false; + } + + //if ($this->compress) { + // // the -4 removes the checksum: + // // http://php.net/function.gzcompress#57710 + // $data = substr(gzcompress($data), 0, -4); + //} + + // 4 (packet length) + 1 (padding length) + 4 (minimal padding amount) == 9 + $packet_length = strlen($data) + 9; + // round up to the nearest $this->encrypt_block_size + $packet_length+= (($this->encrypt_block_size - 1) * $packet_length) % $this->encrypt_block_size; + // subtracting strlen($data) is obvious - subtracting 5 is necessary because of packet_length and padding_length + $padding_length = $packet_length - strlen($data) - 5; + $padding = crypt_random_string($padding_length); + + // we subtract 4 from packet_length because the packet_length field isn't supposed to include itself + $packet = pack('NCa*', $packet_length - 4, $padding_length, $data . $padding); + + $hmac = $this->hmac_create !== false ? $this->hmac_create->hash(pack('Na*', $this->send_seq_no, $packet)) : ''; + $this->send_seq_no++; + + if ($this->encrypt !== false) { + $packet = $this->encrypt->encrypt($packet); + } + + $packet.= $hmac; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = strlen($packet) == fputs($this->fsock, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SSH2_LOGGING')) { + $current = strtok(microtime(), ' ') + strtok(''); + $message_number = isset($this->message_numbers[ord($data[0])]) ? $this->message_numbers[ord($data[0])] : 'UNKNOWN (' . ord($data[0]) . ')'; + $message_number = '-> ' . $message_number . + ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)'; + $this->_append_log($message_number, $data); + $this->last_packet = $current; + } + + return $result; + } + + /** + * Logs data packets + * + * Makes sure that only the last 1MB worth of packets will be logged + * + * @param String $data + * @access private + */ + function _append_log($message_number, $message) + { + switch (NET_SSH2_LOGGING) { + // useful for benchmarks + case NET_SSH2_LOG_SIMPLE: + $this->message_number_log[] = $message_number; + break; + // the most useful log for SSH2 + case NET_SSH2_LOG_COMPLEX: + $this->message_number_log[] = $message_number; + $this->_string_shift($message); + $this->log_size+= strlen($message); + $this->message_log[] = $message; + while ($this->log_size > NET_SSH2_LOG_MAX_SIZE) { + $this->log_size-= strlen(array_shift($this->message_log)); + array_shift($this->message_number_log); + } + break; + // dump the output out realtime; packets may be interspersed with non packets, + // passwords won't be filtered out and select other packets may not be correctly + // identified + case NET_SSH2_LOG_REALTIME: + echo "
\r\n" . $this->_format_log(array($message), array($message_number)) . "\r\n
\r\n"; + @flush(); + @ob_flush(); + break; + // basically the same thing as NET_SSH2_LOG_REALTIME with the caveat that NET_SSH2_LOG_REALTIME_FILE + // needs to be defined and that the resultant log file will be capped out at NET_SSH2_LOG_MAX_SIZE. + // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily + // at the beginning of the file + case NET_SSH2_LOG_REALTIME_FILE: + if (!isset($this->realtime_log_file)) { + // PHP doesn't seem to like using constants in fopen() + $filename = NET_SSH2_LOG_REALTIME_FILE; + $fp = fopen($filename, 'w'); + $this->realtime_log_file = $fp; + } + if (!is_resource($this->realtime_log_file)) { + break; + } + $entry = $this->_format_log(array($message), array($message_number)); + if ($this->realtime_log_wrap) { + $temp = "<<< START >>>\r\n"; + $entry.= $temp; + fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp)); + } + $this->realtime_log_size+= strlen($entry); + if ($this->realtime_log_size > NET_SSH2_LOG_MAX_SIZE) { + fseek($this->realtime_log_file, 0); + $this->realtime_log_size = strlen($entry); + $this->realtime_log_wrap = true; + } + fputs($this->realtime_log_file, $entry); + } + } + + /** + * Sends channel data + * + * Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate + * + * @param Integer $client_channel + * @param String $data + * @return Boolean + * @access private + */ + function _send_channel_packet($client_channel, $data) + { + while (strlen($data) > $this->packet_size_client_to_server[$client_channel]) { + // resize the window, if appropriate + $this->window_size_client_to_server[$client_channel]-= $this->packet_size_client_to_server[$client_channel]; + if ($this->window_size_client_to_server[$client_channel] < 0) { + $packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$client_channel], $this->window_size); + if (!$this->_send_binary_packet($packet)) { + return false; + } + $this->window_size_client_to_server[$client_channel]+= $this->window_size; + } + + $packet = pack('CN2a*', + NET_SSH2_MSG_CHANNEL_DATA, + $this->server_channels[$client_channel], + $this->packet_size_client_to_server[$client_channel], + $this->_string_shift($data, $this->packet_size_client_to_server[$client_channel]) + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + } + + // resize the window, if appropriate + $this->window_size_client_to_server[$client_channel]-= strlen($data); + if ($this->window_size_client_to_server[$client_channel] < 0) { + $packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$client_channel], $this->window_size); + if (!$this->_send_binary_packet($packet)) { + return false; + } + $this->window_size_client_to_server[$client_channel]+= $this->window_size; + } + + return $this->_send_binary_packet(pack('CN2a*', + NET_SSH2_MSG_CHANNEL_DATA, + $this->server_channels[$client_channel], + strlen($data), + $data)); + } + + /** + * Closes and flushes a channel + * + * Net_SSH2 doesn't properly close most channels. For exec() channels are normally closed by the server + * and for SFTP channels are presumably closed when the client disconnects. This functions is intended + * for SCP more than anything. + * + * @param Integer $client_channel + * @return Boolean + * @access private + */ + function _close_channel($client_channel) + { + // see http://tools.ietf.org/html/rfc4254#section-5.3 + + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel])); + + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel])); + + $this->channel_status[$client_channel] = NET_SSH2_MSG_CHANNEL_CLOSE; + + $this->curTimeout = 0; + + while (!is_bool($this->_get_channel_packet($client_channel))); + + if ($this->bitmap & NET_SSH2_MASK_SHELL) { + $this->bitmap&= ~NET_SSH2_MASK_SHELL; + } + } + + /** + * Disconnect + * + * @param Integer $reason + * @return Boolean + * @access private + */ + function _disconnect($reason) + { + if ($this->bitmap) { + $data = pack('CNNa*Na*', NET_SSH2_MSG_DISCONNECT, $reason, 0, '', 0, ''); + $this->_send_binary_packet($data); + $this->bitmap = 0; + fclose($this->fsock); + return false; + } + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Define Array + * + * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of + * named constants from it, using the value as the name of the constant and the index as the value of the constant. + * If any of the constants that would be defined already exists, none of the constants will be defined. + * + * @param Array $array + * @access private + */ + function _define_array() + { + $args = func_get_args(); + foreach ($args as $arg) { + foreach ($arg as $key=>$value) { + if (!defined($value)) { + define($value, $key); + } else { + break 2; + } + } + } + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX, an array if NET_SSH2_LOGGING == NET_SSH2_LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING') + * + * @access public + * @return String or Array + */ + function getLog() + { + if (!defined('NET_SSH2_LOGGING')) { + return false; + } + + switch (NET_SSH2_LOGGING) { + case NET_SSH2_LOG_SIMPLE: + return $this->message_number_log; + break; + case NET_SSH2_LOG_COMPLEX: + return $this->_format_log($this->message_log, $this->message_number_log); + break; + default: + return false; + } + } + + /** + * Formats a log for printing + * + * @param Array $message_log + * @param Array $message_number_log + * @access private + * @return String + */ + function _format_log($message_log, $message_number_log) + { + static $boundary = ':', $long_width = 65, $short_width = 16; + + $output = ''; + for ($i = 0; $i < count($message_log); $i++) { + $output.= $message_number_log[$i] . "\r\n"; + $current_log = $message_log[$i]; + $j = 0; + do { + if (strlen($current_log)) { + $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; + } + $fragment = $this->_string_shift($current_log, $short_width); + $hex = substr( + preg_replace( + '#(.)#es', + '"' . $boundary . '" . str_pad(dechex(ord(substr("\\1", -1))), 2, "0", STR_PAD_LEFT)', + $fragment), + strlen($boundary) + ); + // replace non ASCII printable characters with dots + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + // also replace < with a . since < messes up the output on web browsers + $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment); + $output.= str_pad($hex, $long_width - $short_width, ' ') . $raw . "\r\n"; + $j++; + } while (strlen($current_log)); + $output.= "\r\n"; + } + + return $output; + } + + /** + * Returns all errors + * + * @return String + * @access public + */ + function getErrors() + { + return $this->errors; + } + + /** + * Returns the last error + * + * @return String + * @access public + */ + function getLastError() + { + return $this->errors[count($this->errors) - 1]; + } + + /** + * Return the server identification. + * + * @return String + * @access public + */ + function getServerIdentification() + { + return $this->server_identifier; + } + + /** + * Return a list of the key exchange algorithms the server supports. + * + * @return Array + * @access public + */ + function getKexAlgorithms() + { + return $this->kex_algorithms; + } + + /** + * Return a list of the host key (public key) algorithms the server supports. + * + * @return Array + * @access public + */ + function getServerHostKeyAlgorithms() + { + return $this->server_host_key_algorithms; + } + + /** + * Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getEncryptionAlgorithmsClient2Server() + { + return $this->encryption_algorithms_client_to_server; + } + + /** + * Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getEncryptionAlgorithmsServer2Client() + { + return $this->encryption_algorithms_server_to_client; + } + + /** + * Return a list of the MAC algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getMACAlgorithmsClient2Server() + { + return $this->mac_algorithms_client_to_server; + } + + /** + * Return a list of the MAC algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getMACAlgorithmsServer2Client() + { + return $this->mac_algorithms_server_to_client; + } + + /** + * Return a list of the compression algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getCompressionAlgorithmsClient2Server() + { + return $this->compression_algorithms_client_to_server; + } + + /** + * Return a list of the compression algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getCompressionAlgorithmsServer2Client() + { + return $this->compression_algorithms_server_to_client; + } + + /** + * Return a list of the languages the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getLanguagesServer2Client() + { + return $this->languages_server_to_client; + } + + /** + * Return a list of the languages the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getLanguagesClient2Server() + { + return $this->languages_client_to_server; + } + + /** + * Returns the server public host key. + * + * Caching this the first time you connect to a server and checking the result on subsequent connections + * is recommended. Returns false if the server signature is not signed correctly with the public host key. + * + * @return Mixed + * @access public + */ + function getServerPublicHostKey() + { + $signature = $this->signature; + $server_public_host_key = $this->server_public_host_key; + + extract(unpack('Nlength', $this->_string_shift($server_public_host_key, 4))); + $this->_string_shift($server_public_host_key, $length); + + if ($this->signature_validated) { + return $this->bitmap ? + $this->signature_format . ' ' . base64_encode($this->server_public_host_key) : + false; + } + + $this->signature_validated = true; + + switch ($this->signature_format) { + case 'ssh-dss': + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $p = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $q = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $g = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $y = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + /* The value for 'dss_signature_blob' is encoded as a string containing + r, followed by s (which are 160-bit integers, without lengths or + padding, unsigned, and in network byte order). */ + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + if ($temp['length'] != 40) { + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $r = new Math_BigInteger($this->_string_shift($signature, 20), 256); + $s = new Math_BigInteger($this->_string_shift($signature, 20), 256); + + if ($r->compare($q) >= 0 || $s->compare($q) >= 0) { + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $w = $s->modInverse($q); + + $u1 = $w->multiply(new Math_BigInteger(sha1($this->exchange_hash), 16)); + list(, $u1) = $u1->divide($q); + + $u2 = $w->multiply($r); + list(, $u2) = $u2->divide($q); + + $g = $g->modPow($u1, $p); + $y = $y->modPow($u2, $p); + + $v = $g->multiply($y); + list(, $v) = $v->divide($p); + list(, $v) = $v->divide($q); + + if (!$v->equals($r)) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + + break; + case 'ssh-rsa': + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $e = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $n = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + $nLength = $temp['length']; + + /* + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + $signature = $this->_string_shift($signature, $temp['length']); + + if (!class_exists('Crypt_RSA')) { + require_once('Crypt/RSA.php'); + } + + $rsa = new Crypt_RSA(); + $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + $rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW); + if (!$rsa->verify($this->exchange_hash, $signature)) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + */ + + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + $s = new Math_BigInteger($this->_string_shift($signature, $temp['length']), 256); + + // validate an RSA signature per "8.2 RSASSA-PKCS1-v1_5", "5.2.2 RSAVP1", and "9.1 EMSA-PSS" in the + // following URL: + // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf + + // also, see SSHRSA.c (rsa2_verifysig) in PuTTy's source. + + if ($s->compare(new Math_BigInteger()) < 0 || $s->compare($n->subtract(new Math_BigInteger(1))) > 0) { + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $s = $s->modPow($e, $n); + $s = $s->toBytes(); + + $h = pack('N4H*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, sha1($this->exchange_hash)); + $h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 3 - strlen($h)) . $h; + + if ($s != $h) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + break; + default: + user_error('Unsupported signature format'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + + return $this->signature_format . ' ' . base64_encode($this->server_public_host_key); + } + + /** + * Returns the exit status of an SSH command or false. + * + * @return Integer or false + * @access public + */ + function getExitStatus() + { + if (is_null($this->exit_status)) { + return false; + } + return $this->exit_status; + } +} diff --git a/apps/files_external/3rdparty/phpseclib/phpseclib/openssl.cnf b/apps/files_external/3rdparty/phpseclib/phpseclib/openssl.cnf new file mode 100644 index 0000000000000000000000000000000000000000..6baa566102c71629a2cb669f6d96d414e6f0e37d --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpseclib/openssl.cnf @@ -0,0 +1,6 @@ +# minimalist openssl.cnf file for use with phpseclib + +HOME = . +RANDFILE = $ENV::HOME/.rnd + +[ v3_ca ] \ No newline at end of file diff --git a/apps/files_external/3rdparty/phpseclib/phpunit.xml.dist b/apps/files_external/3rdparty/phpseclib/phpunit.xml.dist new file mode 100644 index 0000000000000000000000000000000000000000..f579ab4fd27b31b74aa0e001d0542d3e1d781b14 --- /dev/null +++ b/apps/files_external/3rdparty/phpseclib/phpunit.xml.dist @@ -0,0 +1,18 @@ + + + + + + ./tests/ + + + + + + + ./phpseclib/ + + + diff --git a/apps/files_external/ajax/addMountPoint.php b/apps/files_external/ajax/addMountPoint.php index 4cd8871b310c34384f979b0390a4274919cc23b2..fed2ddfcf3d95e3597b6426b0eac3cdf0cedabfa 100644 --- a/apps/files_external/ajax/addMountPoint.php +++ b/apps/files_external/ajax/addMountPoint.php @@ -10,9 +10,10 @@ if ($_POST['isPersonal'] == 'true') { OCP\JSON::checkAdminUser(); $isPersonal = false; } -OC_Mount_Config::addMountPoint($_POST['mountPoint'], +$status = OC_Mount_Config::addMountPoint($_POST['mountPoint'], $_POST['class'], $_POST['classOptions'], $_POST['mountType'], $_POST['applicable'], - $isPersonal); \ No newline at end of file + $isPersonal); +OCP\JSON::success(array('data' => array('message' => $status))); \ No newline at end of file diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php index 2f67e801b2c924434b50ef7b1e1d514a22abc3ca..43fd6752c4ae9a1d85d4a95f4362a47cd05fcb1f 100644 --- a/apps/files_external/ajax/addRootCertificate.php +++ b/apps/files_external/ajax/addRootCertificate.php @@ -1,6 +1,7 @@ file_exists('')){ +if (!$view->file_exists('')) { $view->mkdir(''); } @@ -36,5 +37,5 @@ if ( $isValid ) { OCP\Util::WARN); } -header('Location: settings/personal.php'); +header('Location:' . OCP\Util::linkToRoute( "settings_personal" )); exit; diff --git a/apps/files_external/ajax/dropbox.php b/apps/files_external/ajax/dropbox.php index 58c41d6906263994e36a8c2fc0f250574ba53709..bc9821c62ec4bddab49031ae0c0ca9a560d1cf2f 100644 --- a/apps/files_external/ajax/dropbox.php +++ b/apps/files_external/ajax/dropbox.php @@ -4,6 +4,8 @@ require_once 'Dropbox/autoload.php'; OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::checkLoggedIn(); +OCP\JSON::callCheck(); + if (isset($_POST['app_key']) && isset($_POST['app_secret'])) { $oauth = new Dropbox_OAuth_Curl($_POST['app_key'], $_POST['app_secret']); if (isset($_POST['step'])) { diff --git a/apps/files_external/ajax/google.php b/apps/files_external/ajax/google.php index c76c7618e4d056f711a5bc77196c03f9b9037749..70adcb2c2ad4f7a8d10bab181544bef73deb604c 100644 --- a/apps/files_external/ajax/google.php +++ b/apps/files_external/ajax/google.php @@ -4,6 +4,8 @@ require_once 'Google/common.inc.php'; OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::checkLoggedIn(); +OCP\JSON::callCheck(); + $consumer = new OAuthConsumer('anonymous', 'anonymous'); $sigMethod = new OAuthSignatureMethod_HMAC_SHA1(); if (isset($_POST['step'])) { diff --git a/apps/files_external/ajax/removeMountPoint.php b/apps/files_external/ajax/removeMountPoint.php index aa44642620267a39b2538eba3773bee1c8759224..2f5dbcfdbacf833994828a4ad0d193309db19396 100644 --- a/apps/files_external/ajax/removeMountPoint.php +++ b/apps/files_external/ajax/removeMountPoint.php @@ -3,6 +3,15 @@ OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::callCheck(); +if (!isset($_POST['isPersonal'])) + return; +if (!isset($_POST['mountPoint'])) + return; +if (!isset($_POST['mountType'])) + return; +if (!isset($_POST['applicable'])) + return; + if ($_POST['isPersonal'] == 'true') { OCP\JSON::checkLoggedIn(); $isPersonal = true; @@ -10,4 +19,5 @@ if ($_POST['isPersonal'] == 'true') { OCP\JSON::checkAdminUser(); $isPersonal = false; } + OC_Mount_Config::removeMountPoint($_POST['mountPoint'], $_POST['mountType'], $_POST['applicable'], $isPersonal); diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index c58cfcd0f5e65927e3b5c4f919f5a4a6f993d199..d976c0175232bfe3364f84cca636a40a708765d1 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -14,6 +14,7 @@ OC::$CLASSPATH['OC\Files\Storage\SWIFT']='apps/files_external/lib/swift.php'; OC::$CLASSPATH['OC\Files\Storage\SMB']='apps/files_external/lib/smb.php'; OC::$CLASSPATH['OC\Files\Storage\AmazonS3']='apps/files_external/lib/amazons3.php'; OC::$CLASSPATH['OC\Files\Storage\Dropbox']='apps/files_external/lib/dropbox.php'; +OC::$CLASSPATH['OC\Files\Storage\SFTP']='apps/files_external/lib/sftp.php'; OC::$CLASSPATH['OC_Mount_Config']='apps/files_external/lib/config.php'; OCP\App::registerAdmin('files_external', 'settings'); diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index 2c04216a9fb00f17cbf31ab6dc569970b6a4a928..0542b7b10a7afe831d0b917b9daf284949ab08f5 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -5,7 +5,7 @@ Mount external storage sources AGPL Robin Appelman, Michael Gapczynski - 4.91 + 4.93 true diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css index ca4b1c3ba8937d6affb071e89621cf047fa227ad..94b453793b1badda59574975a89fb9da90893b4e 100644 --- a/apps/files_external/css/settings.css +++ b/apps/files_external/css/settings.css @@ -1,4 +1,7 @@ -.error { color: #FF3B3B; } +td.status>span { display:inline-block; height:16px; width:16px; } +span.success { background-image: url('../img/success.png'); background-repeat:no-repeat; } +span.error { background-image: url('../img/error.png'); background-repeat:no-repeat; } +span.waiting { background-image: url('../img/waiting.png'); background-repeat:no-repeat; } td.mountPoint, td.backend { width:10em; } td.remove>img { visibility:hidden; padding-top:0.8em; } tr:hover>td.remove>img { visibility:visible; cursor:pointer; } diff --git a/apps/files_external/img/error.png b/apps/files_external/img/error.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cf45e7a41e358da5d573dc48edf966b9d8d3cb Binary files /dev/null and b/apps/files_external/img/error.png differ diff --git a/apps/files_external/img/success.png b/apps/files_external/img/success.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7022ee7f5672b43bdf72f848a7358e4473eb60 Binary files /dev/null and b/apps/files_external/img/success.png differ diff --git a/apps/files_external/img/waiting.png b/apps/files_external/img/waiting.png new file mode 100644 index 0000000000000000000000000000000000000000..02a8cbff0da63ad584ae7a5c11ddefdf0bd9e24b Binary files /dev/null and b/apps/files_external/img/waiting.png differ diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index cd3c957e0a8470a0631ee423b7fbac2904f58f61..957daeb4d1f9152af29b06c85273b39f4cc760da 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -15,6 +15,9 @@ $(document).ready(function() { if (pos != -1 && window.location.search.substr(pos, $(token).val().length) == $(token).val()) { var token_secret = $(this).find('.configuration [data-parameter="token_secret"]'); var tr = $(this); + var statusSpan = $(tr).find('.status span'); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 2, app_key: app_key, app_secret: app_secret, request_token: $(token).val(), request_token_secret: $(token_secret).val() }, function(result) { if (result && result.status == 'success') { $(token).val(result.access_token); @@ -24,23 +27,40 @@ $(document).ready(function() { $(tr).find('.configuration input').attr('disabled', 'disabled'); $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Dropbox storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Dropbox storage')); } }); } - } else if ($(this).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '' && $(this).find('.dropbox').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); + } else { + onDropboxInputsChange($(this)); } } }); - $('#externalStorage tbody').on('keyup', 'tr input', function() { - var tr = $(this).parent().parent(); - if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Dropbox') && $(tr).find('[data-parameter="configured"]').val() != 'true') { + $('#externalStorage').on('paste', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox td', function() { + var tr = $(this).parent(); + setTimeout(function() { + onDropboxInputsChange(tr); + }, 20); + }); + + $('#externalStorage').on('keyup', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox td', function() { + onDropboxInputsChange($(this).parent()); + }); + + $('#externalStorage').on('change', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox .chzn-select', function() { + onDropboxInputsChange($(this).parent().parent()); + }); + + function onDropboxInputsChange(tr) { + if ($(tr).find('[data-parameter="configured"]').val() != 'true') { var config = $(tr).find('.configuration'); - if ($(tr).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '') { + if ($(tr).find('.mountPoint input').val() != '' + && $(config).find('[data-parameter="app_key"]').val() != '' + && $(config).find('[data-parameter="app_secret"]').val() != '' + && ($(tr).find('.chzn-select').length == 0 + || $(tr).find('.chzn-select').val() != null)) + { if ($(tr).find('.dropbox').length == 0) { $(config).append(''+t('files_external', 'Grant access')+''); } else { @@ -50,41 +70,37 @@ $(document).ready(function() { $(tr).find('.dropbox').hide(); } } - }); + } - $('.dropbox').on('click', function(event) { + $('#externalStorage').on('click', '.dropbox', function(event) { event.preventDefault(); + var tr = $(this).parent().parent(); var app_key = $(this).parent().find('[data-parameter="app_key"]').val(); var app_secret = $(this).parent().find('[data-parameter="app_secret"]').val(); + var statusSpan = $(tr).find('.status span'); if (app_key != '' && app_secret != '') { var tr = $(this).parent().parent(); var configured = $(this).parent().find('[data-parameter="configured"]'); var token = $(this).parent().find('[data-parameter="token"]'); var token_secret = $(this).parent().find('[data-parameter="token_secret"]'); - $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 1, app_key: app_key, app_secret: app_secret, callback: window.location.href }, function(result) { + $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 1, app_key: app_key, app_secret: app_secret, callback: location.protocol + '//' + location.host + location.pathname }, function(result) { if (result && result.status == 'success') { $(configured).val('false'); $(token).val(result.data.request_token); $(token_secret).val(result.data.request_token_secret); - if (OC.MountConfig.saveStorage(tr)) { - window.location = result.data.url; - } else { - OC.dialogs.alert( - t('files_external', 'Fill out all required fields'), - t('files_external', 'Error configuring Dropbox storage') - ); - } + OC.MountConfig.saveStorage(tr); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); + window.location = result.data.url; } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Dropbox storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Dropbox storage')); } }); } else { OC.dialogs.alert( - t('files_external', 'Please provide a valid Dropbox app key and secret.'), - t('files_external', 'Error configuring Dropbox storage') - ); + t('files_external', 'Please provide a valid Dropbox app key and secret.'), + t('files_external', 'Error configuring Dropbox storage') + ); } }); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index 9b7f9514f12d38b3c9d885bcf4ec269b6503efd7..7be1b338e904fb1cba80cea821d28882a465d18b 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -1,19 +1,30 @@ $(document).ready(function() { - $('#externalStorage tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google').each(function() { - var configured = $(this).find('[data-parameter="configured"]'); + $('#externalStorage tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google').each(function(index, tr) { + setupGoogleRow(tr); + }); + + $('#externalStorage').on('change', '#selectBackend', function() { + if ($(this).val() == '\\OC\\Files\\Storage\\Google') { + setupGoogleRow($('#externalStorage tbody>tr:last').prev('tr')); + } + }); + + function setupGoogleRow(tr) { + var configured = $(tr).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { - $(this).find('.configuration') - .append(''+t('files_external', 'Access granted')+''); + $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - var token = $(this).find('[data-parameter="token"]'); - var token_secret = $(this).find('[data-parameter="token_secret"]'); + var token = $(tr).find('[data-parameter="token"]'); + var token_secret = $(tr).find('[data-parameter="token_secret"]'); var params = {}; window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) { params[key] = value; }); if (params['oauth_token'] !== undefined && params['oauth_verifier'] !== undefined && decodeURIComponent(params['oauth_token']) == $(token).val()) { - var tr = $(this); + var statusSpan = $(tr).find('.status span'); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); $.post(OC.filePath('files_external', 'ajax', 'google.php'), { step: 2, oauth_verifier: params['oauth_verifier'], request_token: $(token).val(), request_token_secret: $(token_secret).val() }, function(result) { if (result && result.status == 'success') { $(token).val(result.access_token); @@ -22,61 +33,64 @@ $(document).ready(function() { OC.MountConfig.saveStorage(tr); $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Google Drive storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage')); + onGoogleInputsChange(tr); } }); - } else if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); + } else { + onGoogleInputsChange(tr); } } + } + + $('#externalStorage').on('paste', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google td', function() { + var tr = $(this).parent(); + setTimeout(function() { + onGoogleInputsChange(tr); + }, 20); }); - $('#externalStorage tbody').on('change', 'tr', function() { - if ($(this).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(this).find('[data-parameter="configured"]').val() != 'true') { - if ($(this).find('.mountPoint input').val() != '') { - if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); - } - } - } + $('#externalStorage').on('keyup', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google td', function() { + onGoogleInputsChange($(this).parent()); }); - $('#externalStorage tbody').on('keyup', 'tr .mountPoint input', function() { - var tr = $(this).parent().parent(); - if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(tr).find('[data-parameter="configured"]').val() != 'true' && $(tr).find('.google').length > 0) { - if ($(this).val() != '') { - $(tr).find('.google').show(); - } else { + $('#externalStorage').on('change', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google .chzn-select', function() { + onGoogleInputsChange($(this).parent().parent()); + }); + + function onGoogleInputsChange(tr) { + if ($(tr).find('[data-parameter="configured"]').val() != 'true') { + var config = $(tr).find('.configuration'); + if ($(tr).find('.mountPoint input').val() != '' && ($(tr).find('.chzn-select').length == 0 || $(tr).find('.chzn-select').val() != null)) { + if ($(tr).find('.google').length == 0) { + $(config).append(''+t('files_external', 'Grant access')+''); + } else { + $(tr).find('.google').show(); + } + } else if ($(tr).find('.google').length > 0) { $(tr).find('.google').hide(); } } - }); + } - $('.google').on('click', function(event) { + $('#externalStorage').on('click', '.google', function(event) { event.preventDefault(); var tr = $(this).parent().parent(); var configured = $(this).parent().find('[data-parameter="configured"]'); var token = $(this).parent().find('[data-parameter="token"]'); var token_secret = $(this).parent().find('[data-parameter="token_secret"]'); - $.post(OC.filePath('files_external', 'ajax', 'google.php'), { step: 1, callback: window.location.href }, function(result) { + var statusSpan = $(tr).find('.status span'); + $.post(OC.filePath('files_external', 'ajax', 'google.php'), { step: 1, callback: location.protocol + '//' + location.host + location.pathname }, function(result) { if (result && result.status == 'success') { $(configured).val('false'); $(token).val(result.data.request_token); $(token_secret).val(result.data.request_token_secret); - if (OC.MountConfig.saveStorage(tr)) { - window.location = result.data.url; - } else { - OC.dialogs.alert( - t('files_external', 'Fill out all required fields'), - t('files_external', 'Error configuring Google Drive storage') - ); - } + OC.MountConfig.saveStorage(tr); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); + window.location = result.data.url; } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Google Drive storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage')); } }); }); diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 172ef097fbfb00e6dd145dd8d0ad6930780355af..ac408786ff6271a4088530927f2141075e495e63 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -4,6 +4,7 @@ OC.MountConfig={ if (mountPoint == '') { return false; } + var statusSpan = $(tr).find('.status span'); var backendClass = $(tr).find('.backend').data('class'); var configuration = $(tr).find('.configuration input'); var addMountPoint = true; @@ -26,12 +27,20 @@ OC.MountConfig={ classOptions[$(input).data('parameter')] = $(input).val(); } }); + if ($('#externalStorage').data('admin') === true) { + var multiselect = $(tr).find('.chzn-select').val(); + if (multiselect == null) { + return false; + } + } if (addMountPoint) { + var status = false; if ($('#externalStorage').data('admin') === true) { var isPersonal = false; - var multiselect = $(tr).find('.chzn-select').val(); var oldGroups = $(tr).find('.applicable').data('applicable-groups'); var oldUsers = $(tr).find('.applicable').data('applicable-users'); + var groups = []; + var users = []; $.each(multiselect, function(index, value) { var pos = value.indexOf('(group)'); if (pos != -1) { @@ -40,30 +49,96 @@ OC.MountConfig={ if ($.inArray(applicable, oldGroups) != -1) { oldGroups.splice($.inArray(applicable, oldGroups), 1); } + groups.push(applicable); } else { var mountType = 'user'; var applicable = value; if ($.inArray(applicable, oldUsers) != -1) { oldUsers.splice($.inArray(applicable, oldUsers), 1); } + users.push(applicable); } - $.post(OC.filePath('files_external', 'ajax', 'addMountPoint.php'), { mountPoint: mountPoint, class: backendClass, classOptions: classOptions, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'), + data: { + mountPoint: mountPoint, + 'class': backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false, + success: function(result) { + statusSpan.removeClass(); + if (result && result.status == 'success' && result.data.message) { + status = true; + statusSpan.addClass('success'); + } else { + statusSpan.addClass('error'); + } + } + }); }); + $(tr).find('.applicable').data('applicable-groups', groups); + $(tr).find('.applicable').data('applicable-users', users); var mountType = 'group'; $.each(oldGroups, function(index, applicable) { - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false + }); }); var mountType = 'user'; $.each(oldUsers, function(index, applicable) { - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false + }); }); } else { var isPersonal = true; var mountType = 'user'; var applicable = OC.currentUser; - $.post(OC.filePath('files_external', 'ajax', 'addMountPoint.php'), { mountPoint: mountPoint, class: backendClass, classOptions: classOptions, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'), + data: { + mountPoint: mountPoint, + 'class': backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false, + success: function(result) { + statusSpan.removeClass(); + if (result && result.status == 'success' && result.data.message) { + status = true; + statusSpan.addClass('success'); + } else { + statusSpan.addClass('error'); + } + } + }); } - return true; + return status; } } }; @@ -71,7 +146,7 @@ OC.MountConfig={ $(document).ready(function() { $('.chzn-select').chosen(); - $('#selectBackend').on('change', function() { + $('#externalStorage').on('change', '#selectBackend', function() { var tr = $(this).parent().parent(); $('#externalStorage tbody').append($(tr).clone()); $('#externalStorage tbody tr').last().find('.mountPoint input').val(''); @@ -79,9 +154,10 @@ $(document).ready(function() { var backendClass = $(this).val(); $(this).parent().text(selected); if ($(tr).find('.mountPoint input').val() == '') { - $(tr).find('.mountPoint input').val(suggestMountPoint(selected.replace(/\s+/g, ''))); + $(tr).find('.mountPoint input').val(suggestMountPoint(selected)); } $(tr).addClass(backendClass); + $(tr).find('.status').append(''); $(tr).find('.backend').data('class', backendClass); var configurations = $(this).data('configurations'); var td = $(tr).find('td.configuration'); @@ -106,7 +182,11 @@ $(document).ready(function() { return false; } }); - $('.chz-select').chosen(); + // Reset chosen + var chosen = $(tr).find('.applicable select'); + chosen.parent().find('div').remove(); + chosen.removeAttr('id').removeClass('chzn-done').css({display:'inline-block'}); + chosen.chosen(); $(tr).find('td').last().attr('class', 'remove'); $(tr).find('td').last().removeAttr('style'); $(tr).removeAttr('id'); @@ -114,6 +194,11 @@ $(document).ready(function() { }); function suggestMountPoint(defaultMountPoint) { + var pos = defaultMountPoint.indexOf('/'); + if (pos !== -1) { + defaultMountPoint = defaultMountPoint.substring(0, pos); + } + defaultMountPoint = defaultMountPoint.replace(/\s+/g, ''); var i = 1; var append = ''; var match = true; @@ -135,11 +220,34 @@ $(document).ready(function() { return defaultMountPoint+append; } - $('#externalStorage').on('change', 'td', function() { - OC.MountConfig.saveStorage($(this).parent()); + $('#externalStorage').on('paste', 'td', function() { + var tr = $(this).parent(); + setTimeout(function() { + OC.MountConfig.saveStorage(tr); + }, 20); }); - $('td.remove>img').on('click', function() { + var timer; + + $('#externalStorage').on('keyup', 'td input', function() { + clearTimeout(timer); + var tr = $(this).parent().parent(); + if ($(this).val) { + timer = setTimeout(function() { + OC.MountConfig.saveStorage(tr); + }, 2000); + } + }); + + $('#externalStorage').on('change', 'td input:checkbox', function() { + OC.MountConfig.saveStorage($(this).parent().parent().parent()); + }); + + $('#externalStorage').on('change', '.applicable .chzn-select', function() { + OC.MountConfig.saveStorage($(this).parent().parent()); + }); + + $('#externalStorage').on('click', 'td.remove>img', function() { var tr = $(this).parent().parent(); var mountPoint = $(tr).find('.mountPoint input').val(); if ( ! mountPoint) { @@ -151,23 +259,25 @@ $(document).ready(function() { if ($('#externalStorage').data('admin') === true) { var isPersonal = false; var multiselect = $(tr).find('.chzn-select').val(); - $.each(multiselect, function(index, value) { - var pos = value.indexOf('(group)'); - if (pos != -1) { - var mountType = 'group'; - var applicable = value.substr(0, pos); - } else { - var mountType = 'user'; - var applicable = value; - } - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); - }); + if (multiselect != null) { + $.each(multiselect, function(index, value) { + var pos = value.indexOf('(group)'); + if (pos != -1) { + var mountType = 'group'; + var applicable = value.substr(0, pos); + } else { + var mountType = 'user'; + var applicable = value; + } + $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + }); + } } else { var mountType = 'user'; var applicable = OC.currentUser; var isPersonal = true; + $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); } - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); $(tr).remove(); }); diff --git a/apps/files_external/l10n/bg_BG.php b/apps/files_external/l10n/bg_BG.php index 1f2c29d54c5596ccbd7bf6d5f6b839b3c7c0fff7..6342da3f3a2fed64407017e0a9663aec98b1b73f 100644 --- a/apps/files_external/l10n/bg_BG.php +++ b/apps/files_external/l10n/bg_BG.php @@ -6,6 +6,7 @@ "Backend" => "Администрация", "Configuration" => "Конфигурация", "Options" => "Опции", +"Applicable" => "Приложимо", "None set" => "Няма избрано", "All Users" => "Всички потребители", "Groups" => "Групи", diff --git a/apps/files_external/l10n/fa.php b/apps/files_external/l10n/fa.php index 5acf3eac5a59a4e4cea5159330911a442d707e5b..945f99cec35c014edf08c09f15daa114507d5e84 100644 --- a/apps/files_external/l10n/fa.php +++ b/apps/files_external/l10n/fa.php @@ -1,8 +1,10 @@ "تمام قسمت های مورد نیاز را پر کنید", "External Storage" => "حافظه خارجی", "Configuration" => "پیکربندی", "Options" => "تنظیمات", "Applicable" => "قابل اجرا", +"All Users" => "تمام کاربران", "Groups" => "گروه ها", "Users" => "کاربران", "Delete" => "حذف", diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php index 8c7381db71d822e5789bf3fa0ff436ec9ef9e56b..120c190790b37c92ef3e25a0a77e310cb3ca5c9c 100644 --- a/apps/files_external/l10n/fi_FI.php +++ b/apps/files_external/l10n/fi_FI.php @@ -3,6 +3,7 @@ "Error configuring Dropbox storage" => "Virhe Dropbox levyn asetuksia tehtäessä", "Grant access" => "Salli pääsy", "Fill out all required fields" => "Täytä kaikki vaaditut kentät", +"Please provide a valid Dropbox app key and secret." => "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus.", "Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Varoitus: \"smbclient\" ei ole asennettuna. CIFS-/SMB-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan smbclient.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Varoitus: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. FTP-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", diff --git a/apps/files_external/l10n/hi.php b/apps/files_external/l10n/hi.php new file mode 100644 index 0000000000000000000000000000000000000000..0482efc4b23d20d9675fd371d1f1d8fc8a55e4a5 --- /dev/null +++ b/apps/files_external/l10n/hi.php @@ -0,0 +1,3 @@ + "उपयोगकर्ता" +); diff --git a/apps/files_external/l10n/hy.php b/apps/files_external/l10n/hy.php new file mode 100644 index 0000000000000000000000000000000000000000..3b80487278a16a8f1f7b407908ea855f3f5def10 --- /dev/null +++ b/apps/files_external/l10n/hy.php @@ -0,0 +1,3 @@ + "Ջնջել" +); diff --git a/apps/files_external/l10n/id.php b/apps/files_external/l10n/id.php index 4b7850025f4e845a9165809b20d48ac204e9b7f2..ab2d2d365f3a112f5dbb87866bf31c53a656e3b1 100644 --- a/apps/files_external/l10n/id.php +++ b/apps/files_external/l10n/id.php @@ -1,14 +1,26 @@ "akses diberikan", -"Grant access" => "berikan hak akses", -"Fill out all required fields" => "isi semua field yang dibutuhkan", -"External Storage" => "penyimpanan eksternal", -"Configuration" => "konfigurasi", -"Options" => "pilihan", -"Applicable" => "berlaku", -"None set" => "tidak satupun di set", -"All Users" => "semua pengguna", -"Groups" => "grup", -"Users" => "pengguna", -"Delete" => "hapus" +"Access granted" => "Akses diberikan", +"Error configuring Dropbox storage" => "Kesalahan dalam mengkonfigurasi penyimpanan Dropbox", +"Grant access" => "Berikan hak akses", +"Fill out all required fields" => "Isi semua field yang dibutuhkan", +"Please provide a valid Dropbox app key and secret." => "Masukkan kunci dan sandi aplikasi Dropbox yang benar.", +"Error configuring Google Drive storage" => "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Peringatan: \"smbclient\" tidak terpasang. Mount direktori CIFS/SMB tidak dapat dilakukan. Silakan minta administrator sistem untuk memasangnya.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Peringatan: Dukungan FTP di PHP tidak aktif atau tidak terpasang. Mount direktori FTP tidak dapat dilakukan. Silakan minta administrator sistem untuk memasangnya.", +"External Storage" => "Penyimpanan Eksternal", +"Mount point" => "Lokasi mount", +"Backend" => "Backend", +"Configuration" => "Konfigurasi", +"Options" => "Pilihan", +"Applicable" => "Berlaku", +"Add mount point" => "Tambah lokasi mount", +"None set" => "Tidak satupun di set", +"All Users" => "Semua Pengguna", +"Groups" => "Grup", +"Users" => "Pengguna", +"Delete" => "Hapus", +"Enable User External Storage" => "Aktifkan Penyimpanan Eksternal Pengguna", +"Allow users to mount their own external storage" => "Ijinkan pengguna untuk me-mount penyimpanan eksternal mereka", +"SSL root certificates" => "Sertifikat root SSL", +"Import Root Certificate" => "Impor Sertifikat Root" ); diff --git a/apps/files_external/l10n/ka.php b/apps/files_external/l10n/ka.php new file mode 100644 index 0000000000000000000000000000000000000000..14c0625e1f280d2661e7dd33cb07e27814ef1fe4 --- /dev/null +++ b/apps/files_external/l10n/ka.php @@ -0,0 +1,3 @@ + "მომხმარებლები" +); diff --git a/apps/files_external/l10n/my_MM.php b/apps/files_external/l10n/my_MM.php new file mode 100644 index 0000000000000000000000000000000000000000..5acfbb0321e780fbde7413815f045f9ec50a4366 --- /dev/null +++ b/apps/files_external/l10n/my_MM.php @@ -0,0 +1,3 @@ + "သုံးစွဲသူ" +); diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index 0b6878a5427c30a89380938caf0cdea75c0419a2..d464d192ffca90737a17fa1a0e8064ccbe62e156 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -15,12 +15,12 @@ "Applicable" => "Aplikovateľné", "Add mount point" => "Pridať prípojný bod", "None set" => "Žiadne nastavené", -"All Users" => "Všetci užívatelia", +"All Users" => "Všetci používatelia", "Groups" => "Skupiny", -"Users" => "Užívatelia", +"Users" => "Používatelia", "Delete" => "Odstrániť", "Enable User External Storage" => "Povoliť externé úložisko", -"Allow users to mount their own external storage" => "Povoliť užívateľom pripojiť ich vlastné externé úložisko", +"Allow users to mount their own external storage" => "Povoliť používateľom pripojiť ich vlastné externé úložisko", "SSL root certificates" => "Koreňové SSL certifikáty", "Import Root Certificate" => "Importovať koreňový certifikát" ); diff --git a/apps/files_external/l10n/tr.php b/apps/files_external/l10n/tr.php index e9a045aab572b6749197bd27e2093387ad403181..bbe6f5b6becfe065f348529cf5dcb5dfe394b600 100644 --- a/apps/files_external/l10n/tr.php +++ b/apps/files_external/l10n/tr.php @@ -1,4 +1,8 @@ "Giriş kabul edildi", +"Grant access" => "Erişim sağlandı", +"Fill out all required fields" => "Doldurulması zorunlu alanları doldur", +"Please provide a valid Dropbox app key and secret." => "Lütfen Dropbox app key ve secret temin ediniz", "External Storage" => "Harici Depolama", "Mount point" => "Bağlama Noktası", "Backend" => "Yönetici", @@ -11,6 +15,8 @@ "Groups" => "Gruplar", "Users" => "Kullanıcılar", "Delete" => "Sil", +"Enable User External Storage" => "Kullanıcılar için Harici Depolamayı Etkinleştir", +"Allow users to mount their own external storage" => "Kullanıcıların kendi harici depolamalarını bağlamalarına izin ver", "SSL root certificates" => "SSL kök sertifikaları", "Import Root Certificate" => "Kök Sertifikalarını İçe Aktar" ); diff --git a/apps/files_external/l10n/ur_PK.php b/apps/files_external/l10n/ur_PK.php new file mode 100644 index 0000000000000000000000000000000000000000..278357b4d68c5ec2cb0ed08de2979f0c75aeacb1 --- /dev/null +++ b/apps/files_external/l10n/ur_PK.php @@ -0,0 +1,3 @@ + "یوزرز" +); diff --git a/apps/files_external/l10n/vi.php b/apps/files_external/l10n/vi.php index 0160692cb65864fc8441d09446f52c2da5692a36..c522c669e1eae0b0822f5ba7fb64ef117cf2ac15 100644 --- a/apps/files_external/l10n/vi.php +++ b/apps/files_external/l10n/vi.php @@ -5,6 +5,8 @@ "Fill out all required fields" => "Điền vào tất cả các trường bắt buộc", "Please provide a valid Dropbox app key and secret." => "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.", "Error configuring Google Drive storage" => "Lỗi cấu hình lưu trữ Google Drive", +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Cảnh báo: \"smbclient\" chưa được cài đặt. Mount CIFS/SMB shares là không thể thực hiện được. Hãy hỏi người quản trị hệ thống để cài đặt nó.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Cảnh báo: FTP trong PHP chưa được cài đặt hoặc chưa được mở. Mount FTP shares là không thể. Xin hãy yêu cầu quản trị hệ thống của bạn cài đặt nó.", "External Storage" => "Lưu trữ ngoài", "Mount point" => "Điểm gắn", "Backend" => "phụ trợ", diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php index 494885a1dd3f3d1d69a097730d8fc1a3ab40885f..7bcefd4176c94ac9da2e6a690c34a4a7b09cd98e 100644 --- a/apps/files_external/lib/amazons3.php +++ b/apps/files_external/lib/amazons3.php @@ -33,12 +33,16 @@ class AmazonS3 extends \OC\Files\Storage\Common { private static $tempFiles = array(); - // TODO options: storage class, encryption server side, encrypt before upload? + // TODO Update to new AWS SDK public function __construct($params) { - $this->id = 'amazon::' . $params['key'] . md5($params['secret']); - $this->s3 = new \AmazonS3(array('key' => $params['key'], 'secret' => $params['secret'])); - $this->bucket = $params['bucket']; + if (isset($params['key']) && isset($params['secret']) && isset($params['bucket'])) { + $this->id = 'amazon::' . $params['key'] . md5($params['secret']); + $this->s3 = new \AmazonS3(array('key' => $params['key'], 'secret' => $params['secret'])); + $this->bucket = $params['bucket']; + } else { + throw new \Exception(); + } } private function getObject($path) { @@ -229,11 +233,6 @@ class AmazonS3 extends \OC\Files\Storage\Common { return false; } - public function free_space($path) { - // Infinite? - return false; - } - public function touch($path, $mtime = null) { if (is_null($mtime)) { $mtime = time(); @@ -245,4 +244,12 @@ class AmazonS3 extends \OC\Files\Storage\Common { return $response->isOK(); } + public function test() { + $test = $this->s3->get_canonical_user_id(); + if (isset($test['id']) && $test['id'] != '') { + return true; + } + return false; + } + } diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index 6b0df21461baee69a745f68940475dd0c1d41f65..430269e03d9061f82bc98fa92ae6823251a33cf8 100755 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -38,7 +38,7 @@ class OC_Mount_Config { * @return array */ public static function getBackends() { - + $backends['\OC\Files\Storage\Local']=array( 'backend' => 'Local', 'configuration' => array( @@ -77,7 +77,7 @@ class OC_Mount_Config { 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'); - + $backends['\OC\Files\Storage\SWIFT']=array( 'backend' => 'OpenStack Swift', 'configuration' => array( @@ -86,7 +86,7 @@ class OC_Mount_Config { 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')); - + if(OC_Mount_Config::checksmbclient()) $backends['\OC\Files\Storage\SMB']=array( 'backend' => 'SMB / CIFS', 'configuration' => array( @@ -95,7 +95,7 @@ class OC_Mount_Config { 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')); - + $backends['\OC\Files\Storage\DAV']=array( 'backend' => 'ownCloud / WebDAV', 'configuration' => array( @@ -105,6 +105,14 @@ class OC_Mount_Config { 'root' => '&Root', 'secure' => '!Secure https://')); + $backends['\OC\Files\Storage\SFTP']=array( + 'backend' => 'SFTP', + 'configuration' => array( + 'host' => 'URL', + 'user' => 'Username', + 'password' => '*Password', + 'root' => '&Root')); + return($backends); } @@ -135,7 +143,9 @@ class OC_Mount_Config { 'class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], - 'applicable' => array('groups' => array($group), 'users' => array())); + 'applicable' => array('groups' => array($group), 'users' => array()), + 'status' => self::getBackendStatus($mount['class'], $mount['options']) + ); } } } @@ -154,10 +164,13 @@ class OC_Mount_Config { $system[$mountPoint]['applicable']['users'] = array_merge($system[$mountPoint]['applicable']['users'], array($user)); } else { - $system[$mountPoint] = array('class' => $mount['class'], + $system[$mountPoint] = array( + 'class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], - 'applicable' => array('groups' => array(), 'users' => array($user))); + 'applicable' => array('groups' => array(), 'users' => array($user)), + 'status' => self::getBackendStatus($mount['class'], $mount['options']) + ); } } } @@ -182,14 +195,32 @@ class OC_Mount_Config { $mount['class'] = '\OC\Files\Storage\\'.substr($mount['class'], 15); } // Remove '/uid/files/' from mount point - $personal[substr($mountPoint, strlen($uid) + 8)] = array('class' => $mount['class'], - 'backend' => $backends[$mount['class']]['backend'], - 'configuration' => $mount['options']); + $personal[substr($mountPoint, strlen($uid) + 8)] = array( + 'class' => $mount['class'], + 'backend' => $backends[$mount['class']]['backend'], + 'configuration' => $mount['options'], + 'status' => self::getBackendStatus($mount['class'], $mount['options']) + ); } } return $personal; } + private static function getBackendStatus($class, $options) { + foreach ($options as &$option) { + $option = str_replace('$user', OCP\User::getUser(), $option); + } + if (class_exists($class)) { + try { + $storage = new $class($options); + return $storage->test(); + } catch (Exception $exception) { + return false; + } + } + return false; + } + /** * Add a mount point to the filesystem * @param string Mount point @@ -230,7 +261,7 @@ class OC_Mount_Config { $mountPoints[$mountType] = $mount; } self::writeData($isPersonal, $mountPoints); - return true; + return self::getBackendStatus($class, $classOptions); } /** @@ -271,13 +302,21 @@ class OC_Mount_Config { * @return array */ private static function readData($isPersonal) { + $parser = new \OC\ArrayParser(); if ($isPersonal) { - $file = OC_User::getHome(OCP\User::getUser()).'/mount.php'; + $phpFile = OC_User::getHome(OCP\User::getUser()).'/mount.php'; + $jsonFile = OC_User::getHome(OCP\User::getUser()).'/mount.json'; } else { - $file = OC::$SERVERROOT.'/config/mount.php'; + $phpFile = OC::$SERVERROOT.'/config/mount.php'; + $jsonFile = OC::$SERVERROOT.'/config/mount.json'; } - if (is_file($file)) { - $mountPoints = include $file; + if (is_file($jsonFile)) { + $mountPoints = json_decode(file_get_contents($jsonFile), true); + if (is_array($mountPoints)) { + return $mountPoints; + } + } elseif (is_file($phpFile)) { + $mountPoints = $parser->parsePHP(file_get_contents($phpFile)); if (is_array($mountPoints)) { return $mountPoints; } @@ -292,35 +331,11 @@ class OC_Mount_Config { */ private static function writeData($isPersonal, $data) { if ($isPersonal) { - $file = OC_User::getHome(OCP\User::getUser()).'/mount.php'; + $file = OC_User::getHome(OCP\User::getUser()).'/mount.json'; } else { - $file = OC::$SERVERROOT.'/config/mount.php'; - } - $content = " array (\n"; - foreach ($data[self::MOUNT_TYPE_GROUP] as $group => $mounts) { - $content .= "\t\t'".$group."' => array (\n"; - foreach ($mounts as $mountPoint => $mount) { - $content .= "\t\t\t'".addcslashes($mountPoint,"'")."' => ".str_replace("\n", '', var_export($mount, true)).", \n"; - - } - $content .= "\t\t),\n"; - } - $content .= "\t),\n"; - } - if (isset($data[self::MOUNT_TYPE_USER])) { - $content .= "\t'user' => array (\n"; - foreach ($data[self::MOUNT_TYPE_USER] as $user => $mounts) { - $content .= "\t\t'".$user."' => array (\n"; - foreach ($mounts as $mountPoint => $mount) { - $content .= "\t\t\t'".addcslashes($mountPoint,"'")."' => ".str_replace("\n", '', var_export($mount, true)).",\n"; - } - $content .= "\t\t),\n"; - } - $content .= "\t),\n"; + $file = OC::$SERVERROOT.'/config/mount.json'; } - $content .= ");\n?>"; + $content = json_encode($data); @file_put_contents($file, $content); } @@ -402,8 +417,12 @@ class OC_Mount_Config { public static function checkDependencies() { $l= new OC_L10N('files_external'); $txt=''; - if(!OC_Mount_Config::checksmbclient()) $txt.=$l->t('Warning: "smbclient" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it.').'
'; - if(!OC_Mount_Config::checkphpftp()) $txt.=$l->t('Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it.').'
'; + if(!OC_Mount_Config::checksmbclient()) { + $txt.=$l->t('Warning: "smbclient" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it.').'
'; + } + if(!OC_Mount_Config::checkphpftp()) { + $txt.=$l->t('Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it.').'
'; + } return($txt); } diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php index 11644e4a2c8e16519e69ca7041f23c35262a17c5..cb04e557f8a6b2b3c01a26e0a32330bd3c04cd65 100755 --- a/apps/files_external/lib/dropbox.php +++ b/apps/files_external/lib/dropbox.php @@ -40,8 +40,8 @@ class Dropbox extends \OC\Files\Storage\Common { && isset($params['token']) && isset($params['token_secret']) ) { - $this->id = 'dropbox::'.$params['app_key'] . $params['token']. '/' . $params['root']; - $this->root=isset($params['root'])?$params['root']:''; + $this->root = isset($params['root']) ? $params['root'] : ''; + $this->id = 'dropbox::'.$params['app_key'] . $params['token']. '/' . $this->root; $oauth = new \Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']); $oauth->setToken($params['token'], $params['token_secret']); $this->dropbox = new \Dropbox_API($oauth, 'dropbox'); diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index 9a27b63323af79a9a4b51eed27c40ea16db1bff9..8a7375ebe38730a270ba74ea1f275543e100fffd 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -18,26 +18,31 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ private static $tempFiles=array(); public function __construct($params) { - $this->host=$params['host']; - $this->user=$params['user']; - $this->password=$params['password']; - if (isset($params['secure'])) { - if (is_string($params['secure'])) { - $this->secure = ($params['secure'] === 'true'); + if (isset($params['host']) && isset($params['user']) && isset($params['password'])) { + $this->host=$params['host']; + $this->user=$params['user']; + $this->password=$params['password']; + if (isset($params['secure'])) { + if (is_string($params['secure'])) { + $this->secure = ($params['secure'] === 'true'); + } else { + $this->secure = (bool)$params['secure']; + } } else { - $this->secure = (bool)$params['secure']; + $this->secure = false; + } + $this->root=isset($params['root'])?$params['root']:'/'; + if ( ! $this->root || $this->root[0]!='/') { + $this->root='/'.$this->root; + } + //create the root folder if necessary + if ( ! $this->is_dir('')) { + $this->mkdir(''); } } else { - $this->secure = false; - } - $this->root=isset($params['root'])?$params['root']:'/'; - if ( ! $this->root || $this->root[0]!='/') { - $this->root='/'.$this->root; - } - //create the root folder if necesary - if ( ! $this->is_dir('')) { - $this->mkdir(''); + throw new \Exception(); } + } public function getId(){ @@ -68,7 +73,7 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ case 'ab': //these are supported by the wrapper $context = stream_context_create(array('ftp' => array('overwrite' => true))); - return fopen($this->constructUrl($path),$mode, false,$context); + return fopen($this->constructUrl($path), $mode, false, $context); case 'r+': case 'w+': case 'wb+': @@ -83,13 +88,13 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ } else { $ext=''; } - $tmpFile=OCP\Files::tmpFile($ext); + $tmpFile=\OCP\Files::tmpFile($ext); \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); if ($this->file_exists($path)) { $this->getFile($path, $tmpFile); } self::$tempFiles[$tmpFile]=$path; - return fopen('close://'.$tmpFile,$mode); + return fopen('close://'.$tmpFile, $mode); } return false; } diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php index 7396c7e3f2795dfdaabf3faa22cf6a0904c5bcc1..ec7de3f35709dec0e879dbfd42d3e14f957a70d4 100644 --- a/apps/files_external/lib/google.php +++ b/apps/files_external/lib/google.php @@ -268,7 +268,7 @@ class Google extends \OC\Files\Storage\Common { $name .= '.'.$extension; } } - $files[] = $name; + $files[] = basename($name); // Cache entry for future use $this->entries[$name] = $entry; } @@ -596,4 +596,11 @@ class Google extends \OC\Files\Storage\Common { } + public function test() { + if ($this->free_space('')) { + return true; + } + return false; + } + } diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php new file mode 100644 index 0000000000000000000000000000000000000000..ede6c251fd9e18463590b04ff7ee72a725c5f536 --- /dev/null +++ b/apps/files_external/lib/sftp.php @@ -0,0 +1,288 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace OC\Files\Storage; + +set_include_path(get_include_path() . PATH_SEPARATOR . + \OC_App::getAppPath('files_external') . '/3rdparty/phpseclib/phpseclib'); +require 'Net/SFTP.php'; + +class SFTP extends \OC\Files\Storage\Common { + private $host; + private $user; + private $password; + private $root; + + private $client; + + private static $tempFiles = array(); + + public function __construct($params) { + $this->host = $params['host']; + $proto = strpos($this->host, '://'); + if ($proto != false) { + $this->host = substr($this->host, $proto+3); + } + $this->user = $params['user']; + $this->password = $params['password']; + $this->root = isset($params['root']) ? $this->cleanPath($params['root']) : '/'; + if ($this->root[0] != '/') $this->root = '/' . $this->root; + if (substr($this->root, -1, 1) != '/') $this->root .= '/'; + + $host_keys = $this->read_host_keys(); + + $this->client = new \Net_SFTP($this->host); + if (!$this->client->login($this->user, $this->password)) { + throw new \Exception('Login failed'); + } + + $current_host_key = $this->client->getServerPublicHostKey(); + + if (array_key_exists($this->host, $host_keys)) { + if ($host_keys[$this->host] != $current_host_key) { + throw new \Exception('Host public key does not match known key'); + } + } else { + $host_keys[$this->host] = $current_host_key; + $this->write_host_keys($host_keys); + } + + if(!$this->file_exists('')){ + $this->mkdir(''); + } + } + + public function test() { + if (!isset($params['host']) || !isset($params['user']) || !isset($params['password'])) { + throw new \Exception("Required parameters not set"); + } + } + + public function getId(){ + return 'sftp::' . $this->user . '@' . $this->host . '/' . $this->root; + } + + private function abs_path($path) { + return $this->root . $this->cleanPath($path); + } + + private function host_keys_path() { + try { + $storage_view = \OCP\Files::getStorage('files_external'); + if ($storage_view) { + return \OCP\Config::getSystemValue('datadirectory') . + $storage_view->getAbsolutePath('') . + 'ssh_host_keys'; + } + } catch (\Exception $e) { + } + return false; + } + + private function write_host_keys($keys) { + try { + $key_path = $this->host_keys_path(); + $fp = fopen($key_path, 'w'); + foreach ($keys as $host => $key) { + fwrite($fp, $host . '::' . $key . "\n"); + } + fclose($fp); + return true; + } catch (\Exception $e) { + return false; + } + } + + private function read_host_keys() { + try { + $key_path = $this->host_keys_path(); + if (file_exists($key_path)) { + $hosts = array(); + $keys = array(); + $lines = file($key_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + if ($lines) { + foreach ($lines as $line) { + $host_key_arr = explode("::", $line, 2); + if (count($host_key_arr) == 2) { + $hosts[] = $host_key_arr[0]; + $keys[] = $host_key_arr[1]; + } + } + return array_combine($hosts, $keys); + } + } + } catch (\Exception $e) { + } + return array(); + } + + public function mkdir($path) { + try { + return $this->client->mkdir($this->abs_path($path)); + } catch (\Exception $e) { + return false; + } + } + + public function rmdir($path) { + try { + return $this->client->delete($this->abs_path($path), true); + } catch (\Exception $e) { + return false; + } + } + + public function opendir($path) { + try { + $list = $this->client->nlist($this->abs_path($path)); + + $id = md5('sftp:' . $path); + $dir_stream = array(); + foreach($list as $file) { + if ($file != '.' && $file != '..') { + $dir_stream[] = $file; + } + } + \OC\Files\Stream\Dir::register($id, $dir_stream); + return opendir('fakedir://' . $id); + } catch(\Exception $e) { + return false; + } + } + + public function filetype($path) { + try { + $stat = $this->client->stat($this->abs_path($path)); + if ($stat['type'] == NET_SFTP_TYPE_REGULAR) return 'file'; + if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) return 'dir'; + } catch (\Exeption $e) { + } + return false; + } + + public function isReadable($path) { + return true; + } + + public function isUpdatable($path) { + return true; + } + + public function file_exists($path) { + try { + return $this->client->stat($this->abs_path($path)) === false ? false : true; + } catch (\Exception $e) { + return false; + } + } + + public function unlink($path) { + try { + return $this->client->delete($this->abs_path($path), true); + } catch (\Exception $e) { + return false; + } + } + + public function fopen($path, $mode) { + try { + $abs_path = $this->abs_path($path); + switch($mode) { + case 'r': + case 'rb': + if ( !$this->file_exists($path)) return false; + if (strrpos($path, '.')!==false) { + $ext=substr($path, strrpos($path, '.')); + } else { + $ext=''; + } + $tmp = \OC_Helper::tmpFile($ext); + $this->getFile($abs_path, $tmp); + return fopen($tmp, $mode); + + case 'w': + case 'wb': + case 'a': + case 'ab': + case 'r+': + case 'w+': + case 'wb+': + case 'a+': + case 'x': + case 'x+': + case 'c': + case 'c+': + if (strrpos($path, '.')!==false) { + $ext=substr($path, strrpos($path, '.')); + } else { + $ext=''; + } + $tmpFile=\OC_Helper::tmpFile($ext); + \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack')); + if ($this->file_exists($path)) { + $this->getFile($abs_path, $tmpFile); + } + self::$tempFiles[$tmpFile]=$abs_path; + return fopen('close://'.$tmpFile, $mode); + } + } catch (\Exception $e) { + } + return false; + } + + public function writeBack($tmpFile) { + if (array_key_exists($tmpFile, self::$tempFiles)) { + $this->uploadFile($tmpFile, self::$tempFiles[$tmpFile]); + unlink($tmpFile); + unset(self::$tempFiles[$tmpFile]); + } + } + + public function touch($path, $mtime=null) { + try { + if (!is_null($mtime)) return false; + if (!$this->file_exists($path)) { + $this->client->put($this->abs_path($path), ''); + } else { + return false; + } + } catch (\Exception $e) { + return false; + } + return true; + } + + public function getFile($path, $target) { + $this->client->get($path, $target); + } + + public function uploadFile($path, $target) { + $this->client->put($target, $path, NET_SFTP_LOCAL_FILE); + } + + public function rename($source, $target) { + try { + return $this->client->rename($this->abs_path($source), $this->abs_path($target)); + } catch (\Exception $e) { + return false; + } + } + + public function stat($path) { + try { + $stat = $this->client->stat($this->abs_path($path)); + + $mtime = $stat ? $stat['mtime'] : -1; + $size = $stat ? $stat['size'] : 0; + + return array('mtime' => $mtime, 'size' => $size, 'ctime' => -1); + } catch (\Exception $e) { + return false; + } + + } +} diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index 96778b0b2e1c30a8ba79d829ac4970536f9af133..961efb1a50a43123a43d299296cbb30d305875c7 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -18,22 +18,26 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ private $share; public function __construct($params) { - $this->host=$params['host']; - $this->user=$params['user']; - $this->password=$params['password']; - $this->share=$params['share']; - $this->root=isset($params['root'])?$params['root']:'/'; - if ( ! $this->root || $this->root[0]!='/') { - $this->root='/'.$this->root; - } - if (substr($this->root, -1, 1)!='/') { - $this->root.='/'; - } - if ( ! $this->share || $this->share[0]!='/') { - $this->share='/'.$this->share; - } - if(substr($this->share, -1, 1)=='/') { - $this->share = substr($this->share,0,-1); + if (isset($params['host']) && isset($params['user']) && isset($params['password']) && isset($params['share'])) { + $this->host=$params['host']; + $this->user=$params['user']; + $this->password=$params['password']; + $this->share=$params['share']; + $this->root=isset($params['root'])?$params['root']:'/'; + if ( ! $this->root || $this->root[0]!='/') { + $this->root='/'.$this->root; + } + if (substr($this->root, -1, 1)!='/') { + $this->root.='/'; + } + if ( ! $this->share || $this->share[0]!='/') { + $this->share='/'.$this->share; + } + if (substr($this->share, -1, 1)=='/') { + $this->share = substr($this->share, 0, -1); + } + } else { + throw new \Exception(); } } @@ -45,7 +49,10 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ if (substr($path, -1)=='/') { $path=substr($path, 0, -1); } - return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->share.$this->root.$path; + $path = urlencode($path); + $user = urlencode($this->user); + $pass = urlencode($this->password); + return 'smb://'.$user.':'.$pass.'@'.$this->host.$this->share.$this->root.$path; } public function stat($path) { @@ -59,11 +66,6 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ } } - public function filetype($path) { - // using opendir causes the same amount of requests and caches the content of the folder in one go - return (bool)@$this->opendir($path) ? 'dir' : 'file'; - } - /** * check if a file or folder has been updated since $time * @param string $path diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php index 7c3ddcf8a2c2220f67a4302a932d59df25b49d21..4685877f26b7ea0bb0d7266bfceb897afa08f809 100644 --- a/apps/files_external/lib/streamwrapper.php +++ b/apps/files_external/lib/streamwrapper.php @@ -12,7 +12,7 @@ abstract class StreamWrapper extends \OC\Files\Storage\Common{ private $ready = false; protected function init(){ - if($this->ready){ + if($this->ready) { return; } $this->ready = true; @@ -71,39 +71,35 @@ abstract class StreamWrapper extends \OC\Files\Storage\Common{ return $succes; } - public function fopen($path,$mode) { + public function fopen($path, $mode) { $this->init(); - return fopen($this->constructUrl($path),$mode); + return fopen($this->constructUrl($path), $mode); } - public function free_space($path) { - return 0; - } - - public function touch($path,$mtime=null) { + public function touch($path, $mtime=null) { $this->init(); if(is_null($mtime)) { - $fh = $this->fopen($path,'a'); - fwrite($fh,''); + $fh = $this->fopen($path, 'a'); + fwrite($fh, ''); fclose($fh); } else { return false;//not supported } } - public function getFile($path,$target) { + public function getFile($path, $target) { $this->init(); - return copy($this->constructUrl($path),$target); + return copy($this->constructUrl($path), $target); } - public function uploadFile($path,$target) { + public function uploadFile($path, $target) { $this->init(); - return copy($path,$this->constructUrl($target)); + return copy($path, $this->constructUrl($target)); } - public function rename($path1,$path2) { + public function rename($path1, $path2) { $this->init(); - return rename($this->constructUrl($path1),$this->constructUrl($path2)); + return rename($this->constructUrl($path1), $this->constructUrl($path2)); } public function stat($path) { diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index cbf2007052bdafa9009a63ce15c9de9f9b4db679..68c4b48f17c18ae41562bc9a3f44122517bb10ac 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -210,7 +210,7 @@ class SWIFT extends \OC\Files\Storage\Common{ return false; } else { $fh=fopen($tmpFile, 'a'); - fwrite($fh,$name . "\n"); + fwrite($fh, $name . "\n"); } } catch(\Exception $e) { file_put_contents($tmpFile, $name . "\n"); @@ -264,33 +264,37 @@ class SWIFT extends \OC\Files\Storage\Common{ private function getSubContainerFile($container) { try { return $container->get_object(self::SUBCONTAINER_FILE); - } catch(NoSuchObjectException $e) { + } catch(\NoSuchObjectException $e) { return $container->create_object(self::SUBCONTAINER_FILE); } } public function __construct($params) { - $this->token=$params['token']; - $this->host=$params['host']; - $this->user=$params['user']; - $this->root=isset($params['root'])?$params['root']:'/'; - if (isset($params['secure'])) { - if (is_string($params['secure'])) { - $this->secure = ($params['secure'] === 'true'); + if (isset($params['token']) && isset($params['host']) && isset($params['user'])) { + $this->token=$params['token']; + $this->host=$params['host']; + $this->user=$params['user']; + $this->root=isset($params['root'])?$params['root']:'/'; + if (isset($params['secure'])) { + if (is_string($params['secure'])) { + $this->secure = ($params['secure'] === 'true'); + } else { + $this->secure = (bool)$params['secure']; + } } else { - $this->secure = (bool)$params['secure']; + $this->secure = false; + } + if ( ! $this->root || $this->root[0]!='/') { + $this->root='/'.$this->root; } } else { - $this->secure = false; - } - if ( ! $this->root || $this->root[0]!='/') { - $this->root='/'.$this->root; + throw new \Exception(); } } private function init(){ - if($this->ready){ + if($this->ready) { return; } $this->ready = true; @@ -478,10 +482,6 @@ class SWIFT extends \OC\Files\Storage\Common{ } } - public function free_space($path) { - return 1024*1024*1024*8; - } - public function touch($path, $mtime=null) { $this->init(); $obj=$this->getObject($path); diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index 2a953ac63f45756f11bbe1d55c96e0a195c49ed0..3ba7c48cd5742adcabbb94bc831364ee4c2f2ae2 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -23,42 +23,46 @@ class DAV extends \OC\Files\Storage\Common{ private static $tempFiles=array(); public function __construct($params) { - $host = $params['host']; - //remove leading http[s], will be generated in createBaseUri() - if (substr($host, 0, 8) == "https://") $host = substr($host, 8); - else if (substr($host, 0, 7) == "http://") $host = substr($host, 7); - $this->host=$host; - $this->user=$params['user']; - $this->password=$params['password']; - if (isset($params['secure'])) { - if (is_string($params['secure'])) { - $this->secure = ($params['secure'] === 'true'); + if (isset($params['host']) && isset($params['user']) && isset($params['password'])) { + $host = $params['host']; + //remove leading http[s], will be generated in createBaseUri() + if (substr($host, 0, 8) == "https://") $host = substr($host, 8); + else if (substr($host, 0, 7) == "http://") $host = substr($host, 7); + $this->host=$host; + $this->user=$params['user']; + $this->password=$params['password']; + if (isset($params['secure'])) { + if (is_string($params['secure'])) { + $this->secure = ($params['secure'] === 'true'); + } else { + $this->secure = (bool)$params['secure']; + } } else { - $this->secure = (bool)$params['secure']; + $this->secure = false; + } + $this->root=isset($params['root'])?$params['root']:'/'; + if ( ! $this->root || $this->root[0]!='/') { + $this->root='/'.$this->root; + } + if (substr($this->root, -1, 1)!='/') { + $this->root.='/'; } } else { - $this->secure = false; - } - $this->root=isset($params['root'])?$params['root']:'/'; - if ( ! $this->root || $this->root[0]!='/') { - $this->root='/'.$this->root; - } - if (substr($this->root, -1, 1)!='/') { - $this->root.='/'; + throw new \Exception(); } } private function init(){ - if($this->ready){ + if($this->ready) { return; } $this->ready = true; - $settings = array( - 'baseUri' => $this->createBaseUri(), - 'userName' => $this->user, - 'password' => $this->password, - ); + $settings = array( + 'baseUri' => $this->createBaseUri(), + 'userName' => $this->user, + 'password' => $this->password, + ); $this->client = new \Sabre_DAV_Client($settings); @@ -69,7 +73,7 @@ class DAV extends \OC\Files\Storage\Common{ $this->client->addTrustedCertificates($certPath); } } - //create the root folder if necesary + //create the root folder if necessary $this->mkdir(''); } @@ -153,10 +157,10 @@ class DAV extends \OC\Files\Storage\Common{ public function unlink($path) { $this->init(); - return $this->simpleResponse('DELETE', $path, null ,204); + return $this->simpleResponse('DELETE', $path, null, 204); } - public function fopen($path,$mode) { + public function fopen($path, $mode) { $this->init(); $path=$this->cleanPath($path); switch($mode) { @@ -222,7 +226,7 @@ class DAV extends \OC\Files\Storage\Common{ return 0; } } catch(\Exception $e) { - return 0; + return \OC\Files\FREE_SPACE_UNKNOWN; } } @@ -235,13 +239,13 @@ class DAV extends \OC\Files\Storage\Common{ $this->client->proppatch($path, array('{DAV:}lastmodified' => $mtime)); } - public function getFile($path,$target) { + public function getFile($path, $target) { $this->init(); - $source=$this->fopen($path,'r'); - file_put_contents($target,$source); + $source=$this->fopen($path, 'r'); + file_put_contents($target, $source); } - public function uploadFile($path,$target) { + public function uploadFile($path, $target) { $this->init(); $source=fopen($path, 'r'); @@ -256,7 +260,7 @@ class DAV extends \OC\Files\Storage\Common{ curl_close ($curl); } - public function rename($path1,$path2) { + public function rename($path1, $path2) { $this->init(); $path1=$this->cleanPath($path1); $path2=$this->root.$this->cleanPath($path2); @@ -268,7 +272,7 @@ class DAV extends \OC\Files\Storage\Common{ } } - public function copy($path1,$path2) { + public function copy($path1, $path2) { $this->init(); $path1=$this->cleanPath($path1); $path2=$this->root.$this->cleanPath($path2); @@ -313,7 +317,7 @@ class DAV extends \OC\Files\Storage\Common{ } } - private function cleanPath($path) { + public function cleanPath($path) { if ( ! $path || $path[0]=='/') { return substr($path, 1); } else { @@ -321,7 +325,7 @@ class DAV extends \OC\Files\Storage\Common{ } } - private function simpleResponse($method,$path,$body,$expected) { + private function simpleResponse($method, $path, $body, $expected) { $path=$this->cleanPath($path); try { $response=$this->client->request($method, $path, $body); diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index 78ca1c87feefa3f1b22648bc4484fbfbb7ad2c6b..76d691eedb2165248796b1de780786a96bcd6dcf 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -5,8 +5,9 @@ '> - - + + + '.$l->t('Applicable').''; ?> @@ -17,14 +18,19 @@ array())); ?> $mount): ?> > + + value="" + placeholder="t('Folder name'); ?>" /> @@ -83,7 +88,7 @@
t('Mount point'); ?>t('Backend'); ?>t('Folder name'); ?>t('External storage'); ?> t('Configuration'); ?>
+ + + +
+ diff --git a/apps/files_external/tests/config.php b/apps/files_external/tests/config.php index 65127175ad7dea93a567cf9c8bc4e893910844d8..1d4f30c713dd00e098172da16be1a81453f0754f 100644 --- a/apps/files_external/tests/config.php +++ b/apps/files_external/tests/config.php @@ -8,7 +8,7 @@ return array( 'root'=>'/test', ), 'webdav'=>array( - 'run'=>true, + 'run'=>false, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', @@ -30,7 +30,7 @@ return array( 'root'=>'/', ), 'smb'=>array( - 'run'=>true, + 'run'=>false, 'user'=>'test', 'password'=>'test', 'host'=>'localhost', @@ -51,5 +51,12 @@ return array( 'app_secret' => '', 'token' => '', 'token_secret' => '' + ), + 'sftp' => array ( + 'run'=>false, + 'host'=>'localhost', + 'user'=>'test', + 'password'=>'test', + 'root'=>'/test' ) ); diff --git a/apps/files_external/tests/sftp.php b/apps/files_external/tests/sftp.php new file mode 100644 index 0000000000000000000000000000000000000000..16964e208781c34b4d8ecce4d90230496b51c2fe --- /dev/null +++ b/apps/files_external/tests/sftp.php @@ -0,0 +1,43 @@ +. + */ + +namespace Test\Files\Storage; + +class SFTP extends Storage { + private $config; + + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if ( ! is_array($this->config) or ! isset($this->config['sftp']) or ! $this->config['sftp']['run']) { + $this->markTestSkipped('SFTP backend not configured'); + } + $this->config['sftp']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\SFTP($this->config['sftp']); + } + + public function tearDown() { + if ($this->instance) { + $this->instance->rmdir('/'); + } + } +} \ No newline at end of file diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml index 1f24a4dde83e50eb2a7f916fd0be89fbc5a99a04..9a199281a76f0eb072f372c9fe057a4e09aa6e13 100644 --- a/apps/files_sharing/appinfo/info.xml +++ b/apps/files_sharing/appinfo/info.xml @@ -5,7 +5,7 @@ File sharing between users AGPL Michael Gapczynski - 4.91 + 4.93 true diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php index 1d22b32b503100f337393356f7d7d3aeacf4d5b8..48e41e9304889fe1c1356ded114ffb6b08f299c7 100644 --- a/apps/files_sharing/appinfo/update.php +++ b/apps/files_sharing/appinfo/update.php @@ -52,7 +52,10 @@ if (version_compare($installedVersion, '0.3', '<')) { } catch (Exception $e) { $update_error = true; - OCP\Util::writeLog('files_sharing', 'Upgrade Routine: Skipping sharing "'.$row['source'].'" to "'.$shareWith.'" (error is "'.$e->getMessage().'")', OCP\Util::WARN); + OCP\Util::writeLog('files_sharing', + 'Upgrade Routine: Skipping sharing "'.$row['source'].'" to "'.$shareWith + .'" (error is "'.$e->getMessage().'")', + OCP\Util::WARN); } OC_Util::tearDownFS(); } diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css index 492014344f7318f6bba9f77e4ffb6c686cdd6199..13298f113f8f767f707374bffe612f37aa455624 100644 --- a/apps/files_sharing/css/public.css +++ b/apps/files_sharing/css/public.css @@ -34,9 +34,8 @@ body { background:#eee; border-bottom:1px solid #f8f8f8; min-height:30em; - padding-top:2em; text-align:center; - margin:50px auto; + margin:45px auto; } #noPreview { @@ -60,6 +59,7 @@ p.info a { #imgframe { height:75%; padding-bottom:2em; + padding-top:2em; width:80%; margin:0 auto; } @@ -67,4 +67,9 @@ p.info a { #imgframe img { max-height:100%; max-width:100%; -} \ No newline at end of file +} + +thead{ + background-color: white; + padding-left:0 !important; /* fixes multiselect bar offset on shared page */ +} diff --git a/apps/files_sharing/l10n/ka.php b/apps/files_sharing/l10n/ka.php new file mode 100644 index 0000000000000000000000000000000000000000..0270d5d6f8c6a5516cb1e294839a69882573385e --- /dev/null +++ b/apps/files_sharing/l10n/ka.php @@ -0,0 +1,4 @@ + "პაროლი", +"Download" => "გადმოწერა" +); diff --git a/apps/files_sharing/l10n/my_MM.php b/apps/files_sharing/l10n/my_MM.php new file mode 100644 index 0000000000000000000000000000000000000000..dc7ec17e9c58249113282639cac8aa27f1c2b42a --- /dev/null +++ b/apps/files_sharing/l10n/my_MM.php @@ -0,0 +1,6 @@ + "စကားဝှက်", +"Submit" => "ထည့်သွင်းမည်", +"Download" => "ဒေါင်းလုတ်", +"web services under your control" => "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services" +); diff --git a/apps/files_sharing/l10n/ur_PK.php b/apps/files_sharing/l10n/ur_PK.php new file mode 100644 index 0000000000000000000000000000000000000000..f68b714350f8a7b318978c7110586c8c58bdae4d --- /dev/null +++ b/apps/files_sharing/l10n/ur_PK.php @@ -0,0 +1,4 @@ + "پاسورڈ", +"web services under your control" => "آپ کے اختیار میں ویب سروسیز" +); diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 9655e44787517b928af7f7101e5d92ca0a6d794c..fb0f6c7b5a6bd3b4fb4f8cad64b4f7e900471bac 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -71,8 +71,9 @@ class Shared_Cache extends Cache { } } else { $query = \OC_DB::prepare( - 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` - FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`,' + .' `size`, `mtime`, `encrypted`' + .' FROM `*PREFIX*filecache` WHERE `fileid` = ?'); $result = $query->execute(array($file)); $data = $result->fetchRow(); $data['fileid'] = (int)$data['fileid']; diff --git a/apps/files_sharing/lib/permissions.php b/apps/files_sharing/lib/permissions.php index 2b068ff93502f45ed68151b472ce9f7ca4826257..72c1ec96c46a1fe4861f37cdb482fd6853be0a99 100644 --- a/apps/files_sharing/lib/permissions.php +++ b/apps/files_sharing/lib/permissions.php @@ -33,7 +33,8 @@ class Shared_Permissions extends Permissions { if ($fileId == -1) { return \OCP\PERMISSION_READ; } - $source = \OCP\Share::getItemSharedWithBySource('file', $fileId, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE, null, true); + $source = \OCP\Share::getItemSharedWithBySource('file', $fileId, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE, + null, true); if ($source) { return $source['permissions']; } else { diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php index 6d3c55a008f0bdaf85fc14674f6a3f55f7d01f51..0aeb763d89ad21d0c99d44f22f1940ef32501158 100644 --- a/apps/files_sharing/lib/share/file.php +++ b/apps/files_sharing/lib/share/file.php @@ -72,7 +72,11 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { public function formatItems($items, $format, $parameters = null) { if ($format == self::FORMAT_SHARED_STORAGE) { // Only 1 item should come through for this format call - return array('path' => $items[key($items)]['path'], 'permissions' => $items[key($items)]['permissions'], 'uid_owner' => $items[key($items)]['uid_owner']); + return array( + 'path' => $items[key($items)]['path'], + 'permissions' => $items[key($items)]['permissions'], + 'uid_owner' => $items[key($items)]['uid_owner'] + ); } else if ($format == self::FORMAT_GET_FOLDER_CONTENTS) { $files = array(); foreach ($items as $item) { @@ -99,7 +103,13 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { } $size += (int)$item['size']; } - return array('fileid' => -1, 'name' => 'Shared', 'mtime' => $mtime, 'mimetype' => 'httpd/unix-directory', 'size' => $size); + return array( + 'fileid' => -1, + 'name' => 'Shared', + 'mtime' => $mtime, + 'mimetype' => 'httpd/unix-directory', + 'size' => $size + ); } else if ($format == self::FORMAT_OPENDIR) { $files = array(); foreach ($items as $item) { diff --git a/apps/files_sharing/lib/share/folder.php b/apps/files_sharing/lib/share/folder.php index 11c8c6b1e8066bd7d84dfbee563a5982607d3486..4426beec6368fa34e17b60f3d114ca6a5b47e2e6 100644 --- a/apps/files_sharing/lib/share/folder.php +++ b/apps/files_sharing/lib/share/folder.php @@ -33,7 +33,8 @@ class OC_Share_Backend_Folder extends OC_Share_Backend_File implements OCP\Share } while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - $query = OC_DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache` WHERE `parent` IN ('.$parents.')'); + $query = OC_DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache`' + .' WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); $parents = array(); while ($file = $result->fetchRow()) { @@ -47,4 +48,4 @@ class OC_Share_Backend_Folder extends OC_Share_Backend_File implements OCP\Share return $children; } -} \ No newline at end of file +} diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index ea28ca69b9355cf028f53cd856b406e95747ccc8..5a9864b64bae035873c12cef62d7f8758069883a 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -240,7 +240,8 @@ class Shared extends \OC\Files\Storage\Common { public function file_put_contents($path, $data) { if ($source = $this->getSourcePath($path)) { // Check if permission is granted - if (($this->file_exists($path) && !$this->isUpdatable($path)) || ($this->is_dir($path) && !$this->isCreatable($path))) { + if (($this->file_exists($path) && !$this->isUpdatable($path)) + || ($this->is_dir($path) && !$this->isCreatable($path))) { return false; } $info = array( @@ -314,7 +315,8 @@ class Shared extends \OC\Files\Storage\Common { if ($this->isCreatable(dirname($path2))) { $source = $this->fopen($path1, 'r'); $target = $this->fopen($path2, 'w'); - return \OC_Helper::streamCopy($source, $target); + list ($count, $result) = \OC_Helper::streamCopy($source, $target); + return $result; } return false; } @@ -390,9 +392,12 @@ class Shared extends \OC\Files\Storage\Common { } public static function setup($options) { - if (\OCP\Share::getItemsSharedWith('file')) { + if (!\OCP\User::isLoggedIn() || \OCP\User::getUser() != $options['user'] + || \OCP\Share::getItemsSharedWith('file')) { $user_dir = $options['user_dir']; - \OC\Files\Filesystem::mount('\OC\Files\Storage\Shared', array('sharedFolder' => '/Shared'), $user_dir.'/Shared/'); + \OC\Files\Filesystem::mount('\OC\Files\Storage\Shared', + array('sharedFolder' => '/Shared'), + $user_dir.'/Shared/'); } } diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index a3e0ec192afab690188b151ffdbb81fa9fa9c2e1..243ee668f1f01f37281c233923897459300f40e3 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -1,67 +1,18 @@ execute(array($_GET['token']))->fetchOne(); - if (isset($filepath)) { - $rootView = new \OC\Files\View(''); - $info = $rootView->getFileInfo($filepath, ''); - if (strtolower($info['mimetype']) == 'httpd/unix-directory') { - $_GET['dir'] = $filepath; - } else { - $_GET['file'] = $filepath; - } - \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0.' - .' Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', - \OCP\Util::WARN); - } -} - -function getID($path) { - // use the share table from the db to find the item source if the file was reshared because shared files - //are not stored in the file cache. - if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") { - $path_parts = explode('/', $path, 5); - $user = $path_parts[1]; - $intPath = '/'.$path_parts[4]; - $query = \OC_DB::prepare('SELECT `item_source`' - .' FROM `*PREFIX*share`' - .' WHERE `uid_owner` = ?' - .' AND `file_target` = ? '); - $result = $query->execute(array($user, $intPath)); - $row = $result->fetchRow(); - $fileSource = $row['item_source']; +function fileCmp($a, $b) { + if ($a['type'] == 'dir' and $b['type'] != 'dir') { + return -1; + } elseif ($a['type'] != 'dir' and $b['type'] == 'dir') { + return 1; } else { - $rootView = new \OC\Files\View(''); - $meta = $rootView->getFileInfo($path); - $fileSource = $meta['fileid']; + return strnatcasecmp($a['name'], $b['name']); } - - return $fileSource; -} - -// Enf of backward compatibility - -/** - * lookup file path and owner by fetching it from the fscache - * needed because OC_FileCache::getPath($id, $user) already requires the user - * @param int $id - * @return array - */ -function getPathAndUser($id) { - $query = \OC_DB::prepare('SELECT `user`, `path` FROM `*PREFIX*fscache` WHERE `id` = ?'); - $result = $query->execute(array($id)); - $row = $result->fetchRow(); - return $row; } - if (isset($_GET['t'])) { $token = $_GET['t']; $linkItem = OCP\Share::getShareByToken($token); @@ -70,61 +21,30 @@ if (isset($_GET['t'])) { $type = $linkItem['item_type']; $fileSource = $linkItem['file_source']; $shareOwner = $linkItem['uid_owner']; - - if (OCP\User::userExists($shareOwner) && $fileSource != -1 ) { - - $pathAndUser = getPathAndUser($linkItem['file_source']); - $fileOwner = $pathAndUser['user']; - - //if this is a reshare check the file owner also exists - if ($shareOwner != $fileOwner && ! OCP\User::userExists($fileOwner)) { - OCP\Util::writeLog('share', 'original file owner '.$fileOwner - .' does not exist for share '.$linkItem['id'], \OCP\Util::ERROR); - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - - //mount filesystem of file owner - OC_Util::setupFS($fileOwner); - } - } -} else { - if (isset($_GET['file']) || isset($_GET['dir'])) { - OCP\Util::writeLog('share', 'Missing token, trying fallback file/dir links', \OCP\Util::DEBUG); - if (isset($_GET['dir'])) { - $type = 'folder'; - $path = $_GET['dir']; - if (strlen($path) > 1 and substr($path, -1, 1) === '/') { - $path = substr($path, 0, -1); + $fileOwner = null; + $path = null; + if (isset($linkItem['parent'])) { + $parent = $linkItem['parent']; + while (isset($parent)) { + $query = \OC_DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1); + $item = $query->execute(array($parent))->fetchRow(); + if (isset($item['parent'])) { + $parent = $item['parent']; + } else { + $fileOwner = $item['uid_owner']; + break; + } } - $baseDir = $path; - $dir = $baseDir; } else { - $type = 'file'; - $path = $_GET['file']; - if (strlen($path) > 1 and substr($path, -1, 1) === '/') { - $path = substr($path, 0, -1); - } + $fileOwner = $shareOwner; } - $shareOwner = substr($path, 1, strpos($path, '/', 1) - 1); - - if (OCP\User::userExists($shareOwner)) { - OC_Util::setupFS($shareOwner); - $fileSource = getId($path); - if ($fileSource != -1) { - $linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $shareOwner); - $pathAndUser['path'] = $path; - $path_parts = explode('/', $path, 5); - $pathAndUser['user'] = $path_parts[1]; - $fileOwner = $path_parts[1]; - } + if (isset($fileOwner)) { + OC_Util::setupFS($fileOwner); + $path = \OC\Files\Filesystem::getPath($linkItem['file_source']); } } } - -if ($linkItem) { +if (isset($path)) { if (!isset($linkItem['item_type'])) { OCP\Util::writeLog('share', 'No item type set for share id: ' . $linkItem['id'], \OCP\Util::ERROR); header('HTTP/1.0 404 Not Found'); @@ -181,36 +101,23 @@ if ($linkItem) { } } } - $basePath = substr($pathAndUser['path'], strlen('/' . $fileOwner . '/files')); - $path = $basePath; - if (isset($_GET['path'])) { - $path .= $_GET['path']; - } - if (!$path || !\OC\Files\Filesystem::isValidPath($path) || !\OC\Files\Filesystem::file_exists($path)) { - OCP\Util::writeLog('share', 'Invalid path ' . $path . ' for share id ' . $linkItem['id'], \OCP\Util::ERROR); - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); + $basePath = $path; + if (isset($_GET['path']) && \OC\Files\Filesystem::isReadable($basePath . $_GET['path'])) { + $getPath = \OC\Files\Filesystem::normalizePath($_GET['path']); + $path .= $getPath; + } else { + $getPath = ''; } $dir = dirname($path); $file = basename($path); // Download the file if (isset($_GET['download'])) { - if (isset($_GET['path']) && $_GET['path'] !== '') { - if (isset($_GET['files'])) { // download selected files - OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else { - if (isset($_GET['path']) && $_GET['path'] != '') { // download a file from a shared directory - OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else { // download the whole shared directory - OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } - } - } else { // download a single shared file + if (isset($_GET['files'])) { // download selected files + OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } else { OC_Files::get($dir, $file, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); } - + exit(); } else { OCP\Util::addStyle('files_sharing', 'public'); OCP\Util::addScript('files_sharing', 'public'); @@ -218,211 +125,90 @@ if ($linkItem) { $tmpl = new OCP\Template('files_sharing', 'public', 'base'); $tmpl->assign('uidOwner', $shareOwner); $tmpl->assign('displayName', \OCP\User::getDisplayName($shareOwner)); - $tmpl->assign('dir', $dir); $tmpl->assign('filename', $file); $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - if (isset($_GET['path'])) { - $getPath = $_GET['path']; - } else { - $getPath = ''; - } - // + $tmpl->assign('fileTarget', basename($linkItem['file_target'])); $urlLinkIdentifiers= (isset($token)?'&t='.$token:'') .(isset($_GET['dir'])?'&dir='.$_GET['dir']:'') .(isset($_GET['file'])?'&file='.$_GET['file']:''); // Show file list if (\OC\Files\Filesystem::is_dir($path)) { + $tmpl->assign('dir', $getPath); + OCP\Util::addStyle('files', 'files'); OCP\Util::addScript('files', 'files'); OCP\Util::addScript('files', 'filelist'); OCP\Util::addscript('files', 'keyboardshortcuts'); $files = array(); $rootLength = strlen($basePath) + 1; - foreach (OC_Files::getDirectoryContent($path) as $i) { + foreach (\OC\Files\Filesystem::getDirectoryContent($path) as $i) { $i['date'] = OCP\Util::formatDate($i['mtime']); if ($i['type'] == 'file') { $fileinfo = pathinfo($i['name']); $i['basename'] = $fileinfo['filename']; - $i['extension'] = isset($fileinfo['extension']) ? ('.' . $fileinfo['extension']) : ''; - } - $i['directory'] = '/' . substr($i['directory'], $rootLength); - if ($i['directory'] == '/') { - $i['directory'] = ''; + if (!empty($fileinfo['extension'])) { + $i['extension'] = '.' . $fileinfo['extension']; + } else { + $i['extension'] = ''; + } } + $i['directory'] = $getPath; $i['permissions'] = OCP\PERMISSION_READ; $files[] = $i; } + usort($files, "fileCmp"); + // Make breadcrumb $breadcrumb = array(); $pathtohere = ''; - - //add base breadcrumb - $breadcrumb[] = array('dir' => '/', 'name' => basename($basePath)); - - //add subdir breadcrumbs - foreach (explode('/', urldecode($getPath)) as $i) { + foreach (explode('/', $getPath) as $i) { if ($i != '') { $pathtohere .= '/' . $i; $breadcrumb[] = array('dir' => $pathtohere, 'name' => $i); - $path = $linkItem['path']; - if (isset($_GET['path'])) { - $path .= $_GET['path']; - $dir .= $_GET['path']; - if (!\OC\Files\Filesystem::file_exists($path)) { - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - } - - $list = new OCP\Template('files', 'part.list', ''); - $list->assign('files', $files, false); - $list->assign('publicListView', true); - $list->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); - $list->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=', false); - $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); - $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); - $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); - $folder = new OCP\Template('files', 'index', ''); - $folder->assign('fileList', $list->fetchPage(), false); - $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); - $folder->assign('isCreatable', false); - $folder->assign('permissions', 0); - $folder->assign('files', $files); - $folder->assign('uploadMaxFilesize', 0); - $folder->assign('uploadMaxHumanFilesize', 0); - $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - $tmpl->assign('folder', $folder->fetchPage(), false); - $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath)); - } else { - // Show file preview if viewer is available - if ($type == 'file') { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download'); - } else { - OCP\Util::addStyle('files_sharing', 'public'); - OCP\Util::addScript('files_sharing', 'public'); - OCP\Util::addScript('files', 'fileactions'); - $tmpl = new OCP\Template('files_sharing', 'public', 'base'); - $tmpl->assign('owner', $uidOwner); - // Show file list - if (\OC\Files\Filesystem::is_dir($path)) { - OCP\Util::addStyle('files', 'files'); - OCP\Util::addScript('files', 'files'); - OCP\Util::addScript('files', 'filelist'); - $files = array(); - $rootLength = strlen($baseDir) + 1; - foreach (OC_Files::getDirectoryContent($path) as $i) { - $i['date'] = OCP\Util::formatDate($i['mtime']); - if ($i['type'] == 'file') { - $fileinfo = pathinfo($i['name']); - $i['basename'] = $fileinfo['filename']; - $i['extension'] = isset($fileinfo['extension']) ? ('.' . $fileinfo['extension']) : ''; - } - $i['directory'] = '/' . substr('/' . $uidOwner . '/files' . $i['directory'], $rootLength); - if ($i['directory'] == '/') { - $i['directory'] = ''; - } - $i['permissions'] = OCP\PERMISSION_READ; - $files[] = $i; - } - // Make breadcrumb - $breadcrumb = array(); - $pathtohere = ''; - $count = 1; - foreach (explode('/', $dir) as $i) { - if ($i != '') { - if ($i != $baseDir) { - $pathtohere .= '/' . $i; - } - if (strlen($pathtohere) < strlen($_GET['dir'])) { - continue; - } - $breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i); - } - } - $list = new OCP\Template('files', 'part.list', ''); - $list->assign('files', $files, false); - $list->assign('publicListView', true); - $list->assign('baseURL', OCP\Util::linkToPublic('files') . '&dir=' . urlencode($_GET['dir']) . '&path=', false); - $list->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=', false); - $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); - $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); - $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . '&dir=' . urlencode($_GET['dir']) . '&path=', false); - $folder = new OCP\Template('files', 'index', ''); - $folder->assign('fileList', $list->fetchPage(), false); - $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); - $folder->assign('dir', basename($dir)); - $folder->assign('isCreatable', false); - $folder->assign('permissions', 0); - $folder->assign('files', $files); - $folder->assign('uploadMaxFilesize', 0); - $folder->assign('uploadMaxHumanFilesize', 0); - $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - $tmpl->assign('folder', $folder->fetchPage(), false); - $tmpl->assign('uidOwner', $uidOwner); - $tmpl->assign('dir', basename($dir)); - $tmpl->assign('filename', basename($path)); - $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - if (isset($_GET['path'])) { - $getPath = $_GET['path']; - } else { - $getPath = ''; - } - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=' . urlencode($getPath), false); - } else { - // Show file preview if viewer is available - $tmpl->assign('uidOwner', $uidOwner); - $tmpl->assign('dir', dirname($path)); - $tmpl->assign('filename', basename($path)); - $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - if ($type == 'file') { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&file=' . urlencode($_GET['file']) . '&download', false); - } else { - if (isset($_GET['path'])) { - $getPath = $_GET['path']; - } else { - $getPath = ''; - } - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . '&download&dir=' . urlencode($_GET['dir']) . '&path=' . urlencode($getPath), false); - } - } - $tmpl->printPage(); - } } - $tmpl->printPage(); } - $list = new OCP\Template('files', 'part.list', ''); $list->assign('files', $files, false); $list->assign('disableSharing', true); - $list->assign('baseURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&path=', false); - $list->assign('downloadURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&download&path=', false); - $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '' ); + $list->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); + $list->assign('downloadURL', + OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=', + false); + $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); - $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&path=', false); + $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=', false); $folder = new OCP\Template('files', 'index', ''); $folder->assign('fileList', $list->fetchPage(), false); $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); - $folder->assign('dir', basename($dir)); + $folder->assign('dir', $getPath); $folder->assign('isCreatable', false); $folder->assign('permissions', 0); $folder->assign('files', $files); $folder->assign('uploadMaxFilesize', 0); $folder->assign('uploadMaxHumanFilesize', 0); $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $folder->assign('usedSpacePercent', 0); $tmpl->assign('folder', $folder->fetchPage(), false); $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') - .$urlLinkIdentifiers.'&download&path='.urlencode($getPath)); + $tmpl->assign('downloadURL', + OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath)); } else { - OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); + $tmpl->assign('dir', $dir); + + // Show file preview if viewer is available + if ($type == 'file') { + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download'); + } else { + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files') + .$urlLinkIdentifiers.'&download&path='.urlencode($getPath)); + } } + $tmpl->printPage(); } + exit(); +} else { + OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); } header('HTTP/1.0 404 Not Found'); $tmpl = new OCP\Template('', '404', 'guest'); $tmpl->printPage(); - diff --git a/apps/files_sharing/templates/authenticate.php b/apps/files_sharing/templates/authenticate.php index 9695caebf1831d88e4d8aeb56a12cd71a5c3041e..6bce6857ac8667ed80a197b674a0f0c55ebf4fce 100644 --- a/apps/files_sharing/templates/authenticate.php +++ b/apps/files_sharing/templates/authenticate.php @@ -1,8 +1,8 @@
-

+

- +

diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 71fca09ed6d9b3147f081a29147fc9f5b4916e62..f9ff12679bcc7772fc0299c7eec1621ea44fef79 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -3,15 +3,20 @@
@@ -26,10 +31,13 @@ -

ownCloudt('web services under your control'); ?>

+

ownCloud – +t('web services under your control'); ?>

diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php index 7a6bd1342ea278ea53d29f66d17ef4f31cd42ecf..1834fb54003a476aacf4b7c2a7339ff6d5e11ccd 100644 --- a/apps/files_trashbin/ajax/delete.php +++ b/apps/files_trashbin/ajax/delete.php @@ -3,22 +3,43 @@ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); -$file = $_REQUEST['file']; +$files = $_POST['files']; +$dirlisting = $_POST['dirlisting']; +$list = json_decode($files); -$path_parts = pathinfo($file); -if ($path_parts['dirname'] == '.') { - $delimiter = strrpos($file, '.d'); - $filename = substr($file, 0, $delimiter); - $timestamp = substr($file, $delimiter+2); -} else { - $filename = $file; - $timestamp = null; +$error = array(); +$success = array(); + +$i = 0; +foreach ($list as $file) { + if ( $dirlisting=='0') { + $delimiter = strrpos($file, '.d'); + $filename = substr($file, 0, $delimiter); + $timestamp = substr($file, $delimiter+2); + } else { + $filename = $file; + $timestamp = null; + } + + OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp); + if (!OCA\Files_Trashbin\Trashbin::file_exists($filename, $timestamp)) { + $success[$i]['filename'] = $file; + $success[$i]['timestamp'] = $timestamp; + $i++; + } else { + $error[] = $filename; + } } -if (OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp)) { - OCP\JSON::success(array("data" => array("filename" => $file))); -} else { +if ( $error ) { + $filelist = ''; + foreach ( $error as $e ) { + $filelist .= $e.', '; + } $l = OC_L10N::get('files_trashbin'); - OCP\JSON::error(array("data" => array("message" => $l->t("Couldn't delete %s permanently", array($file))))); + $message = $l->t("Couldn't delete %s permanently", array(rtrim($filelist, ', '))); + OCP\JSON::error(array("data" => array("message" => $message, + "success" => $success, "error" => $error))); +} else { + OCP\JSON::success(array("data" => array("success" => $success))); } - diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php index cc010979c51e28d655639c6c00f640bae69d27da..80de3c31f912379a955de633584afde20196891a 100644 --- a/apps/files_trashbin/ajax/undelete.php +++ b/apps/files_trashbin/ajax/undelete.php @@ -1,11 +1,11 @@ -t("Couldn't restore %s", array(rtrim($filelist,', '))); + $message = $l->t("Couldn't restore %s", array(rtrim($filelist, ', '))); OCP\JSON::error(array("data" => array("message" => $message, "success" => $success, "error" => $error))); } else { diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php index b1a15cd13d19b8a99e03c9404c941f9cf9b714e9..7c04e583db1515a88abdee18f1b313592baa120d 100644 --- a/apps/files_trashbin/appinfo/app.php +++ b/apps/files_trashbin/appinfo/app.php @@ -1,7 +1,7 @@ text true - 50 + 250 @@ -26,7 +26,7 @@ text true - 50 + 64 @@ -42,7 +42,7 @@ text true - 200 + 512 @@ -89,4 +89,30 @@
+ + + *dbprefix*files_trashsize + + + + + user + text + + true + 64 + + + + size + text + + true + 50 + + + + +
+ diff --git a/apps/files_trashbin/appinfo/info.xml b/apps/files_trashbin/appinfo/info.xml index 9b486126361b58fa662d35de74489f2cd13d3a95..7f807da579ea0a8013c251123650fc5636e29505 100644 --- a/apps/files_trashbin/appinfo/info.xml +++ b/apps/files_trashbin/appinfo/info.xml @@ -1,8 +1,8 @@ files_trashbin - Trash - Trash bin + Deleted files + Keep a copy of deleted files so that they can be restored if needed AGPL Bjoern Schiessle true diff --git a/apps/files_trashbin/appinfo/update.php b/apps/files_trashbin/appinfo/update.php new file mode 100644 index 0000000000000000000000000000000000000000..b0bf79cc510f4c5c22a1af8df09cb092df4f9c0a --- /dev/null +++ b/apps/files_trashbin/appinfo/update.php @@ -0,0 +1,40 @@ +getAbsolutePath($dir); $dirContent = opendir($fullpath); $i = 0; @@ -29,7 +29,7 @@ if ($dir) { $pos = strpos($dir.'/', '/', 1); $tmp = substr($dir, 0, $pos); $pos = strrpos($tmp, '.d'); - $timestamp = substr($tmp,$pos+2); + $timestamp = substr($tmp, $pos+2); $result[] = array( 'id' => $entryName, 'timestamp' => $timestamp, @@ -39,11 +39,11 @@ if ($dir) { ); } } - closedir($fullpath); - + closedir($dirContent); + } else { $dirlisting = false; - $query = \OC_DB::prepare('SELECT id,location,timestamp,type,mime FROM *PREFIX*files_trash WHERE user=?'); + $query = \OC_DB::prepare('SELECT `id`,`location`,`timestamp`,`type`,`mime` FROM `*PREFIX*files_trash` WHERE user = ?'); $result = $query->execute(array($user))->fetchAll(); } @@ -81,8 +81,8 @@ function fileCmp($a, $b) { usort($files, "fileCmp"); // Make breadcrumb -$breadcrumb = array(array('dir' => '', 'name' => 'Trash')); $pathtohere = ''; +$breadcrumb = array(); foreach (explode('/', $dir) as $i) { if ($i != '') { if ( preg_match('/^(.+)\.d[0-9]+$/', $i, $match) ) { @@ -107,6 +107,7 @@ $list->assign('disableSharing', true); $list->assign('dirlisting', $dirlisting); $list->assign('disableDownloadActions', true); $tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); +$tmpl->assign('dirlisting', $dirlisting); $tmpl->assign('fileList', $list->fetchPage(), false); $tmpl->assign('files', $files); $tmpl->assign('dir', \OC\Files\Filesystem::normalizePath($view->getAbsolutePath())); diff --git a/apps/files_trashbin/js/disableDefaultActions.js b/apps/files_trashbin/js/disableDefaultActions.js index 27c3e13db4d12d05a8c8e9796b031d72c1232247..df08bfb1a50525ad29f4428643af471dc2fcf6b2 100644 --- a/apps/files_trashbin/js/disableDefaultActions.js +++ b/apps/files_trashbin/js/disableDefaultActions.js @@ -1,4 +1,4 @@ -/* disable download and sharing actions */ -var disableDownloadActions = true; -var disableSharing = true; +/* disable download and sharing actions */ +var disableDownloadActions = true; +var disableSharing = true; var trashBinApp = true; \ No newline at end of file diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js index c3429e7a838553c9099c2c81aa8e6178a2aaa83f..9526859ad0002955835f9292882e3ca1313fe2ee 100644 --- a/apps/files_trashbin/js/trash.js +++ b/apps/files_trashbin/js/trash.js @@ -6,9 +6,10 @@ $(document).ready(function() { var tr=$('tr').filterAttr('data-file', filename); var spinner = ''; var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date"); + var files = tr.attr('data-file'); undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner; $.post(OC.filePath('files_trashbin','ajax','undelete.php'), - {files:tr.attr('data-file'), dirlisting:tr.attr('data-dirlisting') }, + {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') }, function(result){ for (var i = 0; i < result.data.success.length; i++) { var row = document.getElementById(result.data.success[i].filename); @@ -21,32 +22,33 @@ $(document).ready(function() { }); }; - + FileActions.register('all', 'Delete', OC.PERMISSION_READ, function () { return OC.imagePath('core', 'actions/delete'); }, function (filename) { $('.tipsy').remove(); - + var tr=$('tr').filterAttr('data-file', filename); var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete"); var oldHTML = deleteAction[0].outerHTML; var newHTML = ''; + var files = tr.attr('data-file'); deleteAction[0].outerHTML = newHTML; - + $.post(OC.filePath('files_trashbin','ajax','delete.php'), - {file:tr.attr('data-file') }, + {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') }, function(result){ - if ( result.status == 'success' ) { - var row = document.getElementById(result.data.filename); + for (var i = 0; i < result.data.success.length; i++) { + var row = document.getElementById(result.data.success[i].filename); row.parentNode.removeChild(row); - } else { - deleteAction[0].outerHTML = oldHTML; + } + if (result.status != 'success') { OC.dialogs.alert(result.data.message, 'Error'); } }); - + }); - + // Sets the select_all checkbox behaviour : $('#select_all').click(function() { if($(this).attr('checked')){ @@ -93,10 +95,10 @@ $(document).ready(function() { $('.undelete').click('click',function(event) { var spinner = ''; var files=getSelectedFiles('file'); - var fileslist=files.join(';'); + var fileslist = JSON.stringify(files); var dirlisting=getSelectedFiles('dirlisting')[0]; - for (var i in files) { + for (var i=0; i'; + var files=getSelectedFiles('file'); + var fileslist = JSON.stringify(files); + var dirlisting=getSelectedFiles('dirlisting')[0]; + + for (var i=0; i "اسم" +"Name" => "اسم", +"Delete" => "إلغاء" ); diff --git a/apps/files_trashbin/l10n/bg_BG.php b/apps/files_trashbin/l10n/bg_BG.php index 681c1dc5802b6701031e1398243e2eb0276d8e22..957f6a45aac5355af5fba83716adac6bfa974233 100644 --- a/apps/files_trashbin/l10n/bg_BG.php +++ b/apps/files_trashbin/l10n/bg_BG.php @@ -1,3 +1,15 @@ "Име" +"Couldn't delete %s permanently" => "Невъзможно изтриване на %s завинаги", +"Couldn't restore %s" => "Невъзможно възтановяване на %s", +"perform restore operation" => "извършване на действие по възтановяване", +"delete file permanently" => "изтриване на файла завинаги", +"Name" => "Име", +"Deleted" => "Изтрито", +"1 folder" => "1 папка", +"{count} folders" => "{count} папки", +"1 file" => "1 файл", +"{count} files" => "{count} файла", +"Nothing in here. Your trash bin is empty!" => "Няма нищо. Кофата е празна!", +"Restore" => "Възтановяване", +"Delete" => "Изтриване" ); diff --git a/apps/files_trashbin/l10n/bn_BD.php b/apps/files_trashbin/l10n/bn_BD.php index c669eff7e1fa48e713067caa9a110caa9a5c26ed..d61355c52c204f51da086053120b6fa9653cc910 100644 --- a/apps/files_trashbin/l10n/bn_BD.php +++ b/apps/files_trashbin/l10n/bn_BD.php @@ -3,5 +3,6 @@ "1 folder" => "১টি ফোল্ডার", "{count} folders" => "{count} টি ফোল্ডার", "1 file" => "১টি ফাইল", -"{count} files" => "{count} টি ফাইল" +"{count} files" => "{count} টি ফাইল", +"Delete" => "মুছে" ); diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php index 3af33c8a31013f9aae44fbd7edeef3ce247d13e8..894ed6a729d5307af31a160f85abdba8029e8b97 100644 --- a/apps/files_trashbin/l10n/ca.php +++ b/apps/files_trashbin/l10n/ca.php @@ -1,5 +1,9 @@ "No s'ha pogut esborrar permanentment %s", +"Couldn't restore %s" => "No s'ha pogut restaurar %s", "perform restore operation" => "executa l'operació de restauració", +"delete file permanently" => "esborra el fitxer permanentment", +"Delete permanently" => "Esborra permanentment", "Name" => "Nom", "Deleted" => "Eliminat", "1 folder" => "1 carpeta", @@ -7,5 +11,6 @@ "1 file" => "1 fitxer", "{count} files" => "{count} fitxers", "Nothing in here. Your trash bin is empty!" => "La paperera està buida!", -"Restore" => "Recupera" +"Restore" => "Recupera", +"Delete" => "Esborra" ); diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php index caaaea37436476582651e17660df73acb69f6252..d32af39877b590810707e6ba749efe3ebf6d004b 100644 --- a/apps/files_trashbin/l10n/cs_CZ.php +++ b/apps/files_trashbin/l10n/cs_CZ.php @@ -1,5 +1,9 @@ "Nelze trvale odstranit %s", +"Couldn't restore %s" => "Nelze obnovit %s", "perform restore operation" => "provést obnovu", +"delete file permanently" => "trvale odstranit soubor", +"Delete permanently" => "Trvale odstranit", "Name" => "Název", "Deleted" => "Smazáno", "1 folder" => "1 složka", @@ -7,5 +11,6 @@ "1 file" => "1 soubor", "{count} files" => "{count} soubory", "Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.", -"Restore" => "Obnovit" +"Restore" => "Obnovit", +"Delete" => "Smazat" ); diff --git a/apps/files_trashbin/l10n/da.php b/apps/files_trashbin/l10n/da.php index 3343b6fc8f6ee1079ebe5325e61e9349efd7d1be..ca4a2e8215d6ea2ee46925490851ccf856530646 100644 --- a/apps/files_trashbin/l10n/da.php +++ b/apps/files_trashbin/l10n/da.php @@ -1,8 +1,16 @@ "Kunne ikke slette %s permanent", +"Couldn't restore %s" => "Kunne ikke gendanne %s", +"perform restore operation" => "udfør gendannelsesoperation", +"delete file permanently" => "slet fil permanent", +"Delete permanently" => "Slet permanent", "Name" => "Navn", +"Deleted" => "Slettet", "1 folder" => "1 mappe", "{count} folders" => "{count} mapper", "1 file" => "1 fil", "{count} files" => "{count} filer", -"Restore" => "Gendan" +"Nothing in here. Your trash bin is empty!" => "Intet at se her. Din papirkurv er tom!", +"Restore" => "Gendan", +"Delete" => "Slet" ); diff --git a/apps/files_trashbin/l10n/de.php b/apps/files_trashbin/l10n/de.php index 45dfb9d6057724021fc2563eda37c1e4f94c52d9..d1952c9635a14f85485bcae6837715c75e18f668 100644 --- a/apps/files_trashbin/l10n/de.php +++ b/apps/files_trashbin/l10n/de.php @@ -1,5 +1,9 @@ "Konnte %s nicht dauerhaft löschen", +"Couldn't restore %s" => "Konnte %s nicht wiederherstellen", "perform restore operation" => "Wiederherstellung ausführen", +"delete file permanently" => "Datei dauerhaft löschen", +"Delete permanently" => "Permanent löschen", "Name" => "Name", "Deleted" => "gelöscht", "1 folder" => "1 Ordner", @@ -7,5 +11,6 @@ "1 file" => "1 Datei", "{count} files" => "{count} Dateien", "Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!", -"Restore" => "Wiederherstellen" +"Restore" => "Wiederherstellen", +"Delete" => "Löschen" ); diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php index 45e30d85a3b90a267c50fc37f2cf425b476c71d1..269680ca2c3f0ce5537998be967e2d7d8aa02e5a 100644 --- a/apps/files_trashbin/l10n/de_DE.php +++ b/apps/files_trashbin/l10n/de_DE.php @@ -1,5 +1,9 @@ "Führe die Wiederherstellung aus", +"Couldn't delete %s permanently" => "Konnte %s nicht dauerhaft löschen", +"Couldn't restore %s" => "Konnte %s nicht wiederherstellen", +"perform restore operation" => "Wiederherstellung ausführen", +"delete file permanently" => "Datei dauerhaft löschen", +"Delete permanently" => "Endgültig löschen", "Name" => "Name", "Deleted" => "Gelöscht", "1 folder" => "1 Ordner", @@ -7,5 +11,6 @@ "1 file" => "1 Datei", "{count} files" => "{count} Dateien", "Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!", -"Restore" => "Wiederherstellen" +"Restore" => "Wiederherstellen", +"Delete" => "Löschen" ); diff --git a/apps/files_trashbin/l10n/el.php b/apps/files_trashbin/l10n/el.php index 83e359890ea53d4cc68f04f83e1cb4fa78508a0a..cf9471780c09264cdac51f51f09c375859c1127b 100644 --- a/apps/files_trashbin/l10n/el.php +++ b/apps/files_trashbin/l10n/el.php @@ -1,8 +1,16 @@ "Αδύνατη η μόνιμη διαγραφή του %s", +"Couldn't restore %s" => "Αδυναμία επαναφοράς %s", +"perform restore operation" => "εκτέλεση λειτουργία επαναφοράς", +"delete file permanently" => "μόνιμη διαγραφή αρχείου", +"Delete permanently" => "Μόνιμη διαγραφή", "Name" => "Όνομα", +"Deleted" => "Διαγράφηκε", "1 folder" => "1 φάκελος", "{count} folders" => "{count} φάκελοι", "1 file" => "1 αρχείο", "{count} files" => "{count} αρχεία", -"Restore" => "Επαναφορά" +"Nothing in here. Your trash bin is empty!" => "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!", +"Restore" => "Επαναφορά", +"Delete" => "Διαγραφή" ); diff --git a/apps/files_trashbin/l10n/eo.php b/apps/files_trashbin/l10n/eo.php index f357e3c10c2cab4d9903aed0ae53573eded18e35..e1e5acbb5a80f6a9bb6b381976ba053db0a94b02 100644 --- a/apps/files_trashbin/l10n/eo.php +++ b/apps/files_trashbin/l10n/eo.php @@ -4,5 +4,6 @@ "{count} folders" => "{count} dosierujoj", "1 file" => "1 dosiero", "{count} files" => "{count} dosierujoj", -"Restore" => "Restaŭri" +"Restore" => "Restaŭri", +"Delete" => "Forigi" ); diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php index b191ffc42469f0296a53b2196358a35185a08e73..ebc01b1d21e43c702dc571212d9bba4410bbaf8f 100644 --- a/apps/files_trashbin/l10n/es.php +++ b/apps/files_trashbin/l10n/es.php @@ -1,5 +1,9 @@ "No se puede eliminar %s permanentemente", +"Couldn't restore %s" => "No se puede restaurar %s", "perform restore operation" => "Restaurar", +"delete file permanently" => "Eliminar archivo permanentemente", +"Delete permanently" => "Eliminar permanentemente", "Name" => "Nombre", "Deleted" => "Eliminado", "1 folder" => "1 carpeta", @@ -7,5 +11,6 @@ "1 file" => "1 archivo", "{count} files" => "{count} archivos", "Nothing in here. Your trash bin is empty!" => "Nada aqui. La papelera esta vacia!", -"Restore" => "Recuperar" +"Restore" => "Recuperar", +"Delete" => "Eliminar" ); diff --git a/apps/files_trashbin/l10n/es_AR.php b/apps/files_trashbin/l10n/es_AR.php index d2c5f30428443cfe6287ea5a4597d0c85e457192..bb78a39d6c33c0744fc02c5aa24ea484ae516483 100644 --- a/apps/files_trashbin/l10n/es_AR.php +++ b/apps/files_trashbin/l10n/es_AR.php @@ -1,8 +1,16 @@ "No fue posible borrar %s de manera permanente", +"Couldn't restore %s" => "No se pudo restaurar %s", +"perform restore operation" => "Restaurar", +"delete file permanently" => "Borrar archivo de manera permanente", +"Delete permanently" => "Borrar de manera permanente", "Name" => "Nombre", +"Deleted" => "Borrado", "1 folder" => "1 directorio", "{count} folders" => "{count} directorios", "1 file" => "1 archivo", "{count} files" => "{count} archivos", -"Restore" => "Recuperar" +"Nothing in here. Your trash bin is empty!" => "No hay nada acá. ¡La papelera está vacía!", +"Restore" => "Recuperar", +"Delete" => "Borrar" ); diff --git a/apps/files_trashbin/l10n/et_EE.php b/apps/files_trashbin/l10n/et_EE.php index 4f46f3880208f2f650e176974ca30125ea487cb2..73ae9dbee18023376de4214899a8f3d721136871 100644 --- a/apps/files_trashbin/l10n/et_EE.php +++ b/apps/files_trashbin/l10n/et_EE.php @@ -1,7 +1,16 @@ "%s jäädavalt kustutamine ebaõnnestus", +"Couldn't restore %s" => "%s ei saa taastada", +"perform restore operation" => "soorita taastamine", +"delete file permanently" => "kustuta fail jäädavalt", +"Delete permanently" => "Kustuta jäädavalt", "Name" => "Nimi", +"Deleted" => "Kustutatud", "1 folder" => "1 kaust", "{count} folders" => "{count} kausta", "1 file" => "1 fail", -"{count} files" => "{count} faili" +"{count} files" => "{count} faili", +"Nothing in here. Your trash bin is empty!" => "Siin pole midagi. Sinu prügikast on tühi!", +"Restore" => "Taasta", +"Delete" => "Kustuta" ); diff --git a/apps/files_trashbin/l10n/eu.php b/apps/files_trashbin/l10n/eu.php index a1e3ca53e61caba0f81cfdf037d8cf7b6e391a06..5a565436ede778f74ae895bfc139adc52900375d 100644 --- a/apps/files_trashbin/l10n/eu.php +++ b/apps/files_trashbin/l10n/eu.php @@ -1,8 +1,16 @@ "Ezin izan da %s betirako ezabatu", +"Couldn't restore %s" => "Ezin izan da %s berreskuratu", +"perform restore operation" => "berreskuratu", +"delete file permanently" => "ezabatu fitxategia betirako", +"Delete permanently" => "Ezabatu betirako", "Name" => "Izena", +"Deleted" => "Ezabatuta", "1 folder" => "karpeta bat", "{count} folders" => "{count} karpeta", "1 file" => "fitxategi bat", "{count} files" => "{count} fitxategi", -"Restore" => "Berrezarri" +"Nothing in here. Your trash bin is empty!" => "Ez dago ezer ez. Zure zakarrontzia hutsik dago!", +"Restore" => "Berrezarri", +"Delete" => "Ezabatu" ); diff --git a/apps/files_trashbin/l10n/fa.php b/apps/files_trashbin/l10n/fa.php index 487d1657985c4b0e318e5cacb699a8fb8cc85d60..7cc695215e617500373d1d7e3b400de72c580bd3 100644 --- a/apps/files_trashbin/l10n/fa.php +++ b/apps/files_trashbin/l10n/fa.php @@ -4,5 +4,6 @@ "{count} folders" => "{ شمار} پوشه ها", "1 file" => "1 پرونده", "{count} files" => "{ شمار } فایل ها", -"Restore" => "بازیابی" +"Restore" => "بازیابی", +"Delete" => "حذف" ); diff --git a/apps/files_trashbin/l10n/fi_FI.php b/apps/files_trashbin/l10n/fi_FI.php index de25027f9a8737d27117440bf327dfd576da14d8..e18689956d08e11b9d4a8d19049444bed59a176a 100644 --- a/apps/files_trashbin/l10n/fi_FI.php +++ b/apps/files_trashbin/l10n/fi_FI.php @@ -1,5 +1,9 @@ "Kohdetta %s ei voitu poistaa pysyvästi", +"Couldn't restore %s" => "Kohteen %s palautus epäonnistui", "perform restore operation" => "suorita palautustoiminto", +"delete file permanently" => "poista tiedosto pysyvästi", +"Delete permanently" => "Poista pysyvästi", "Name" => "Nimi", "Deleted" => "Poistettu", "1 folder" => "1 kansio", @@ -7,5 +11,6 @@ "1 file" => "1 tiedosto", "{count} files" => "{count} tiedostoa", "Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.", -"Restore" => "Palauta" +"Restore" => "Palauta", +"Delete" => "Poista" ); diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php index 51ade82d90833b85f5fff56a2e4d35b403eb8b87..0a783785efb5354687c58a73a59dad3198581173 100644 --- a/apps/files_trashbin/l10n/fr.php +++ b/apps/files_trashbin/l10n/fr.php @@ -1,5 +1,9 @@ "Impossible d'effacer %s de façon permanente", +"Couldn't restore %s" => "Impossible de restaurer %s", "perform restore operation" => "effectuer l'opération de restauration", +"delete file permanently" => "effacer définitivement le fichier", +"Delete permanently" => "Supprimer de façon définitive", "Name" => "Nom", "Deleted" => "Effacé", "1 folder" => "1 dossier", @@ -7,5 +11,6 @@ "1 file" => "1 fichier", "{count} files" => "{count} fichiers", "Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !", -"Restore" => "Restaurer" +"Restore" => "Restaurer", +"Delete" => "Supprimer" ); diff --git a/apps/files_trashbin/l10n/gl.php b/apps/files_trashbin/l10n/gl.php index bdc3187b20b59f246f86441857f186650a47d687..4e31dd0018a2cdc5a3e07a54ac29902bfd0ed79f 100644 --- a/apps/files_trashbin/l10n/gl.php +++ b/apps/files_trashbin/l10n/gl.php @@ -1,8 +1,16 @@ "Non foi posíbel eliminar %s permanente", +"Couldn't restore %s" => "Non foi posíbel restaurar %s", +"perform restore operation" => "realizar a operación de restauración", +"delete file permanently" => "eliminar o ficheiro permanentemente", +"Delete permanently" => "Eliminar permanentemente", "Name" => "Nome", +"Deleted" => "Eliminado", "1 folder" => "1 cartafol", "{count} folders" => "{count} cartafoles", "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", -"Restore" => "Restablecer" +"Nothing in here. Your trash bin is empty!" => "Aquí non hai nada. O cesto do lixo está baleiro!", +"Restore" => "Restablecer", +"Delete" => "Eliminar" ); diff --git a/apps/files_trashbin/l10n/he.php b/apps/files_trashbin/l10n/he.php index d026add5d750ff13ad4f2a8b5aac10685c1ffde0..9c767d2222c818a39039bf5a13a07c29d322e059 100644 --- a/apps/files_trashbin/l10n/he.php +++ b/apps/files_trashbin/l10n/he.php @@ -1,7 +1,16 @@ "בלתי אפשרי למחוק את %s לצמיתות", +"Couldn't restore %s" => "בלתי אפשרי לשחזר את %s", +"perform restore operation" => "בצע פעולת שחזור", +"delete file permanently" => "מחק קובץ לצמיתות", +"Delete permanently" => "מחק לצמיתות", "Name" => "שם", +"Deleted" => "נמחק", "1 folder" => "תיקייה אחת", "{count} folders" => "{count} תיקיות", "1 file" => "קובץ אחד", -"{count} files" => "{count} קבצים" +"{count} files" => "{count} קבצים", +"Nothing in here. Your trash bin is empty!" => "שום דבר כאן. סל המחזור שלך ריק!", +"Restore" => "שחזר", +"Delete" => "מחיקה" ); diff --git a/apps/files_trashbin/l10n/hr.php b/apps/files_trashbin/l10n/hr.php index 52255c7429a1ec582c450b8525f4109a2ca28a46..2cb86adfd405423190d97c24b545ae11bc04795f 100644 --- a/apps/files_trashbin/l10n/hr.php +++ b/apps/files_trashbin/l10n/hr.php @@ -1,3 +1,4 @@ "Ime" +"Name" => "Ime", +"Delete" => "Obriši" ); diff --git a/apps/files_trashbin/l10n/hu_HU.php b/apps/files_trashbin/l10n/hu_HU.php index c4e2b5e21250737005edb4ade3aaf0f2946ed8c8..9c158c2b9ecae46bf74d3039f7eaccd4a468458f 100644 --- a/apps/files_trashbin/l10n/hu_HU.php +++ b/apps/files_trashbin/l10n/hu_HU.php @@ -1,8 +1,16 @@ "Nem sikerült %s végleges törlése", +"Couldn't restore %s" => "Nem sikerült %s visszaállítása", +"perform restore operation" => "a visszaállítás végrehajtása", +"delete file permanently" => "az állomány végleges törlése", +"Delete permanently" => "Végleges törlés", "Name" => "Név", +"Deleted" => "Törölve", "1 folder" => "1 mappa", "{count} folders" => "{count} mappa", "1 file" => "1 fájl", "{count} files" => "{count} fájl", -"Restore" => "Visszaállítás" +"Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!", +"Restore" => "Visszaállítás", +"Delete" => "Törlés" ); diff --git a/apps/files_trashbin/l10n/hy.php b/apps/files_trashbin/l10n/hy.php new file mode 100644 index 0000000000000000000000000000000000000000..3b80487278a16a8f1f7b407908ea855f3f5def10 --- /dev/null +++ b/apps/files_trashbin/l10n/hy.php @@ -0,0 +1,3 @@ + "Ջնջել" +); diff --git a/apps/files_trashbin/l10n/ia.php b/apps/files_trashbin/l10n/ia.php index c2581f3de179c68b450cc8c311ef8d9a63a8c4c4..0a51752312f37a994aeda4b736d693241143e46a 100644 --- a/apps/files_trashbin/l10n/ia.php +++ b/apps/files_trashbin/l10n/ia.php @@ -1,3 +1,4 @@ "Nomine" +"Name" => "Nomine", +"Delete" => "Deler" ); diff --git a/apps/files_trashbin/l10n/id.php b/apps/files_trashbin/l10n/id.php index 1a14d8b7c21bc7ace660c443bcd4ef7ce202a049..ab5fe25ac6b2ab270c59f328bd464ed148c2e0a0 100644 --- a/apps/files_trashbin/l10n/id.php +++ b/apps/files_trashbin/l10n/id.php @@ -1,3 +1,15 @@ "nama" +"Couldn't delete %s permanently" => "Tidak dapat menghapus permanen %s", +"Couldn't restore %s" => "Tidak dapat memulihkan %s", +"perform restore operation" => "jalankan operasi pemulihan", +"delete file permanently" => "hapus berkas secara permanen", +"Name" => "Nama", +"Deleted" => "Dihapus", +"1 folder" => "1 map", +"{count} folders" => "{count} map", +"1 file" => "1 berkas", +"{count} files" => "{count} berkas", +"Nothing in here. Your trash bin is empty!" => "Tempat sampah anda kosong!", +"Restore" => "Pulihkan", +"Delete" => "Hapus" ); diff --git a/apps/files_trashbin/l10n/is.php b/apps/files_trashbin/l10n/is.php index 416f641a8efa412078713cdc94d520d91b094096..fba36c91cb53b0184573d9df6884f5ee933ea71f 100644 --- a/apps/files_trashbin/l10n/is.php +++ b/apps/files_trashbin/l10n/is.php @@ -3,5 +3,6 @@ "1 folder" => "1 mappa", "{count} folders" => "{count} möppur", "1 file" => "1 skrá", -"{count} files" => "{count} skrár" +"{count} files" => "{count} skrár", +"Delete" => "Eyða" ); diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php index 7def431a42a3fc5b10f380a131505438e2a40798..027b22c91ac0baa0a5f7529007c00bf6f3e45289 100644 --- a/apps/files_trashbin/l10n/it.php +++ b/apps/files_trashbin/l10n/it.php @@ -1,5 +1,9 @@ "Impossibile eliminare %s definitivamente", +"Couldn't restore %s" => "Impossibile ripristinare %s", "perform restore operation" => "esegui operazione di ripristino", +"delete file permanently" => "elimina il file definitivamente", +"Delete permanently" => "Elimina definitivamente", "Name" => "Nome", "Deleted" => "Eliminati", "1 folder" => "1 cartella", @@ -7,5 +11,6 @@ "1 file" => "1 file", "{count} files" => "{count} file", "Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.", -"Restore" => "Ripristina" +"Restore" => "Ripristina", +"Delete" => "Elimina" ); diff --git a/apps/files_trashbin/l10n/ja_JP.php b/apps/files_trashbin/l10n/ja_JP.php index 0b4e1954e7426c26b597861f835bce6c56484f82..478aa400664677d1d898dfb78ea24db5800b7a0b 100644 --- a/apps/files_trashbin/l10n/ja_JP.php +++ b/apps/files_trashbin/l10n/ja_JP.php @@ -1,5 +1,9 @@ "%s を完全に削除出来ませんでした", +"Couldn't restore %s" => "%s を復元出来ませんでした", "perform restore operation" => "復元操作を実行する", +"delete file permanently" => "ファイルを完全に削除する", +"Delete permanently" => "完全に削除する", "Name" => "名前", "Deleted" => "削除済み", "1 folder" => "1 フォルダ", @@ -7,5 +11,6 @@ "1 file" => "1 ファイル", "{count} files" => "{count} ファイル", "Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!", -"Restore" => "復元" +"Restore" => "復元", +"Delete" => "削除" ); diff --git a/apps/files_trashbin/l10n/ka_GE.php b/apps/files_trashbin/l10n/ka_GE.php index 43dba38f5c747886010870f70d5b4da53b089b0e..05068767863df0a674b962cc1b8fab5db515a332 100644 --- a/apps/files_trashbin/l10n/ka_GE.php +++ b/apps/files_trashbin/l10n/ka_GE.php @@ -3,5 +3,6 @@ "1 folder" => "1 საქაღალდე", "{count} folders" => "{count} საქაღალდე", "1 file" => "1 ფაილი", -"{count} files" => "{count} ფაილი" +"{count} files" => "{count} ფაილი", +"Delete" => "წაშლა" ); diff --git a/apps/files_trashbin/l10n/ko.php b/apps/files_trashbin/l10n/ko.php index 61acd1276a75999d99c223e4e462fb21c400c700..b40546e34b8365be4d055b17493e79935800c29f 100644 --- a/apps/files_trashbin/l10n/ko.php +++ b/apps/files_trashbin/l10n/ko.php @@ -4,5 +4,6 @@ "{count} folders" => "폴더 {count}개", "1 file" => "파일 1개", "{count} files" => "파일 {count}개", -"Restore" => "복원" +"Restore" => "복원", +"Delete" => "삭제" ); diff --git a/apps/files_trashbin/l10n/lb.php b/apps/files_trashbin/l10n/lb.php index d1bd7518663b72a34e7039db3f25774ae07736a1..01deea2350037c96bc26ede0753a6124fb31876e 100644 --- a/apps/files_trashbin/l10n/lb.php +++ b/apps/files_trashbin/l10n/lb.php @@ -1,3 +1,4 @@ "Numm" +"Name" => "Numm", +"Delete" => "Läschen" ); diff --git a/apps/files_trashbin/l10n/lt_LT.php b/apps/files_trashbin/l10n/lt_LT.php index 4933e97202fcb949961159eebd6f8524a7d2bcae..513c7626c4e75f4dcae8d5f5428463c4e80b4b35 100644 --- a/apps/files_trashbin/l10n/lt_LT.php +++ b/apps/files_trashbin/l10n/lt_LT.php @@ -3,5 +3,6 @@ "1 folder" => "1 aplankalas", "{count} folders" => "{count} aplankalai", "1 file" => "1 failas", -"{count} files" => "{count} failai" +"{count} files" => "{count} failai", +"Delete" => "Ištrinti" ); diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php index 017a8d285c04bfeb0cf7a6cae0799c2372620f87..d3c68e2a778ee342aae530370a0b61004cda85bf 100644 --- a/apps/files_trashbin/l10n/lv.php +++ b/apps/files_trashbin/l10n/lv.php @@ -1,5 +1,9 @@ "Nevarēja pilnībā izdzēst %s", +"Couldn't restore %s" => "Nevarēja atjaunot %s", "perform restore operation" => "veikt atjaunošanu", +"delete file permanently" => "dzēst datni pavisam", +"Delete permanently" => "Dzēst pavisam", "Name" => "Nosaukums", "Deleted" => "Dzēsts", "1 folder" => "1 mape", @@ -7,5 +11,6 @@ "1 file" => "1 datne", "{count} files" => "{count} datnes", "Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!", -"Restore" => "Atjaunot" +"Restore" => "Atjaunot", +"Delete" => "Dzēst" ); diff --git a/apps/files_trashbin/l10n/mk.php b/apps/files_trashbin/l10n/mk.php index b983c341e8cba6a6d2e57508e46de4110cd99c44..22b288b002f6e9476b9f2b4594dc4ac9d49e6069 100644 --- a/apps/files_trashbin/l10n/mk.php +++ b/apps/files_trashbin/l10n/mk.php @@ -3,5 +3,6 @@ "1 folder" => "1 папка", "{count} folders" => "{count} папки", "1 file" => "1 датотека", -"{count} files" => "{count} датотеки" +"{count} files" => "{count} датотеки", +"Delete" => "Избриши" ); diff --git a/apps/files_trashbin/l10n/ms_MY.php b/apps/files_trashbin/l10n/ms_MY.php index 73e97b496e4d4773b13a1f676a100568d3e39dd4..381d599865ee81c0bb00ea74a894fb57f3233823 100644 --- a/apps/files_trashbin/l10n/ms_MY.php +++ b/apps/files_trashbin/l10n/ms_MY.php @@ -1,3 +1,4 @@ "Nama" +"Name" => "Nama", +"Delete" => "Padam" ); diff --git a/apps/files_trashbin/l10n/nb_NO.php b/apps/files_trashbin/l10n/nb_NO.php index 49364753d13a8179652a8d52e955b078dcfe7f9b..dc7b8fe97c5a0fa0968ff8af45a2169130fdffec 100644 --- a/apps/files_trashbin/l10n/nb_NO.php +++ b/apps/files_trashbin/l10n/nb_NO.php @@ -3,5 +3,6 @@ "1 folder" => "1 mappe", "{count} folders" => "{count} mapper", "1 file" => "1 fil", -"{count} files" => "{count} filer" +"{count} files" => "{count} filer", +"Delete" => "Slett" ); diff --git a/apps/files_trashbin/l10n/nl.php b/apps/files_trashbin/l10n/nl.php index 4efa6ecf662274d4b97e6b5bd318066862b9ac49..c576e5d81f8cc19b69fcc01463dc3b76f9954a33 100644 --- a/apps/files_trashbin/l10n/nl.php +++ b/apps/files_trashbin/l10n/nl.php @@ -1,5 +1,9 @@ "Kon %s niet permanent verwijderen", +"Couldn't restore %s" => "Kon %s niet herstellen", "perform restore operation" => "uitvoeren restore operatie", +"delete file permanently" => "verwijder bestanden definitief", +"Delete permanently" => "Verwijder definitief", "Name" => "Naam", "Deleted" => "Verwijderd", "1 folder" => "1 map", @@ -7,5 +11,6 @@ "1 file" => "1 bestand", "{count} files" => "{count} bestanden", "Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!", -"Restore" => "Herstellen" +"Restore" => "Herstellen", +"Delete" => "Verwijder" ); diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php index be60dabdf01029e0c4a5cbe92a850ccd558ecdd8..f8ab465ee42d5837bf5e2056ee07254860942f26 100644 --- a/apps/files_trashbin/l10n/nn_NO.php +++ b/apps/files_trashbin/l10n/nn_NO.php @@ -1,3 +1,4 @@ "Namn" +"Name" => "Namn", +"Delete" => "Slett" ); diff --git a/apps/files_trashbin/l10n/oc.php b/apps/files_trashbin/l10n/oc.php index 2c705193c15d437b161b764f4c83780d9b102312..e6b939dac0c3565332ac03c58d7bdec703ed1798 100644 --- a/apps/files_trashbin/l10n/oc.php +++ b/apps/files_trashbin/l10n/oc.php @@ -1,3 +1,4 @@ "Nom" +"Name" => "Nom", +"Delete" => "Escafa" ); diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php index d2ada4c9466f157976bfeb9ab77027601f96f251..e5ea45b88aeee81c6601b0867100caedc733f444 100644 --- a/apps/files_trashbin/l10n/pl.php +++ b/apps/files_trashbin/l10n/pl.php @@ -1,8 +1,16 @@ "Nie można trwale usunąć %s", +"Couldn't restore %s" => "Nie można przywrócić %s", +"perform restore operation" => "wykonywanie operacji przywracania", +"delete file permanently" => "trwale usuń plik", +"Delete permanently" => "Trwale usuń", "Name" => "Nazwa", +"Deleted" => "Usunięte", "1 folder" => "1 folder", "{count} folders" => "{count} foldery", "1 file" => "1 plik", "{count} files" => "{count} pliki", -"Restore" => "Przywróć" +"Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!", +"Restore" => "Przywróć", +"Delete" => "Usuń" ); diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php index db5737d92381d5bff71fcf80f4b89fda05be38e8..b9932a71023f7a344a385e5e23a162edc15b0ce9 100644 --- a/apps/files_trashbin/l10n/pt_BR.php +++ b/apps/files_trashbin/l10n/pt_BR.php @@ -1,5 +1,9 @@ "Não foi possível excluir %s permanentemente", +"Couldn't restore %s" => "Não foi possível restaurar %s", "perform restore operation" => "realizar operação de restauração", +"delete file permanently" => "excluir arquivo permanentemente", +"Delete permanently" => "Excluir permanentemente", "Name" => "Nome", "Deleted" => "Excluído", "1 folder" => "1 pasta", @@ -7,5 +11,6 @@ "1 file" => "1 arquivo", "{count} files" => "{count} arquivos", "Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!", -"Restore" => "Restaurar" +"Restore" => "Restaurar", +"Delete" => "Excluir" ); diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php index 79930315b0eb9bca9ed9484494bc5ba713d701e3..a621587ea0bb0ef94690a7fe96bbc441a1edaad5 100644 --- a/apps/files_trashbin/l10n/pt_PT.php +++ b/apps/files_trashbin/l10n/pt_PT.php @@ -1,5 +1,9 @@ "Não foi possível eliminar %s de forma permanente", +"Couldn't restore %s" => "Não foi possível restaurar %s", "perform restore operation" => "Restaurar", +"delete file permanently" => "Eliminar permanentemente o(s) ficheiro(s)", +"Delete permanently" => "Eliminar permanentemente", "Name" => "Nome", "Deleted" => "Apagado", "1 folder" => "1 pasta", @@ -7,5 +11,6 @@ "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", "Nothing in here. Your trash bin is empty!" => "Não ha ficheiros. O lixo está vazio", -"Restore" => "Restaurar" +"Restore" => "Restaurar", +"Delete" => "Apagar" ); diff --git a/apps/files_trashbin/l10n/ro.php b/apps/files_trashbin/l10n/ro.php index 6ece51e02cfd9e7673bb489e04cd2f67ca609540..6a919b62dfbb8a80edaff20fd98af6ac62aee07c 100644 --- a/apps/files_trashbin/l10n/ro.php +++ b/apps/files_trashbin/l10n/ro.php @@ -3,5 +3,6 @@ "1 folder" => "1 folder", "{count} folders" => "{count} foldare", "1 file" => "1 fisier", -"{count} files" => "{count} fisiere" +"{count} files" => "{count} fisiere", +"Delete" => "Șterge" ); diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php index 23d739a2ff75c6ebcaeb42e3a30ddc2589693af1..4cf9af1fc39f731232d3831902556a69819e26e1 100644 --- a/apps/files_trashbin/l10n/ru.php +++ b/apps/files_trashbin/l10n/ru.php @@ -1,7 +1,16 @@ "%s не может быть удалён навсегда", +"Couldn't restore %s" => "%s не может быть восстановлен", +"perform restore operation" => "выполнить операцию восстановления", +"delete file permanently" => "удалить файл навсегда", +"Delete permanently" => "Удалено навсегда", "Name" => "Имя", +"Deleted" => "Удалён", "1 folder" => "1 папка", "{count} folders" => "{count} папок", "1 file" => "1 файл", -"{count} files" => "{count} файлов" +"{count} files" => "{count} файлов", +"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!", +"Restore" => "Восстановить", +"Delete" => "Удалить" ); diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php index 8ef2658cf2435413d33b0258e06430cfab40e8e7..04a899bdd5dfb6b2a0945b1198164b17079ce3f4 100644 --- a/apps/files_trashbin/l10n/ru_RU.php +++ b/apps/files_trashbin/l10n/ru_RU.php @@ -1,7 +1,16 @@ "%s не может быть удалён навсегда", +"Couldn't restore %s" => "%s не может быть восстановлен", +"perform restore operation" => "выполнить операцию восстановления", +"delete file permanently" => "удалить файл навсегда", +"Delete permanently" => "Удалить навсегда", "Name" => "Имя", +"Deleted" => "Удалён", "1 folder" => "1 папка", "{count} folders" => "{количество} папок", "1 file" => "1 файл", -"{count} files" => "{количество} файлов" +"{count} files" => "{количество} файлов", +"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!", +"Restore" => "Восстановить", +"Delete" => "Удалить" ); diff --git a/apps/files_trashbin/l10n/si_LK.php b/apps/files_trashbin/l10n/si_LK.php index cb351afaec94b3d90407a2263c3e4387d8199fbf..71c5632977654828af903c662fb900a122fd0cd3 100644 --- a/apps/files_trashbin/l10n/si_LK.php +++ b/apps/files_trashbin/l10n/si_LK.php @@ -1,5 +1,6 @@ "නම", "1 folder" => "1 ෆොල්ඩරයක්", -"1 file" => "1 ගොනුවක්" +"1 file" => "1 ගොනුවක්", +"Delete" => "මකා දමන්න" ); diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php index 81d43614d7be45840ba386ee67f9d7111918a524..c5806a5dee8da3063108527bd54c971ca245a327 100644 --- a/apps/files_trashbin/l10n/sk_SK.php +++ b/apps/files_trashbin/l10n/sk_SK.php @@ -1,5 +1,9 @@ "Nemožno zmazať %s navždy", +"Couldn't restore %s" => "Nemožno obnoviť %s", "perform restore operation" => "vykonať obnovu", +"delete file permanently" => "trvalo zmazať súbor", +"Delete permanently" => "Zmazať trvalo", "Name" => "Meno", "Deleted" => "Zmazané", "1 folder" => "1 priečinok", @@ -7,5 +11,6 @@ "1 file" => "1 súbor", "{count} files" => "{count} súborov", "Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!", -"Restore" => "Obnoviť" +"Restore" => "Obnoviť", +"Delete" => "Zmazať" ); diff --git a/apps/files_trashbin/l10n/sl.php b/apps/files_trashbin/l10n/sl.php index 2579f95c86202115c13dc78cfeb15316585c8600..4765945747de1efdac7463745a662382e1c126c5 100644 --- a/apps/files_trashbin/l10n/sl.php +++ b/apps/files_trashbin/l10n/sl.php @@ -3,5 +3,6 @@ "1 folder" => "1 mapa", "{count} folders" => "{count} map", "1 file" => "1 datoteka", -"{count} files" => "{count} datotek" +"{count} files" => "{count} datotek", +"Delete" => "Izbriši" ); diff --git a/apps/files_trashbin/l10n/sr.php b/apps/files_trashbin/l10n/sr.php index 36659e7080314690a3e7589bcbdcd614038512fc..2e7c139e389ef544ae1d67c0ef41ce9d01801a78 100644 --- a/apps/files_trashbin/l10n/sr.php +++ b/apps/files_trashbin/l10n/sr.php @@ -7,5 +7,6 @@ "1 file" => "1 датотека", "{count} files" => "{count} датотеке/а", "Nothing in here. Your trash bin is empty!" => "Овде нема ништа. Корпа за отпатке је празна.", -"Restore" => "Врати" +"Restore" => "Врати", +"Delete" => "Обриши" ); diff --git a/apps/files_trashbin/l10n/sr@latin.php b/apps/files_trashbin/l10n/sr@latin.php index 52255c7429a1ec582c450b8525f4109a2ca28a46..2cb86adfd405423190d97c24b545ae11bc04795f 100644 --- a/apps/files_trashbin/l10n/sr@latin.php +++ b/apps/files_trashbin/l10n/sr@latin.php @@ -1,3 +1,4 @@ "Ime" +"Name" => "Ime", +"Delete" => "Obriši" ); diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php index 5bde85e7056c0ca62647f39eda2140e5a5f0cbe4..6f8c2365818a0abcdaf820db7d317730921685fd 100644 --- a/apps/files_trashbin/l10n/sv.php +++ b/apps/files_trashbin/l10n/sv.php @@ -1,5 +1,9 @@ "Kunde inte radera %s permanent", +"Couldn't restore %s" => "Kunde inte återställa %s", "perform restore operation" => "utför återställning", +"delete file permanently" => "radera filen permanent", +"Delete permanently" => "Radera permanent", "Name" => "Namn", "Deleted" => "Raderad", "1 folder" => "1 mapp", @@ -7,5 +11,6 @@ "1 file" => "1 fil", "{count} files" => "{count} filer", "Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!", -"Restore" => "Återskapa" +"Restore" => "Återskapa", +"Delete" => "Radera" ); diff --git a/apps/files_trashbin/l10n/ta_LK.php b/apps/files_trashbin/l10n/ta_LK.php index a436e2344a4fd0b5fb18b88e570cc04b9c09770f..f21e5fc750de22b2f683f7fa128535f698fdfa17 100644 --- a/apps/files_trashbin/l10n/ta_LK.php +++ b/apps/files_trashbin/l10n/ta_LK.php @@ -3,5 +3,6 @@ "1 folder" => "1 கோப்புறை", "{count} folders" => "{எண்ணிக்கை} கோப்புறைகள்", "1 file" => "1 கோப்பு", -"{count} files" => "{எண்ணிக்கை} கோப்புகள்" +"{count} files" => "{எண்ணிக்கை} கோப்புகள்", +"Delete" => "நீக்குக" ); diff --git a/apps/files_trashbin/l10n/th_TH.php b/apps/files_trashbin/l10n/th_TH.php index 8a031fb0d70dce9434a3a316843ab9682701ed66..3f5d44c763e819c6d4a2bebff5a63e88543a1482 100644 --- a/apps/files_trashbin/l10n/th_TH.php +++ b/apps/files_trashbin/l10n/th_TH.php @@ -7,5 +7,6 @@ "1 file" => "1 ไฟล์", "{count} files" => "{count} ไฟล์", "Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่", -"Restore" => "คืนค่า" +"Restore" => "คืนค่า", +"Delete" => "ลบ" ); diff --git a/apps/files_trashbin/l10n/tr.php b/apps/files_trashbin/l10n/tr.php index 5b7064eceaf14f388ebadc3c3f5f0bf59383c965..c874d73316a22fd085e320944a10c91e73413662 100644 --- a/apps/files_trashbin/l10n/tr.php +++ b/apps/files_trashbin/l10n/tr.php @@ -1,7 +1,16 @@ "%s Kalıcı olarak silinemedi", +"Couldn't restore %s" => "%s Geri yüklenemedi", +"perform restore operation" => "Geri yükleme işlemini gerçekleştir", +"delete file permanently" => "Dosyayı kalıcı olarak sil", +"Delete permanently" => "Kalıcı olarak sil", "Name" => "İsim", +"Deleted" => "Silindi", "1 folder" => "1 dizin", "{count} folders" => "{count} dizin", "1 file" => "1 dosya", -"{count} files" => "{count} dosya" +"{count} files" => "{count} dosya", +"Nothing in here. Your trash bin is empty!" => "Burası boş. Çöp kutun tamamen boş.", +"Restore" => "Geri yükle", +"Delete" => "Sil" ); diff --git a/apps/files_trashbin/l10n/uk.php b/apps/files_trashbin/l10n/uk.php index 14c6931255a8550ea5fe7de0623d6ae7b7d030a6..df7dd24864c5d945e4c202f1178d006d418a61f7 100644 --- a/apps/files_trashbin/l10n/uk.php +++ b/apps/files_trashbin/l10n/uk.php @@ -1,7 +1,16 @@ "Неможливо видалити %s назавжди", +"Couldn't restore %s" => "Неможливо відновити %s", +"perform restore operation" => "виконати операцію відновлення", +"delete file permanently" => "видалити файл назавжди", +"Delete permanently" => "Видалити назавжди", "Name" => "Ім'я", +"Deleted" => "Видалено", "1 folder" => "1 папка", "{count} folders" => "{count} папок", "1 file" => "1 файл", -"{count} files" => "{count} файлів" +"{count} files" => "{count} файлів", +"Nothing in here. Your trash bin is empty!" => "Нічого немає. Ваший кошик для сміття пустий!", +"Restore" => "Відновити", +"Delete" => "Видалити" ); diff --git a/apps/files_trashbin/l10n/vi.php b/apps/files_trashbin/l10n/vi.php index 2c51c69aaf25944967175e07a4c113677e012a6f..165fa9cfd9497bc0af710679602d84cc2db9ab3a 100644 --- a/apps/files_trashbin/l10n/vi.php +++ b/apps/files_trashbin/l10n/vi.php @@ -1,7 +1,16 @@ "Không thể óa %s vĩnh viễn", +"Couldn't restore %s" => "Không thể khôi phục %s", +"perform restore operation" => "thực hiện phục hồi", +"delete file permanently" => "xóa file vĩnh viễn", +"Delete permanently" => "Xóa vĩnh vễn", "Name" => "Tên", +"Deleted" => "Đã xóa", "1 folder" => "1 thư mục", "{count} folders" => "{count} thư mục", "1 file" => "1 tập tin", -"{count} files" => "{count} tập tin" +"{count} files" => "{count} tập tin", +"Nothing in here. Your trash bin is empty!" => "Không có gì ở đây. Thùng rác của bạn rỗng!", +"Restore" => "Khôi phục", +"Delete" => "Xóa" ); diff --git a/apps/files_trashbin/l10n/zh_CN.GB2312.php b/apps/files_trashbin/l10n/zh_CN.GB2312.php index 2c6a7891e98078c2fd8c4356c8b16e9b1ced6bdd..606d80d441b0cb130b1758bb44b042004d4c75af 100644 --- a/apps/files_trashbin/l10n/zh_CN.GB2312.php +++ b/apps/files_trashbin/l10n/zh_CN.GB2312.php @@ -3,5 +3,6 @@ "1 folder" => "1 个文件夹", "{count} folders" => "{count} 个文件夹", "1 file" => "1 个文件", -"{count} files" => "{count} 个文件" +"{count} files" => "{count} 个文件", +"Delete" => "删除" ); diff --git a/apps/files_trashbin/l10n/zh_CN.php b/apps/files_trashbin/l10n/zh_CN.php index 0060b1f31d63884502ca5f28fdb28ba7d27f841b..327a3e247079f4db06c3e201dad4bc12172ae30f 100644 --- a/apps/files_trashbin/l10n/zh_CN.php +++ b/apps/files_trashbin/l10n/zh_CN.php @@ -3,5 +3,6 @@ "1 folder" => "1个文件夹", "{count} folders" => "{count} 个文件夹", "1 file" => "1 个文件", -"{count} files" => "{count} 个文件" +"{count} files" => "{count} 个文件", +"Delete" => "删除" ); diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php index be61d9b0b6db63d1999d11cfe1ab32fa5c8e6ee1..0142e901f5848d62514438bb2b5409b5691cae18 100644 --- a/apps/files_trashbin/l10n/zh_TW.php +++ b/apps/files_trashbin/l10n/zh_TW.php @@ -1,7 +1,9 @@ "永久刪除", "Name" => "名稱", "1 folder" => "1 個資料夾", "{count} folders" => "{count} 個資料夾", "1 file" => "1 個檔案", -"{count} files" => "{count} 個檔案" +"{count} files" => "{count} 個檔案", +"Delete" => "刪除" ); diff --git a/apps/files_trashbin/lib/hooks.php b/apps/files_trashbin/lib/hooks.php index d6a62d447b88a580c0ba3d21c6464426b3f8e53b..9081706a2c56defdf26eb609a4f89ff8d2606b0b 100644 --- a/apps/files_trashbin/lib/hooks.php +++ b/apps/files_trashbin/lib/hooks.php @@ -1,23 +1,23 @@ . - * +/** + * ownCloud - trash bin + * + * @author Bjoern Schiessle + * @copyright 2013 Bjoern Schiessle schiessle@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see . + * */ /** @@ -36,7 +36,7 @@ class Hooks { * to copy the file to the trash bin */ public static function remove_hook($params) { - + if ( \OCP\App::isEnabled('files_trashbin') ) { $path = $params['path']; Trashbin::move2trash($path); diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index abc7fbb738382a4bb041209da7442839edc0f982..f0cfa496832c469485affdd7cedb435b7e9ba079 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -23,19 +23,25 @@ namespace OCA\Files_Trashbin; class Trashbin { - - const DEFAULT_RETENTION_OBLIGATION=180; // how long do we keep files in the trash bin if no other value is defined in the config file (unit: days) + // how long do we keep files in the trash bin if no other value is defined in the config file (unit: days) + const DEFAULT_RETENTION_OBLIGATION=180; + + // unit: percentage; 50% of available disk space/quota + const DEFAULTMAXSIZE=50; + /** * move file to the trash bin - * - * @param string $file_path path to the deleted file/directory relative to the files root directory + * + * @param $file_path path to the deleted file/directory relative to the files root directory */ public static function move2trash($file_path) { $user = \OCP\User::getUser(); $view = new \OC\Files\View('/'. $user); if (!$view->is_dir('files_trashbin')) { $view->mkdir('files_trashbin'); - $view->mkdir("versions_trashbin"); + $view->mkdir("files_trashbin/files"); + $view->mkdir("files_trashbin/versions"); + $view->mkdir("files_trashbin/keyfiles"); } $path_parts = pathinfo($file_path); @@ -50,117 +56,202 @@ class Trashbin { } else { $type = 'file'; } - - self::copy_recursive($file_path, 'files_trashbin/'.$deleted.'.d'.$timestamp, $view); - if ( $view->file_exists('files_trashbin/'.$deleted.'.d'.$timestamp) ) { + $trashbinSize = self::getTrashbinSize($user); + if ( $trashbinSize === false || $trashbinSize < 0 ) { + $trashbinSize = self::calculateSize(new \OC\Files\View('/'. $user.'/files_trashbin')); + } + $trashbinSize += self::copy_recursive($file_path, 'files_trashbin/files/'.$deleted.'.d'.$timestamp, $view); + + if ( $view->file_exists('files_trashbin/files/'.$deleted.'.d'.$timestamp) ) { $query = \OC_DB::prepare("INSERT INTO *PREFIX*files_trash (id,timestamp,location,type,mime,user) VALUES (?,?,?,?,?,?)"); $result = $query->execute(array($deleted, $timestamp, $location, $type, $mime, $user)); if ( !$result ) { // if file couldn't be added to the database than also don't store it in the trash bin. - $view->deleteAll('files_trashbin/'.$deleted.'.d'.$timestamp); + $view->deleteAll('files_trashbin/files/'.$deleted.'.d'.$timestamp); \OC_Log::write('files_trashbin', 'trash bin database couldn\'t be updated', \OC_log::ERROR); return; } - + + // Take care of file versions if ( \OCP\App::isEnabled('files_versions') ) { if ( $view->is_dir('files_versions'.$file_path) ) { - $view->rename('files_versions'.$file_path, 'versions_trashbin/'. $deleted.'.d'.$timestamp); - } else if ( $versions = \OCA\Files_Versions\Storage::getVersions($file_path) ) { + $trashbinSize += self::calculateSize(new \OC\Files\View('/'. $user.'/files_versions/'.$file_path)); + $view->rename('files_versions'.$file_path, 'files_trashbin/versions'. $deleted.'.d'.$timestamp); + } else if ( $versions = \OCA\Files_Versions\Storage::getVersions($user, $file_path) ) { foreach ($versions as $v) { - $view->rename('files_versions'.$v['path'].'.v'.$v['version'], 'versions_trashbin/'. $deleted.'.v'.$v['version'].'.d'.$timestamp); + $trashbinSize += $view->filesize('files_versions'.$v['path'].'.v'.$v['version']); + $view->rename('files_versions'.$v['path'].'.v'.$v['version'], 'files_trashbin/versions'. $deleted.'.v'.$v['version'].'.d'.$timestamp); } } } + + // Take care of encryption keys + $keyfile = \OC\Files\Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path); + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile.'.key') ) { + if ( $view->is_dir('files'.$file_path) ) { + $trashbinSize += self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile)); + $view->rename($keyfile, 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp); + } else { + $trashbinSize += $view->filesize($keyfile.'.key'); + $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.key.d'.$timestamp); + } + } + } else { + \OC_Log::write('files_trashbin', 'Couldn\'t move '.$file_path.' to the trash bin', \OC_log::ERROR); + } + + // get available disk space for user + $quota = \OC_Preferences::getValue($user, 'files', 'quota'); + if ( $quota === null ) { + $quota = \OC_Appconfig::getValue('files', 'default_quota'); + } + if ( $quota === null ) { + $quota = \OC\Files\Filesystem::free_space('/') / count(\OCP\User::getUsers()); } else { - \OC_Log::write('files_trashbin', 'Couldn\'t move '.$file_path.' to the trash bin' , \OC_log::ERROR); + $quota = \OCP\Util::computerFileSize($quota); } - self::expire(); + // calculate available space for trash bin + $rootInfo = $view->getFileInfo('/files'); + $free = $quota-$rootInfo['size']; // remaining free space for user + if ( $free > 0 ) { + $availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $trashbinSize; // how much space can be used for versions + } else { + $availableSpace = $free-$trashbinSize; + } + $trashbinSize -= self::expire($availableSpace); + + self::setTrashbinSize($user, $trashbinSize); + } - - + + /** * restore files from trash bin - * @param string $file path to the deleted file - * @param string $filename name of the file - * @param int $timestamp time when the file was deleted + * @param $file path to the deleted file + * @param $filename name of the file + * @param $timestamp time when the file was deleted */ public static function restore($file, $filename, $timestamp) { - $user = \OCP\User::getUser(); $view = new \OC\Files\View('/'.$user); + $trashbinSize = self::getTrashbinSize($user); + if ( $trashbinSize === false || $trashbinSize < 0 ) { + $trashbinSize = self::calculateSize(new \OC\Files\View('/'. $user.'/files_trashbin')); + } if ( $timestamp ) { - $query = \OC_DB::prepare('SELECT location,type FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?'); + $query = \OC_DB::prepare('SELECT location,type FROM *PREFIX*files_trash' + .' WHERE user=? AND id=? AND timestamp=?'); $result = $query->execute(array($user,$filename,$timestamp))->fetchAll(); if ( count($result) != 1 ) { \OC_Log::write('files_trashbin', 'trash bin database inconsistent!', \OC_Log::ERROR); return false; } - + // if location no longer exists, restore file in the root directory $location = $result[0]['location']; - if ( $result[0]['location'] != '/' && - (!$view->is_dir('files'.$result[0]['location']) || + if ( $result[0]['location'] != '/' && + (!$view->is_dir('files'.$result[0]['location']) || !$view->isUpdatable('files'.$result[0]['location'])) ) { $location = ''; } } else { - $path_parts = pathinfo($filename); + $path_parts = pathinfo($file); $result[] = array( 'location' => $path_parts['dirname'], - 'type' => $view->is_dir('/files_trashbin/'.$file) ? 'dir' : 'files', + 'type' => $view->is_dir('/files_trashbin/files/'.$file) ? 'dir' : 'files', ); $location = ''; } - $source = \OC\Files\Filesystem::normalizePath('files_trashbin/'.$file); + $source = \OC\Files\Filesystem::normalizePath('files_trashbin/files/'.$file); $target = \OC\Files\Filesystem::normalizePath('files/'.$location.'/'.$filename); - + // we need a extension in case a file/dir with the same name already exists $ext = self::getUniqueExtension($location, $filename, $view); $mtime = $view->filemtime($source); if( $view->rename($source, $target.$ext) ) { $view->touch($target.$ext, $mtime); + if ($view->is_dir($target.$ext)) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/'.$user.'/'.$target.$ext)); + } else { + $trashbinSize -= $view->filesize($target.$ext); + } // if versioning app is enabled, copy versions from the trash bin back to the original location if ( \OCP\App::isEnabled('files_versions') ) { - if ( $result[0]['type'] == 'dir' ) { - $view->rename(\OC\Files\Filesystem::normalizePath('versions_trashbin/'. $file), \OC\Files\Filesystem::normalizePath('files_versions/'.$location.'/'.$filename.$ext)); - } else if ( $versions = self::getVersionsFromTrash($file, $timestamp) ) { + if ($timestamp ) { + $versionedFile = $filename; + } else { + $versionedFile = $file; + } + if ( $result[0]['type'] === 'dir' ) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/'.$user.'/'.'files_trashbin/versions/'. $file)); + $view->rename(\OC\Files\Filesystem::normalizePath('files_trashbin/versions/'. $file), \OC\Files\Filesystem::normalizePath('files_versions/'.$location.'/'.$filename.$ext)); + } else if ( $versions = self::getVersionsFromTrash($versionedFile, $timestamp) ) { foreach ($versions as $v) { if ($timestamp ) { - $view->rename('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + $trashbinSize -= $view->filesize('files_trashbin/versions/'.$versionedFile.'.v'.$v.'.d'.$timestamp); + $view->rename('files_trashbin/versions/'.$versionedFile.'.v'.$v.'.d'.$timestamp, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); } else { - $view->rename('versions_trashbin/'.$file.'.v'.$v, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + $trashbinSize -= $view->filesize('files_trashbin/versions/'.$versionedFile.'.v'.$v); + $view->rename('files_trashbin/versions/'.$versionedFile.'.v'.$v, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); } } } } - + + // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!) + $parts = pathinfo($file); + if ( $result[0]['type'] === 'dir' ) { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename); + } else { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename.'.key'); + } + if ($timestamp) { + $keyfile .= '.d'.$timestamp; + } + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { + if ( $result[0]['type'] === 'dir' ) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile)); + $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename); + } else { + $trashbinSize -= $view->filesize($keyfile); + $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename.'.key'); + } + } + if ( $timestamp ) { $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?'); $query->execute(array($user,$filename,$timestamp)); } + self::setTrashbinSize($user, $trashbinSize); + return true; } else { - \OC_Log::write('files_trashbin', 'Couldn\'t restore file from trash bin, '.$filename , \OC_log::ERROR); + \OC_Log::write('files_trashbin', 'Couldn\'t restore file from trash bin, '.$filename, \OC_log::ERROR); } return false; } - + /** * delete file from trash bin permanently * @param $filename path to the file * @param $timestamp of deletion time - * @return true/false + * @return size of deleted files */ public static function delete($filename, $timestamp=null) { - $user = \OCP\User::getUser(); - $view = new \OC_FilesystemView('/'.$user); + $view = new \OC\Files\View('/'.$user); + $size = 0; + $trashbinSize = self::getTrashbinSize($user); + if ( $trashbinSize === false || $trashbinSize < 0 ) { + $trashbinSize = self::calculateSize(new \OC\Files\View('/'. $user.'/files_trashbin')); + } + if ( $timestamp ) { $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?'); $query->execute(array($user,$filename,$timestamp)); @@ -168,105 +259,168 @@ class Trashbin { } else { $file = $filename; } - + if ( \OCP\App::isEnabled('files_versions') ) { - if ($view->is_dir('versions_trashbin/'.$file)) { - $view->unlink('versions_trashbin/'.$file); - } else if ( $versions = self::getVersionsFromTrash($file, $timestamp) ) { + if ($view->is_dir('files_trashbin/versions/'.$file)) { + $size += self::calculateSize(new \OC\Files\view('/'.$user.'/files_trashbin/versions/'.$file)); + $view->unlink('files_trashbin/versions/'.$file); + } else if ( $versions = self::getVersionsFromTrash($filename, $timestamp) ) { foreach ($versions as $v) { if ($timestamp ) { - $view->unlink('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp); + $size += $view->filesize('/files_trashbin/versions/'.$filename.'.v'.$v.'.d'.$timestamp); + $view->unlink('/files_trashbin/versions/'.$filename.'.v'.$v.'.d'.$timestamp); } else { - $view->unlink('versions_trashbin/'.$file.'.v'.$v); + $size += $view->filesize('/files_trashbin/versions/'.$filename.'.v'.$v); + $view->unlink('/files_trashbin/versions/'.$filename.'.v'.$v); } } } } + + // Take care of encryption keys + $parts = pathinfo($file); + if ( $view->is_dir('/files_trashbin/files/'.$file) ) { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename); + } else { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename.'.key'); + } + if ($timestamp) { + $keyfile .= '.d'.$timestamp; + } + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { + if ( $view->is_dir($keyfile) ) { + $size += self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile)); + } else { + $size += $view->filesize($keyfile); + } + $view->unlink($keyfile); + } - $view->unlink('/files_trashbin/'.$file); + if ($view->is_dir('/files_trashbin/files/'.$file)) { + $size += self::calculateSize(new \OC\Files\View('/'.$user.'/files_trashbin/files/'.$file)); + } else { + $size += $view->filesize('/files_trashbin/files/'.$file); + } + $view->unlink('/files_trashbin/files/'.$file); + $trashbinSize -= $size; + self::setTrashbinSize($user, $trashbinSize); - return true; + return $size; } - - + + /** + * check to see whether a file exists in trashbin + * @param $filename path to the file + * @param $timestamp of deletion time + * @return true if file exists, otherwise false + */ + public static function file_exists($filename, $timestamp=null) { + $user = \OCP\User::getUser(); + $view = new \OC\Files\View('/'.$user); + + if ($timestamp) { + $filename = $filename.'.d'.$timestamp; + } else { + $filename = $filename; + } + + $target = \OC\Files\Filesystem::normalizePath('files_trashbin/files/'.$filename); + return $view->file_exists($target); + } + /** * clean up the trash bin + * @param max. available disk space for trashbin */ - private static function expire() { - - $view = new \OC\Files\View('/'.\OCP\User::getUser()); + private static function expire($availableSpace) { + $user = \OCP\User::getUser(); - + $view = new \OC\Files\View('/'.$user); + $size = 0; + $query = \OC_DB::prepare('SELECT location,type,id,timestamp FROM *PREFIX*files_trash WHERE user=?'); $result = $query->execute(array($user))->fetchAll(); - - $retention_obligation = \OC_Config::getValue('trashbin_retention_obligation', self::DEFAULT_RETENTION_OBLIGATION); - + + $retention_obligation = \OC_Config::getValue('trashbin_retention_obligation', + self::DEFAULT_RETENTION_OBLIGATION); + $limit = time() - ($retention_obligation * 86400); foreach ( $result as $r ) { $timestamp = $r['timestamp']; $filename = $r['id']; if ( $r['timestamp'] < $limit ) { - $view->unlink('files_trashbin/'.$filename.'.d'.$timestamp); - if ($r['type'] == 'dir') { - $view->unlink('versions_trashbin/'.$filename.'.d'.$timestamp); - } else if ( $versions = self::getVersionsFromTrash($filename, $timestamp) ) { - foreach ($versions as $v) { - $view->unlink('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp); - } - } + $size += self::delete($filename, $timestamp); } } - - $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND timestampexecute(array($user,$limit)); + $availableSpace = $availableSpace + $size; + // if size limit for trash bin reached, delete oldest files in trash bin + if ($availableSpace < 0) { + $query = \OC_DB::prepare('SELECT location,type,id,timestamp FROM *PREFIX*files_trash' + .' WHERE user=? ORDER BY timestamp ASC'); + $result = $query->execute(array($user))->fetchAll(); + $length = count($result); + $i = 0; + while ( $i < $length && $availableSpace < 0 ) { + $tmp = self::delete($result[$i]['id'], $result[$i]['timestamp']); + $availableSpace += $tmp; + $size += $tmp; + $i++; + } + + + } + + return $size; } - + /** * recursive copy to copy a whole directory - * - * @param string $source source path, relative to the users files directory - * @param string $destination destination path relative to the users root directoy - * @param \OC\Files\View $view file view for the users root directory + * + * @param $source source path, relative to the users files directory + * @param $destination destination path relative to the users root directoy + * @param $view file view for the users root directory */ private static function copy_recursive( $source, $destination, $view ) { + $size = 0; if ( $view->is_dir( 'files'.$source ) ) { $view->mkdir( $destination ); $view->touch($destination, $view->filemtime('files'.$source)); foreach ( \OC_Files::getDirectoryContent($source) as $i ) { $pathDir = $source.'/'.$i['name']; if ( $view->is_dir('files'.$pathDir) ) { - self::copy_recursive($pathDir, $destination.'/'.$i['name'], $view); + $size += self::copy_recursive($pathDir, $destination.'/'.$i['name'], $view); } else { + $size += $view->filesize('files'.$pathDir); $view->copy( 'files'.$pathDir, $destination . '/' . $i['name'] ); $view->touch($destination . '/' . $i['name'], $view->filemtime('files'.$pathDir)); } } } else { + $size += $view->filesize('files'.$source); $view->copy( 'files'.$source, $destination ); $view->touch($destination, $view->filemtime('files'.$source)); } + return $size; } - + /** * find all versions which belong to the file we want to restore - * @param string $filename name of the file which should be restored - * @param int $timestamp timestamp when the file was deleted + * @param $filename name of the file which should be restored + * @param $timestamp timestamp when the file was deleted */ private static function getVersionsFromTrash($filename, $timestamp) { - $view = new \OC\Files\View('/'.\OCP\User::getUser().'/versions_trashbin'); + $view = new \OC\Files\View('/'.\OCP\User::getUser().'/files_trashbin/versions'); $versionsName = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath($filename); $versions = array(); - if ($timestamp ) { - // fetch for old versions + // fetch for old versions $matches = glob( $versionsName.'.v*.d'.$timestamp ); $offset = -strlen($timestamp)-2; } else { $matches = glob( $versionsName.'.v*' ); } - + foreach( $matches as $ma ) { if ( $timestamp ) { $parts = explode( '.v', substr($ma, 0, $offset) ); @@ -278,12 +432,12 @@ class Trashbin { } return $versions; } - + /** * find unique extension for restored file if a file with the same name already exists - * @param string $location where the file should be restored - * @param string $filename name of the file - * @param \OC\Files\View $view filesystem view relative to users root directory + * @param $location where the file should be restored + * @param $filename name of the file + * @param $view filesystem view relative to users root directory * @return string with unique extension */ private static function getUniqueExtension($location, $filename, $view) { @@ -300,4 +454,58 @@ class Trashbin { return $ext; } + /** + * @brief get the size from a given root folder + * @param $view file view on the root folder + * @return size of the folder + */ + private static function calculateSize($view) { + $root = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath(''); + if (!file_exists($root)) { + return 0; + } + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($root), + \RecursiveIteratorIterator::CHILD_FIRST); + $size = 0; + + foreach ($iterator as $path) { + $relpath = substr($path, strlen($root)-1); + if ( !$view->is_dir($relpath) ) { + $size += $view->filesize($relpath); + } + } + return $size; + } + + /** + * get current size of trash bin from a given user + * + * @param $user user who owns the trash bin + * @return mixed trash bin size or false if no trash bin size is stored + */ + private static function getTrashbinSize($user) { + $query = \OC_DB::prepare('SELECT size FROM *PREFIX*files_trashsize WHERE user=?'); + $result = $query->execute(array($user))->fetchAll(); + + if ($result) { + return $result[0]['size']; + } + return false; + } + + /** + * write to the database how much space is in use for the trash bin + * + * @param $user owner of the trash bin + * @param $size size of the trash bin + */ + private static function setTrashbinSize($user, $size) { + if ( self::getTrashbinSize($user) === false) { + $query = \OC_DB::prepare('INSERT INTO *PREFIX*files_trashsize (size, user) VALUES (?, ?)'); + }else { + $query = \OC_DB::prepare('UPDATE *PREFIX*files_trashsize SET size=? WHERE user=?'); + } + $query->execute(array($size, $user)); + } + } diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php index 24e4a0e6c697249c5aeb5a5150028c747616bcaa..aaeeb5c6f6e798f545b93b7d2e1b21f4b867e381 100644 --- a/apps/files_trashbin/templates/index.php +++ b/apps/files_trashbin/templates/index.php @@ -5,11 +5,11 @@
- +
t('Nothing in here. Your trash bin is empty!')?>
- +
diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php index fe8a71f44e6514c3ee04af38a310fca3c3e97d34..dea0a43cd4c67cd4ad4ee47c9ead7d642e945e68 100644 --- a/apps/files_trashbin/templates/part.list.php +++ b/apps/files_trashbin/templates/part.list.php @@ -1,12 +1,8 @@ 200) $relative_date_color = 200; $name = str_replace('+', '%20', urlencode($file['name'])); $name = str_replace('%2F', '/', $name); @@ -73,4 +69,3 @@ array( "message" => $l->t("Could not revert: %s", array($file) )))); } - diff --git a/apps/files_versions/ajax/togglesettings.php b/apps/files_versions/ajax/togglesettings.php deleted file mode 100644 index 546b37ae1aa85dc31054d759f681ed6aca633a09..0000000000000000000000000000000000000000 --- a/apps/files_versions/ajax/togglesettings.php +++ /dev/null @@ -1,10 +0,0 @@ - + + + *dbname* + true + false + + utf8 + +
@@ -25,6 +25,13 @@ t( 'Deleted' ); ?> + + + t('Delete')?> + <?php echo $l->t('Delete')?>" /> + +
+ + *dbprefix*files_versions + + + + + user + text + + true + 64 + + + size + text + + true + 50 + + + + +
+ + diff --git a/apps/files_versions/appinfo/info.xml b/apps/files_versions/appinfo/info.xml index 0155f8e830ff790b1ffe5ef09adea73248f85a74..44878da5e4d8ccabc2d4bd9a45a5ec5616fc54da 100644 --- a/apps/files_versions/appinfo/info.xml +++ b/apps/files_versions/appinfo/info.xml @@ -4,7 +4,7 @@ Versions AGPL Frank Karlitschek - 4.91 + 4.93 true Versioning of files diff --git a/apps/files_versions/appinfo/version b/apps/files_versions/appinfo/version index e6d5cb833c634c4e2972335825d1100492e7c96b..e4c0d46e55ffb2237c9e900aa77172886f6c8aa5 100644 --- a/apps/files_versions/appinfo/version +++ b/apps/files_versions/appinfo/version @@ -1 +1 @@ -1.0.2 \ No newline at end of file +1.0.3 \ No newline at end of file diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js index b9c54689813be409332a467055674047cf8dd0e5..b82b9001fdbedecc9b8c1407facf6e547afe2abd 100644 --- a/apps/files_versions/js/versions.js +++ b/apps/files_versions/js/versions.js @@ -1,19 +1,9 @@ -$(document).ready(function() { - $('#versions').bind('change', function() { - var checked = 1; - if (!this.checked) { - checked = 0; - } - $.post(OC.filePath('files_versions','ajax','togglesettings.php'), 'versions='+checked); - }); -}); - $(document).ready(function(){ if (typeof FileActions !== 'undefined') { - // Add history button to 'files/index.php' + // Add versions button to 'files/index.php' FileActions.register( 'file' - , t('files_versions', 'History') + , t('files_versions', 'Versions') , OC.PERMISSION_UPDATE , function() { // Specify icon for hitory button @@ -41,6 +31,10 @@ $(document).ready(function(){ } }); +function goToVersionPage(url){ + window.location(url); +} + function createVersionsDropdown(filename, files) { var historyUrl = OC.linkTo('files_versions', 'history.php') + '?path='+encodeURIComponent( $( '#dir' ).val() ).replace( /%2F/g, '/' )+'/'+encodeURIComponent( filename ); @@ -51,7 +45,7 @@ function createVersionsDropdown(filename, files) { html += ''; html += ''; html += ''; - html += ''; + html += ''; html += ''; if (filename) { @@ -61,6 +55,10 @@ function createVersionsDropdown(filename, files) { $(html).appendTo($('thead .share')); } + $("#makelink").click(function() { + goToVersionPage(historyUrl); + }); + $.ajax({ type: 'GET', url: OC.filePath('files_versions', 'ajax', 'getVersions.php'), diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php index 01e0a116873ae558685316cf0dd2e9522ee15e60..fc900c47dc7e5b857f11170c34d05fda8de2e785 100644 --- a/apps/files_versions/l10n/ca.php +++ b/apps/files_versions/l10n/ca.php @@ -1,5 +1,13 @@ "No s'ha pogut revertir: %s", +"success" => "èxit", +"File %s was reverted to version %s" => "El fitxer %s s'ha revertit a la versió %s", +"failure" => "fallada", +"File %s could not be reverted to version %s" => "El fitxer %s no s'ha pogut revertir a la versió %s", +"No old versions available" => "No hi ha versións antigues disponibles", +"No path specified" => "No heu especificat el camí", "History" => "Historial", +"Revert a file to a previous version by clicking on its revert button" => "Reverteix un fitxer a una versió anterior fent clic en el seu botó de reverteix", "Files Versioning" => "Fitxers de Versions", "Enable" => "Habilita" ); diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php index d219c3e68daea5c2f6b14ffa182c1d5ed580af1f..22d4a2ad827235619e465c7712732c96797aab6f 100644 --- a/apps/files_versions/l10n/cs_CZ.php +++ b/apps/files_versions/l10n/cs_CZ.php @@ -1,5 +1,13 @@ "Nelze navrátit: %s", +"success" => "úspěch", +"File %s was reverted to version %s" => "Soubor %s byl navrácen na verzi %s", +"failure" => "sehlhání", +"File %s could not be reverted to version %s" => "Soubor %s nemohl být navrácen na verzi %s", +"No old versions available" => "Nejsou dostupné žádné starší verze", +"No path specified" => "Nezadána cesta", "History" => "Historie", +"Revert a file to a previous version by clicking on its revert button" => "Navraťte soubor do předchozí verze kliknutím na tlačítko navrátit", "Files Versioning" => "Verzování souborů", "Enable" => "Povolit" ); diff --git a/apps/files_versions/l10n/da.php b/apps/files_versions/l10n/da.php index 985797476439ed9074b3a24d57d4ed8aaddcd32b..93fcb9c99cf6f57157ce2a14d475fd16aac33c1c 100644 --- a/apps/files_versions/l10n/da.php +++ b/apps/files_versions/l10n/da.php @@ -1,5 +1,13 @@ "Kunne ikke genskabe: %s", +"success" => "success", +"File %s was reverted to version %s" => "Filen %s blev genskabt til version: %s", +"failure" => "fejl", +"File %s could not be reverted to version %s" => "Filen %s blev genskabt til version: %s", +"No old versions available" => "Ingen gamle version tilgængelige", +"No path specified" => "Ingen sti specificeret", "History" => "Historik", +"Revert a file to a previous version by clicking on its revert button" => "Genskab en fil til en tidligere version ved at klikke på denne genskab knap.", "Files Versioning" => "Versionering af filer", "Enable" => "Aktiver" ); diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php index 2fcb996de7bae035700e178be957b88e65c44bc7..d7427fbbbf25353cd4369842707efea058270366 100644 --- a/apps/files_versions/l10n/de.php +++ b/apps/files_versions/l10n/de.php @@ -1,5 +1,13 @@ "Konnte %s nicht zurücksetzen", +"success" => "Erfolgreich", +"File %s was reverted to version %s" => "Datei %s wurde auf Version %s zurückgesetzt", +"failure" => "Fehlgeschlagen", +"File %s could not be reverted to version %s" => "Datei %s konnte nicht auf Version %s zurückgesetzt werden", +"No old versions available" => "Keine älteren Versionen verfügbar", +"No path specified" => "Kein Pfad angegeben", "History" => "Historie", +"Revert a file to a previous version by clicking on its revert button" => "Setze eine Datei durch klicken auf den Zurücksetzen Button zurück", "Files Versioning" => "Dateiversionierung", "Enable" => "Aktivieren" ); diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php index 2fcb996de7bae035700e178be957b88e65c44bc7..ba849c5ea87ae9b43bde81cd4788fb285c606bbc 100644 --- a/apps/files_versions/l10n/de_DE.php +++ b/apps/files_versions/l10n/de_DE.php @@ -1,5 +1,13 @@ "Konnte %s nicht zurücksetzen", +"success" => "Erfolgreich", +"File %s was reverted to version %s" => "Die Datei %s wurde zur Version %s zurückgesetzt", +"failure" => "Fehlgeschlagen", +"File %s could not be reverted to version %s" => "Die Datei %s konnte nicht zur Version %s zurückgesetzt werden", +"No old versions available" => "Keine älteren Versionen verfügbar", +"No path specified" => "Kein Pfad angegeben", "History" => "Historie", +"Revert a file to a previous version by clicking on its revert button" => "Setze eine Datei durch Klicken auf den Zurücksetzen-Button auf eine frühere Version zurück", "Files Versioning" => "Dateiversionierung", "Enable" => "Aktivieren" ); diff --git a/apps/files_versions/l10n/el.php b/apps/files_versions/l10n/el.php index 6b189c2cdd398168d89a99c53f1b90cccfa73253..8b7ecf085fb6b20fb96c56d0836b664a49d6f0e1 100644 --- a/apps/files_versions/l10n/el.php +++ b/apps/files_versions/l10n/el.php @@ -1,5 +1,13 @@ "Αδυναμία επαναφοράς του: %s", +"success" => "επιτυχία", +"File %s was reverted to version %s" => "Το αρχείο %s επαναφέρθηκε στην έκδοση %s", +"failure" => "αποτυχία", +"File %s could not be reverted to version %s" => "Το αρχείο %s δεν είναι δυνατό να επαναφερθεί στην έκδοση %s", +"No old versions available" => "Μη διαθέσιμες παλιές εκδόσεις", +"No path specified" => "Δεν καθορίστηκε διαδρομή", "History" => "Ιστορικό", +"Revert a file to a previous version by clicking on its revert button" => "Επαναφορά ενός αρχείου σε προηγούμενη έκδοση πατώντας στο κουμπί επαναφοράς", "Files Versioning" => "Εκδόσεις Αρχείων", "Enable" => "Ενεργοποίηση" ); diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php index 4a8c34e518081a2891fff577419c1d2af91266e6..608e171a4b12a99b7f5efc4c043e77787675b1eb 100644 --- a/apps/files_versions/l10n/es.php +++ b/apps/files_versions/l10n/es.php @@ -1,5 +1,13 @@ "No se puede revertir: %s", +"success" => "exitoso", +"File %s was reverted to version %s" => "El archivo %s fue revertido a la version %s", +"failure" => "fallo", +"File %s could not be reverted to version %s" => "El archivo %s no puede ser revertido a la version %s", +"No old versions available" => "No hay versiones antiguas disponibles", +"No path specified" => "Ruta no especificada", "History" => "Historial", +"Revert a file to a previous version by clicking on its revert button" => "Revertir un archivo a una versión anterior haciendo clic en el boton de revertir", "Files Versioning" => "Versionado de archivos", "Enable" => "Habilitar" ); diff --git a/apps/files_versions/l10n/es_AR.php b/apps/files_versions/l10n/es_AR.php index 74d8907fc3539a3f4c73dd3b549d6de13e667e4b..dc604e2a9c8930bd6e3335e0bd744eb50ae284db 100644 --- a/apps/files_versions/l10n/es_AR.php +++ b/apps/files_versions/l10n/es_AR.php @@ -1,5 +1,13 @@ "No se pudo revertir: %s ", +"success" => "Éxito", +"File %s was reverted to version %s" => "El archivo %s fue revertido a la versión %s", +"failure" => "error", +"File %s could not be reverted to version %s" => "El archivo %s no pudo ser revertido a la versión %s", +"No old versions available" => "No hay versiones antiguas disponibles", +"No path specified" => "Ruta de acceso no especificada", "History" => "Historia", +"Revert a file to a previous version by clicking on its revert button" => "Revertí un archivo a una versión anterior haciendo click en su botón de \"revertir\"", "Files Versioning" => "Versionado de archivos", "Enable" => "Activar" ); diff --git a/apps/files_versions/l10n/et_EE.php b/apps/files_versions/l10n/et_EE.php index ff119d5374efa7fc9ab4deccbd6c1b391e4aa47c..4aa80c4f55e7d478898a9877aa8767109592648c 100644 --- a/apps/files_versions/l10n/et_EE.php +++ b/apps/files_versions/l10n/et_EE.php @@ -1,4 +1,8 @@ "korras", +"failure" => "ebaõnnestus", +"No old versions available" => "Vanu versioone pole saadaval", +"No path specified" => "Asukohta pole määratud", "History" => "Ajalugu", "Files Versioning" => "Failide versioonihaldus", "Enable" => "Luba" diff --git a/apps/files_versions/l10n/eu.php b/apps/files_versions/l10n/eu.php index c6b4cd7692dada9b554fc4a56d00edfca3cc9d8a..d7f7a796639a079b3799c22277ed6bbac57e2b13 100644 --- a/apps/files_versions/l10n/eu.php +++ b/apps/files_versions/l10n/eu.php @@ -1,5 +1,13 @@ "Ezin izan da leheneratu: %s", +"success" => "arrakasta", +"File %s was reverted to version %s" => "%s fitxategia %s bertsiora leheneratu da", +"failure" => "errorea", +"File %s could not be reverted to version %s" => "%s fitxategia ezin da %s bertsiora leheneratu", +"No old versions available" => "Ez dago bertsio zaharrik eskuragarri", +"No path specified" => "Ez da bidea zehaztu", "History" => "Historia", +"Revert a file to a previous version by clicking on its revert button" => "Itzuli fitxategi bat aurreko bertsio batera leheneratu bere leheneratu botoia sakatuz", "Files Versioning" => "Fitxategien Bertsioak", "Enable" => "Gaitu" ); diff --git a/apps/files_versions/l10n/fa.php b/apps/files_versions/l10n/fa.php index 9b618fdd320ddfde7bf0b49010aa024c9a3a96ed..0e32ae0d891e29a95b021310ec04704ab3c65748 100644 --- a/apps/files_versions/l10n/fa.php +++ b/apps/files_versions/l10n/fa.php @@ -1,4 +1,11 @@ "بازگردانی امکان ناپذیر است: %s", +"success" => "موفقیت", +"failure" => "شکست", +"No old versions available" => "هیچ نسخه قدیمی در دسترس نیست", +"No path specified" => "هیچ مسیری مشخص نشده است", "History" => "تاریخچه", +"Revert a file to a previous version by clicking on its revert button" => "بازگردانی یک پرورنده به نسخه قدیمی اش از طریق دکمه بازگردانی امکان پذیر است", +"Files Versioning" => "نسخه بندی پرونده ها", "Enable" => "فعال" ); diff --git a/apps/files_versions/l10n/fi_FI.php b/apps/files_versions/l10n/fi_FI.php index bdce8e9fe5209dc563dac6532bd64f17acda02d0..61e073d4e06953b7108ac830845cc23462601801 100644 --- a/apps/files_versions/l10n/fi_FI.php +++ b/apps/files_versions/l10n/fi_FI.php @@ -1,5 +1,13 @@ "Palautus epäonnistui: %s", +"success" => "onnistui", +"File %s was reverted to version %s" => "Tiedosto %s palautettiin versioon %s", +"failure" => "epäonnistui", +"File %s could not be reverted to version %s" => "Tiedoston %s palautus versioon %s epäonnistui", +"No old versions available" => "Vanhoja ei ole saatavilla", +"No path specified" => "Polkua ei ole määritetty", "History" => "Historia", +"Revert a file to a previous version by clicking on its revert button" => "Palauta tiedoston edellinen versio napsauttamalla palautuspainiketta", "Files Versioning" => "Tiedostojen versiointi", "Enable" => "Käytä" ); diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php index 2d26b98860ac147ac64d03e4c8fea11f1c4ace58..6b2cf9ba6b5f141fd8b87e7447eb81f6e427aacd 100644 --- a/apps/files_versions/l10n/fr.php +++ b/apps/files_versions/l10n/fr.php @@ -1,5 +1,13 @@ "Impossible de restaurer %s", +"success" => "succès", +"File %s was reverted to version %s" => "Le fichier %s a été restauré dans sa version %s", +"failure" => "échec", +"File %s could not be reverted to version %s" => "Le fichier %s ne peut être restauré dans sa version %s", +"No old versions available" => "Aucune ancienne version n'est disponible", +"No path specified" => "Aucun chemin spécifié", "History" => "Historique", +"Revert a file to a previous version by clicking on its revert button" => "Restaurez un fichier dans une version antérieure en cliquant sur son bouton de restauration", "Files Versioning" => "Versionnage des fichiers", "Enable" => "Activer" ); diff --git a/apps/files_versions/l10n/gl.php b/apps/files_versions/l10n/gl.php index 7e44b8898bfa68e9f0d073922a5d824749f43ac4..b822b223cc1fba2049dc848df2adbec4ba3412dd 100644 --- a/apps/files_versions/l10n/gl.php +++ b/apps/files_versions/l10n/gl.php @@ -1,5 +1,13 @@ "Non foi posíbel reverter: %s", +"success" => "feito", +"File %s was reverted to version %s" => "O ficheiro %s foi revertido á versión %s", +"failure" => "produciuse un fallo", +"File %s could not be reverted to version %s" => "Non foi posíbel reverter o ficheiro %s á versión %s", +"No old versions available" => "Non hai versións antigas dispoñíbeis", +"No path specified" => "Non foi indicada a ruta", "History" => "Historial", +"Revert a file to a previous version by clicking on its revert button" => "Reverta un ficheiro a unha versión anterior premendo no botón reversión", "Files Versioning" => "Sistema de versión de ficheiros", "Enable" => "Activar" ); diff --git a/apps/files_versions/l10n/hu_HU.php b/apps/files_versions/l10n/hu_HU.php index 95d37ad06ed686b7b692b81802c5479785e91a5c..dcf28838158e2221d6f3b6566d971ae7c8b15014 100644 --- a/apps/files_versions/l10n/hu_HU.php +++ b/apps/files_versions/l10n/hu_HU.php @@ -1,5 +1,13 @@ "Nem sikerült átállni a változatra: %s", +"success" => "sikerült", +"File %s was reverted to version %s" => "%s állományt átállítottuk erre a változatra: %s", +"failure" => "nem sikerült", +"File %s could not be reverted to version %s" => "%s állományt nem sikerült átállítani erre a változatra: %s", +"No old versions available" => "Nincs régebbi változat", +"No path specified" => "Nincs megadva az útvonal", "History" => "Korábbi változatok", +"Revert a file to a previous version by clicking on its revert button" => "Az állomány átállítható egy régebbi változatra, ha a gombra kattint", "Files Versioning" => "Az állományok verzionálása", "Enable" => "engedélyezve" ); diff --git a/apps/files_versions/l10n/id.php b/apps/files_versions/l10n/id.php index 6c553327c42aca3414bdffb9850465b8737d405a..6e24a05cbb85493d3ce1f6edd908e9e4791f5d5d 100644 --- a/apps/files_versions/l10n/id.php +++ b/apps/files_versions/l10n/id.php @@ -1,5 +1,13 @@ "Tidak dapat mengembalikan: %s", +"success" => "sukses", +"File %s was reverted to version %s" => "Berkas %s telah dikembalikan ke versi %s", +"failure" => "gagal", +"File %s could not be reverted to version %s" => "Berkas %s gagal dikembalikan ke versi %s", +"No old versions available" => "Versi lama tidak tersedia", +"No path specified" => "Lokasi tidak ditentukan", "History" => "riwayat", +"Revert a file to a previous version by clicking on its revert button" => "Kembalikan berkas ke versi sebelumnya dengan mengklik tombol kembalikan", "Files Versioning" => "pembuatan versi file", "Enable" => "aktifkan" ); diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php index c57b09301110bb6c825b9118ea1587f35cc95728..3289f7f68d179e5bb696cb9be0a4440225f50237 100644 --- a/apps/files_versions/l10n/it.php +++ b/apps/files_versions/l10n/it.php @@ -1,5 +1,13 @@ "Impossibild ripristinare: %s", +"success" => "completata", +"File %s was reverted to version %s" => "Il file %s è stato ripristinato alla versione %s", +"failure" => "non riuscita", +"File %s could not be reverted to version %s" => "Il file %s non può essere ripristinato alla versione %s", +"No old versions available" => "Non sono disponibili versioni precedenti", +"No path specified" => "Nessun percorso specificato", "History" => "Cronologia", +"Revert a file to a previous version by clicking on its revert button" => "Ripristina un file a una versione precedente facendo clic sul rispettivo pulsante di ripristino", "Files Versioning" => "Controllo di versione dei file", "Enable" => "Abilita" ); diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php index c97ba3d00ee81849ce81d15f60d062a44211d59a..16018765708033fcbf6b8ebeb30c19532b0d20a1 100644 --- a/apps/files_versions/l10n/ja_JP.php +++ b/apps/files_versions/l10n/ja_JP.php @@ -1,5 +1,13 @@ "元に戻せませんでした: %s", +"success" => "成功", +"File %s was reverted to version %s" => "ファイル %s をバージョン %s に戻しました", +"failure" => "失敗", +"File %s could not be reverted to version %s" => "ファイル %s をバージョン %s に戻せませんでした", +"No old versions available" => "利用可能な古いバージョンはありません", +"No path specified" => "パスが指定されていません", "History" => "履歴", +"Revert a file to a previous version by clicking on its revert button" => "もとに戻すボタンをクリックすると、ファイルを過去のバージョンに戻します", "Files Versioning" => "ファイルのバージョン管理", "Enable" => "有効化" ); diff --git a/apps/files_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php index ae2ead12f4c22a6aab360bbdca6ee272952929b9..2203dc706b82565bcd4535c88b108d147791e2b0 100644 --- a/apps/files_versions/l10n/lv.php +++ b/apps/files_versions/l10n/lv.php @@ -1,5 +1,13 @@ "Nevarēja atgriezt — %s", +"success" => "veiksme", +"File %s was reverted to version %s" => "Datne %s tika atgriezt uz versiju %s", +"failure" => "neveiksme", +"File %s could not be reverted to version %s" => "Datni %s nevarēja atgriezt uz versiju %s", +"No old versions available" => "Nav pieejamu vecāku versiju", +"No path specified" => "Nav norādīts ceļš", "History" => "Vēsture", +"Revert a file to a previous version by clicking on its revert button" => "Atgriez datni uz iepriekšēju versiju, spiežot uz tās atgriešanas pogu", "Files Versioning" => "Datņu versiju izskošana", "Enable" => "Aktivēt" ); diff --git a/apps/files_versions/l10n/nl.php b/apps/files_versions/l10n/nl.php index cd147ca693f0af302b7a479a9d643bb1c51ebf35..fb1cfc3533c4ed30e2ef7a406af7052b9c888f52 100644 --- a/apps/files_versions/l10n/nl.php +++ b/apps/files_versions/l10n/nl.php @@ -1,5 +1,13 @@ "Kon niet terugdraaien: %s", +"success" => "succes", +"File %s was reverted to version %s" => "Bestand %s is teruggedraaid naar versie %s", +"failure" => "mislukking", +"File %s could not be reverted to version %s" => "Bestand %s kon niet worden teruggedraaid naar versie %s", +"No old versions available" => "Geen oudere versies beschikbaar", +"No path specified" => "Geen pad opgegeven", "History" => "Geschiedenis", +"Revert a file to a previous version by clicking on its revert button" => "Draai een bestand terug naar een voorgaande versie door te klikken op de terugdraai knop", "Files Versioning" => "Bestand versies", "Enable" => "Activeer" ); diff --git a/apps/files_versions/l10n/pl.php b/apps/files_versions/l10n/pl.php index a0247b8abc62d5caa6a8279c347915901031ce8a..ae3bfc4a842d4b40b3cf2e36c20954b695be9fba 100644 --- a/apps/files_versions/l10n/pl.php +++ b/apps/files_versions/l10n/pl.php @@ -1,5 +1,13 @@ "Nie można było przywrócić: %s", +"success" => "sukces", +"File %s was reverted to version %s" => "Plik %s został przywrócony do wersji %s", +"failure" => "porażka", +"File %s could not be reverted to version %s" => "Plik %s nie mógł być przywrócony do wersji %s", +"No old versions available" => "Nie są dostępne żadne starsze wersje", +"No path specified" => "Nie podano ścieżki", "History" => "Historia", +"Revert a file to a previous version by clicking on its revert button" => "Przywróć plik do poprzedniej wersji klikając w jego przycisk przywrócenia", "Files Versioning" => "Wersjonowanie plików", "Enable" => "Włącz" ); diff --git a/apps/files_versions/l10n/pt_BR.php b/apps/files_versions/l10n/pt_BR.php index 854a30e6beeab87a003cddd422d0a5209a91a533..9ce509c6534aca66d695abb21ad74fb190babbcd 100644 --- a/apps/files_versions/l10n/pt_BR.php +++ b/apps/files_versions/l10n/pt_BR.php @@ -1,5 +1,13 @@ "Não foi possível reverter: %s", +"success" => "sucesso", +"File %s was reverted to version %s" => "Arquivo %s revertido à versão %s", +"failure" => "falha", +"File %s could not be reverted to version %s" => "Arquivo %s não pôde ser revertido à versão %s", +"No old versions available" => "Nenhuma versão antiga disponível", +"No path specified" => "Nenhum caminho especificado", "History" => "Histórico", +"Revert a file to a previous version by clicking on its revert button" => "Reverta um arquivo a uma versão anterior clicando no botão reverter", "Files Versioning" => "Versionamento de Arquivos", "Enable" => "Habilitar" ); diff --git a/apps/files_versions/l10n/pt_PT.php b/apps/files_versions/l10n/pt_PT.php index dc1bde08cad0853c72c4eef5e9ec028dca68247f..629809f95560b74cc13706bfb83115c6cc00fec3 100644 --- a/apps/files_versions/l10n/pt_PT.php +++ b/apps/files_versions/l10n/pt_PT.php @@ -1,5 +1,13 @@ "Não foi possível reverter: %s", +"success" => "Sucesso", +"File %s was reverted to version %s" => "O ficheiro %s foi revertido para a versão %s", +"failure" => "Falha", +"File %s could not be reverted to version %s" => "Não foi possível reverter o ficheiro %s para a versão %s", +"No old versions available" => "Não existem versões mais antigas", +"No path specified" => "Nenhum caminho especificado", "History" => "Histórico", +"Revert a file to a previous version by clicking on its revert button" => "Reverter um ficheiro para uma versão anterior clicando no seu botão reverter.", "Files Versioning" => "Versionamento de Ficheiros", "Enable" => "Activar" ); diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php index 4c7fb5010912d39808cbc267d4a926f7efba29b3..221d24ce8d118c0677a730d5a10a7519b8670820 100644 --- a/apps/files_versions/l10n/ru.php +++ b/apps/files_versions/l10n/ru.php @@ -1,5 +1,13 @@ "Не может быть возвращён: %s", +"success" => "успех", +"File %s was reverted to version %s" => "Файл %s был возвращён к версии %s", +"failure" => "провал", +"File %s could not be reverted to version %s" => "Файл %s не может быть возвращён к версии %s", +"No old versions available" => "Нет доступных старых версий", +"No path specified" => "Путь не указан", "History" => "История", +"Revert a file to a previous version by clicking on its revert button" => "Вернуть файл к предыдущей версии нажатием на кнопку возврата", "Files Versioning" => "Версии файлов", "Enable" => "Включить" ); diff --git a/apps/files_versions/l10n/sk_SK.php b/apps/files_versions/l10n/sk_SK.php index a3a3567cb4f99465180f82a8b5f4c2e47914b3e1..8b46e93bb9782fecca915915b23aabb626a87de6 100644 --- a/apps/files_versions/l10n/sk_SK.php +++ b/apps/files_versions/l10n/sk_SK.php @@ -1,5 +1,13 @@ "Nemožno obnoviť: %s", +"success" => "úspech", +"File %s was reverted to version %s" => "Súbor %s bol obnovený na verziu %s", +"failure" => "chyba", +"File %s could not be reverted to version %s" => "Súbor %s nemohol byť obnovený na verziu %s", +"No old versions available" => "Nie sú dostupné žiadne staršie verzie", +"No path specified" => "Nevybrali ste cestu", "History" => "História", +"Revert a file to a previous version by clicking on its revert button" => "Obnovte súbor do predošlej verzie kliknutím na tlačítko obnoviť", "Files Versioning" => "Vytváranie verzií súborov", "Enable" => "Zapnúť" ); diff --git a/apps/files_versions/l10n/sv.php b/apps/files_versions/l10n/sv.php index 6788d1fb0f969a942cb01fd191de89f91924843b..853644848f4f894dd43259081e70482d4332025c 100644 --- a/apps/files_versions/l10n/sv.php +++ b/apps/files_versions/l10n/sv.php @@ -1,5 +1,13 @@ "Kunde inte återställa: %s", +"success" => "lyckades", +"File %s was reverted to version %s" => "Filen %s återställdes till version %s", +"failure" => "misslyckades", +"File %s could not be reverted to version %s" => "Filen %s kunde inte återställas till version %s", +"No old versions available" => "Inga gamla versioner finns tillgängliga", +"No path specified" => "Ingen sökväg angiven", "History" => "Historik", +"Revert a file to a previous version by clicking on its revert button" => "Återställ en fil till en tidigare version genom att klicka på knappen", "Files Versioning" => "Versionshantering av filer", "Enable" => "Aktivera" ); diff --git a/apps/files_versions/l10n/tr.php b/apps/files_versions/l10n/tr.php index e9a4c4702e13b2d635ef060cf5469d57b0d958c4..3db3a4bc822dbf71db51261aa2f7e9d33b3f9435 100644 --- a/apps/files_versions/l10n/tr.php +++ b/apps/files_versions/l10n/tr.php @@ -1,4 +1,11 @@ "Geri alınamıyor: %s", +"success" => "Başarılı.", +"File %s was reverted to version %s" => "Dosya %s, %s versiyonuna döndürüldü", +"failure" => "hata", +"File %s could not be reverted to version %s" => "Dosya %s, %s versiyonuna döndürülemedi.", +"No old versions available" => "Eski versiyonlar mevcut değil.", +"No path specified" => "Yama belirtilmemiş", "History" => "Geçmiş", "Files Versioning" => "Dosya Sürümleri", "Enable" => "Etkinleştir" diff --git a/apps/files_versions/l10n/uk.php b/apps/files_versions/l10n/uk.php index 49acda810792942ad0243edac376e8e921195ea2..861523bf6a47953094170c91a03663842a2414c9 100644 --- a/apps/files_versions/l10n/uk.php +++ b/apps/files_versions/l10n/uk.php @@ -1,5 +1,13 @@ "Не вдалося відновити: %s", +"success" => "успішно", +"File %s was reverted to version %s" => "Файл %s був відновлений до версії %s", +"failure" => "неуспішно", +"File %s could not be reverted to version %s" => "Файл %s не може бути відновлений до версії %s", +"No old versions available" => "Старі версії недоступні", +"No path specified" => "Шлях не вказаний", "History" => "Історія", +"Revert a file to a previous version by clicking on its revert button" => "Відновити файл на попередню версію, натиснувши на кнопку Відновити", "Files Versioning" => "Версії файлів", "Enable" => "Включити" ); diff --git a/apps/files_versions/l10n/vi.php b/apps/files_versions/l10n/vi.php index bb7163f6b1875bcafeb1f6f6f6b28502ee9adb52..675cb841c789b9a01a803f86f1cd9e37b08a6ed3 100644 --- a/apps/files_versions/l10n/vi.php +++ b/apps/files_versions/l10n/vi.php @@ -1,5 +1,13 @@ "Không thể khôi phục: %s", +"success" => "thành công", +"File %s was reverted to version %s" => "File %s đã được khôi phục về phiên bản %s", +"failure" => "Thất bại", +"File %s could not be reverted to version %s" => "File %s không thể khôi phục về phiên bản %s", +"No old versions available" => "Không có phiên bản cũ nào", +"No path specified" => "Không chỉ ra đường dẫn rõ ràng", "History" => "Lịch sử", +"Revert a file to a previous version by clicking on its revert button" => "Khôi phục một file về phiên bản trước đó bằng cách click vào nút Khôi phục tương ứng", "Files Versioning" => "Phiên bản tập tin", "Enable" => "Bật " ); diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php index dc02c605c44ce51877a807dd7ffa4572c47550a6..7891b20e92fd2a74e6a28c3cd18d00a1e3efd9db 100644 --- a/apps/files_versions/lib/hooks.php +++ b/apps/files_versions/lib/hooks.php @@ -20,13 +20,10 @@ class Hooks { public static function write_hook( $params ) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - - $versions = new Storage( new \OC\Files\View('') ); - $path = $params[\OC\Files\Filesystem::signal_param_path]; - - if($path<>'') $versions->store( $path ); - + if($path<>'') { + Storage::store($path); + } } } @@ -40,13 +37,11 @@ class Hooks { */ public static function remove_hook($params) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - - $versions = new Storage( new \OC_FilesystemView('') ); - $path = $params[\OC\Files\Filesystem::signal_param_path]; - - if($path<>'') $versions->delete( $path ); - + if($path<>'') { + Storage::delete($path); + } + } } @@ -59,15 +54,13 @@ class Hooks { */ public static function rename_hook($params) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - - $versions = new Storage( new \OC_FilesystemView('') ); - $oldpath = $params['oldpath']; $newpath = $params['newpath']; - - if($oldpath<>'' && $newpath<>'') $versions->rename( $oldpath, $newpath ); - + if($oldpath<>'' && $newpath<>'') { + Storage::rename( $oldpath, $newpath ); + } + } } - + } diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index b54bc4a4422969f8f8d74cee253c03faa60b6cb8..12f8fdaa0dceab101bc885e74ca6f3616bdd3a01 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -19,53 +19,73 @@ class Storage { const DEFAULTENABLED=true; const DEFAULTMAXSIZE=50; // unit: percentage; 50% of available disk space/quota - + private static $max_versions_per_interval = array( - 1 => array('intervalEndsAfter' => 10, //first 10sec, one version every 2sec - 'step' => 2), - 2 => array('intervalEndsAfter' => 60, //next minute, one version every 10sec - 'step' => 10), - 3 => array('intervalEndsAfter' => 3600, //next hour, one version every minute - 'step' => 60), - 4 => array('intervalEndsAfter' => 86400, //next 24h, one version every hour - 'step' => 3600), - 5 => array('intervalEndsAfter' => 2592000, //next 30days, one version per day - 'step' => 86400), - 6 => array('intervalEndsAfter' => -1, //until the end one version per week - 'step' => 604800), - ); - - private static function getUidAndFilename($filename) - { - if (\OCP\App::isEnabled('files_sharing') - && substr($filename, 0, 7) == '/Shared' - && $source = \OCP\Share::getItemSharedWith('file', - substr($filename, 7), - \OC_Share_Backend_File::FORMAT_SHARED_STORAGE)) { - $filename = $source['path']; - $pos = strpos($filename, '/files', 1); - $uid = substr($filename, 1, $pos - 1); - $filename = substr($filename, $pos + 6); - } else { - $uid = \OCP\User::getUser(); + //first 10sec, one version every 2sec + 1 => array('intervalEndsAfter' => 10, 'step' => 2), + //next minute, one version every 10sec + 2 => array('intervalEndsAfter' => 60, 'step' => 10), + //next hour, one version every minute + 3 => array('intervalEndsAfter' => 3600, 'step' => 60), + //next 24h, one version every hour + 4 => array('intervalEndsAfter' => 86400, 'step' => 3600), + //next 30days, one version per day + 5 => array('intervalEndsAfter' => 2592000, 'step' => 86400), + //until the end one version per week + 6 => array('intervalEndsAfter' => -1, 'step' => 604800), + ); + + public static function getUidAndFilename($filename) { + $uid = \OC\Files\Filesystem::getOwner($filename); + \OC\Files\Filesystem::initMountPoints($uid); + if ( $uid != \OCP\User::getUser() ) { + $info = \OC\Files\Filesystem::getFileInfo($filename); + $ownerView = new \OC\Files\View('/'.$uid.'/files'); + $filename = $ownerView->getPath($info['fileid']); } return array($uid, $filename); } + /** + * get current size of all versions from a given user + * + * @param $user user who owns the versions + * @return mixed versions size or false if no versions size is stored + */ + private static function getVersionsSize($user) { + $query = \OC_DB::prepare('SELECT size FROM *PREFIX*files_versions WHERE user=?'); + $result = $query->execute(array($user))->fetchAll(); + + if ($result) { + return $result[0]['size']; + } + return false; + } + + /** + * write to the database how much space is in use for versions + * + * @param $user owner of the versions + * @param $size size of the versions + */ + private static function setVersionsSize($user, $size) { + if ( self::getVersionsSize($user) === false) { + $query = \OC_DB::prepare('INSERT INTO *PREFIX*files_versions (size, user) VALUES (?, ?)'); + }else { + $query = \OC_DB::prepare('UPDATE *PREFIX*files_versions SET size=? WHERE user=?'); + } + $query->execute(array($size, $user)); + } + /** * store a new version of a file. */ - public function store($filename) { + public static function store($filename) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { list($uid, $filename) = self::getUidAndFilename($filename); - $files_view = new \OC\Files\View('/'.\OCP\User::getUser() .'/files'); - $users_view = new \OC\Files\View('/'.\OCP\User::getUser()); - //check if source file already exist as version to avoid recursions. - // todo does this check work? - if ($users_view->file_exists($filename)) { - return false; - } + $files_view = new \OC\Files\View('/'.$uid .'/files'); + $users_view = new \OC\Files\View('/'.$uid); // check if filename is a directory if($files_view->is_dir($filename)) { @@ -85,17 +105,19 @@ class Storage { } // store a new version of a file - $result = $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); - if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { + $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); + $versionsSize = self::getVersionsSize($uid); + if ( $versionsSize === false || $versionsSize < 0 ) { $versionsSize = self::calculateSize($uid); } + $versionsSize += $users_view->filesize('files'.$filename); - + // expire old revisions if necessary $newSize = self::expire($filename, $versionsSize); - - if ( $newSize != $versionsSize ) { - \OCP\Config::setAppValue('files_versions', 'size', $versionsSize); + + if ( $newSize != $versionsSize ) { + self::setVersionsSize($uid, $newSize); } } } @@ -106,43 +128,43 @@ class Storage { */ public static function delete($filename) { list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC_FilesystemView('/'.$uid .'/files_versions'); - + $versions_fileview = new \OC\Files\View('/'.$uid .'/files_versions'); + $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v'; - if( ($versions = self::getVersions($filename)) ) { - if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { + if( ($versions = self::getVersions($uid, $filename)) ) { + $versionsSize = self::getVersionsSize($uid); + if ( $versionsSize === false || $versionsSize < 0 ) { $versionsSize = self::calculateSize($uid); } foreach ($versions as $v) { unlink($abs_path . $v['version']); $versionsSize -= $v['size']; } - \OCP\Config::setAppValue('files_versions', 'size', $versionsSize); + self::setVersionsSize($uid, $versionsSize); } } - + /** * rename versions of a file */ public static function rename($oldpath, $newpath) { list($uid, $oldpath) = self::getUidAndFilename($oldpath); list($uidn, $newpath) = self::getUidAndFilename($newpath); - $versions_view = new \OC_FilesystemView('/'.$uid .'/files_versions'); - $files_view = new \OC_FilesystemView('/'.$uid .'/files'); + $versions_view = new \OC\Files\View('/'.$uid .'/files_versions'); + $files_view = new \OC\Files\View('/'.$uid .'/files'); $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_view->getAbsolutePath('').$newpath; - + if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) { $versions_view->rename($oldpath, $newpath); - } else if ( ($versions = Storage::getVersions($oldpath)) ) { + } else if ( ($versions = Storage::getVersions($uid, $oldpath)) ) { $info=pathinfo($abs_newpath); if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true); - $versions = Storage::getVersions($oldpath); foreach ($versions as $v) { $versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']); } } } - + /** * rollback to an old version of a file. */ @@ -152,14 +174,14 @@ class Storage { list($uid, $filename) = self::getUidAndFilename($filename); $users_view = new \OC\Files\View('/'.$uid); $versionCreated = false; - + //first create a new version $version = 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename); if ( !$users_view->file_exists($version)) { $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); $versionCreated = true; } - + // rollback if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) { $users_view->touch('files'.$filename, $revision); @@ -177,23 +199,27 @@ class Storage { /** * @brief get a list of all available versions of a file in descending chronological order + * @param $uid user id from the owner of the file * @param $filename file to find versions of, relative to the user files dir * @param $count number of versions to return * @returns array */ - public static function getVersions( $filename, $count = 0 ) { + public static function getVersions($uid, $filename, $count = 0 ) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { - list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions'); + $versions_fileview = new \OC\Files\View('/' . $uid . '/files_versions'); - $versionsName = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename); + $versionsName = \OC_Filesystem::normalizePath(\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename)); $versions = array(); // fetch for old versions - $matches = glob( $versionsName.'.v*' ); + $matches = glob(preg_quote($versionsName).'.v*' ); + + if ( !$matches ) { + return $versions; + } sort( $matches ); - $files_view = new \OC_FilesystemView('/'.$uid.'/files'); + $files_view = new \OC\Files\View('/'.$uid.'/files'); $local_file = $files_view->getLocalFile($filename); $local_file_md5 = \md5_file( $local_file ); @@ -244,24 +270,27 @@ class Storage { */ private static function calculateSize($uid) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { - $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); + $versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions'); $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); - - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); - + + $iterator = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($versionsRoot), + \RecursiveIteratorIterator::CHILD_FIRST + ); + $size = 0; - + foreach ($iterator as $path) { if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) { $relpath = substr($path, strlen($versionsRoot)-1); $size += $versions_fileview->filesize($relpath); } } - + return $size; } } - + /** * @brief returns all stored file versions from a given user * @param $uid id to the user @@ -269,26 +298,29 @@ class Storage { */ private static function getAllVersions($uid) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { - $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); + $versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions'); $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); - - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST); - + + $iterator = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($versionsRoot), + \RecursiveIteratorIterator::CHILD_FIRST + ); + $versions = array(); - + foreach ($iterator as $path) { if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) { $relpath = substr($path, strlen($versionsRoot)-1); $versions[$match[1].'#'.$relpath] = array('path' => $relpath, 'timestamp' => $match[1]); } } - + ksort($versions); - + $i = 0; - + $result = array(); - + foreach( $versions as $key => $value ) { $i++; $size = $versions_fileview->filesize($value['path']); @@ -297,14 +329,14 @@ class Storage { $result['all'][$key]['version'] = $value['timestamp']; $result['all'][$key]['path'] = $filename; $result['all'][$key]['size'] = $size; - + $filename = substr($value['path'], 0, -strlen($value['timestamp'])-2); $result['by_file'][$filename][$key]['version'] = $value['timestamp']; $result['by_file'][$filename][$key]['path'] = $filename; $result['by_file'][$filename][$key]['size'] = $size; - + } - + return $result; } } @@ -314,68 +346,71 @@ class Storage { */ private static function expire($filename, $versionsSize = null) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions'); - + list($uid, $filename) = self::getUidAndFilename($filename); + $versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions'); + // get available disk space for user - $quota = \OCP\Util::computerFileSize(\OC_Preferences::getValue($uid, 'files', 'quota')); - if ( $quota == null ) { - $quota = \OCP\Util::computerFileSize(\OC_Appconfig::getValue('files', 'default_quota')); + $quota = \OC_Preferences::getValue($uid, 'files', 'quota'); + if ( $quota === null ) { + $quota = \OC_Appconfig::getValue('files', 'default_quota'); } - if ( $quota == null ) { - $quota = \OC\Files\Filesystem::free_space('/'); + if ( $quota === null ) { + $quota = \OC\Files\Filesystem::free_space('/') / count(\OCP\User::getUsers()); + } else { + $quota = \OCP\Util::computerFileSize($quota); } - + // make sure that we have the current size of the version history if ( $versionsSize === null ) { - if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) { + $versionsSize = self::getVersionsSize($uid); + if ( $versionsSize === false || $versionsSize < 0 ) { $versionsSize = self::calculateSize($uid); } } // calculate available space for version history - $files_view = new \OC_FilesystemView('/'.$uid.'/files'); + $files_view = new \OC\Files\View('/'.$uid.'/files'); $rootInfo = $files_view->getFileInfo('/'); $free = $quota-$rootInfo['size']; // remaining free space for user if ( $free > 0 ) { $availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $versionsSize; // how much space can be used for versions } else { $availableSpace = $free-$versionsSize; - } + } - // after every 1000s run reduce the number of all versions not only for the current file + // after every 1000s run reduce the number of all versions not only for the current file $random = rand(0, 1000); if ($random == 0) { $result = Storage::getAllVersions($uid); $versions_by_file = $result['by_file']; $all_versions = $result['all']; } else { - $all_versions = Storage::getVersions($filename); + $all_versions = Storage::getVersions($uid, $filename); $versions_by_file[$filename] = $all_versions; } - + $time = time(); - + // it is possible to expire versions from more than one file // iterate through all given files foreach ($versions_by_file as $filename => $versions) { $versions = array_reverse($versions); // newest version first - + $interval = 1; - $step = Storage::$max_versions_per_interval[$interval]['step']; + $step = Storage::$max_versions_per_interval[$interval]['step']; if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) { $nextInterval = -1; } else { $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter']; } - + $firstVersion = reset($versions); $firstKey = key($versions); $prevTimestamp = $firstVersion['version']; $nextVersion = $firstVersion['version'] - $step; $remaining_versions[$firstKey] = $firstVersion; unset($versions[$firstKey]); - + foreach ($versions as $key => $version) { $newInterval = true; while ( $newInterval ) { @@ -405,11 +440,11 @@ class Storage { $prevTimestamp = $version['version']; } } - + // check if enough space is available after versions are rearranged. // if not we delete the oldest versions until we meet the size limit for versions $numOfVersions = count($all_versions); - $i = 0; + $i = 0; while ($availableSpace < 0) { if ($i = $numOfVersions-2) break; // keep at least the last version $versions_fileview->unlink($all_versions[$i]['path'].'.v'.$all_versions[$i]['version']); @@ -417,10 +452,10 @@ class Storage { $availableSpace += $all_versions[$i]['size']; $i++; } - + return $versionsSize; // finally return the new size of the version history } - + return false; } } diff --git a/apps/files_versions/settings.php b/apps/files_versions/settings.php deleted file mode 100644 index f2873b8f7c2cfebeaf0b23e20e763f3d23fe455b..0000000000000000000000000000000000000000 --- a/apps/files_versions/settings.php +++ /dev/null @@ -1,9 +0,0 @@ -fetchPage(); diff --git a/apps/files_versions/templates/history.php b/apps/files_versions/templates/history.php index 850ece89c98fc30277d22bbc785e57e8dd61da94..c450af66ad587b1d6aac095fd58617cc87783bd2 100644 --- a/apps/files_versions/templates/history.php +++ b/apps/files_versions/templates/history.php @@ -22,7 +22,8 @@ if( isset( $_['message'] ) ) { foreach ( $_['versions'] as $v ) { echo ' '; echo OCP\Util::formatDate( doubleval($v['version']) ); - echo ' Revert

'; + echo ' Revert

'; if ( $v['cur'] ) { echo ' (Current)'; } diff --git a/apps/files_versions/templates/settings.php b/apps/files_versions/templates/settings.php deleted file mode 100644 index bfca8366f5da50d78ce670fdcf9d088f35ca306f..0000000000000000000000000000000000000000 --- a/apps/files_versions/templates/settings.php +++ /dev/null @@ -1,6 +0,0 @@ - -
- t('Files Versioning');?> - />
-
- diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php index b7d633a049d275d7d88cd50e34600866f3b7d75d..ade57110d346b8986e724e5100d1f7e2b0064f1a 100644 --- a/apps/user_ldap/ajax/deleteConfiguration.php +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -27,9 +27,9 @@ OCP\JSON::checkAppEnabled('user_ldap'); OCP\JSON::callCheck(); $prefix = $_POST['ldap_serverconfig_chooser']; -if(\OCA\user_ldap\lib\Helper::deleteServerConfiguration($prefix)){ +if(\OCA\user_ldap\lib\Helper::deleteServerConfiguration($prefix)) { OCP\JSON::success(); } else { $l=OC_L10N::get('user_ldap'); OCP\JSON::error(array('message' => $l->t('Failed to delete the server configuration'))); -} \ No newline at end of file +} diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index f8038e31469c545fd91682c9d975bab39c833989..7ce1258a7967e7b8cd711f021b4f0fe4346b213d 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -32,10 +32,13 @@ $connection = new \OCA\user_ldap\lib\Connection('', null); if($connection->setConfiguration($_POST)) { //Configuration is okay if($connection->bind()) { - OCP\JSON::success(array('message' => $l->t('The configuration is valid and the connection could be established!'))); + OCP\JSON::success(array('message' + => $l->t('The configuration is valid and the connection could be established!'))); } else { - OCP\JSON::error(array('message' => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.'))); + OCP\JSON::error(array('message' + => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.'))); } } else { - OCP\JSON::error(array('message' => $l->t('The configuration is invalid. Please look in the ownCloud log for further details.'))); + OCP\JSON::error(array('message' + => $l->t('The configuration is invalid. Please look in the ownCloud log for further details.'))); } diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index dec87684c9e52d7d4a1d31a7a2c86935370fb826..89410b5ef07e821cae7046c55197c98bda73a409 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -51,5 +51,7 @@ $entry = array( OCP\Backgroundjob::addRegularTask('OCA\user_ldap\lib\Jobs', 'updateGroups'); if(OCP\App::isEnabled('user_webdavauth')) { - OCP\Util::writeLog('user_ldap', 'user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour', OCP\Util::WARN); + OCP\Util::writeLog('user_ldap', + 'user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour', + OCP\Util::WARN); } diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml index 53269edfb34b179d426da751810b74efb681d156..03a4fa523324d69f5aafe19dce0a7f217bc0cdc0 100644 --- a/apps/user_ldap/appinfo/info.xml +++ b/apps/user_ldap/appinfo/info.xml @@ -7,7 +7,7 @@ This app is not compatible to the WebDAV user backend. AGPL Dominik Schmidt and Arthur Schiwon - 4.91 + 4.93 true diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index f9681e38e6813c38dfa7f2178bc69dd9b03d3890..2fcbf1902ac54b9c65479047b4457ff10c2ee0aa 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -58,7 +58,9 @@ foreach($objects as $object) { try { $updateQuery->execute(array($newDN, $uuid, $dn['ldap_dn'])); } catch(Exception $e) { - \OCP\Util::writeLog('user_ldap', 'Could not update '.$object.' '.$dn['ldap_dn'].' in the mappings table. ', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Could not update '.$object.' '.$dn['ldap_dn'].' in the mappings table. ', + \OCP\Util::WARN); } } @@ -87,4 +89,8 @@ if(!isset($connector)) { } //it is required, that connections do have ldap_configuration_active setting stored in the database $connector->getConfiguration(); -$connector->saveConfiguration(); \ No newline at end of file +$connector->saveConfiguration(); + +// we don't save it anymore, was a well-meant bad idea. Clean up database. +$query = OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ? AND `configkey` = ?'); +$query->execute(array('user_ldap' , 'homedir')); diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version index 705e30728e00e9b7a903ac90292ef4270ba7603d..e4d93c8d610789d4b4c12e5f8be7d4c8fc6a489b 100644 --- a/apps/user_ldap/appinfo/version +++ b/apps/user_ldap/appinfo/version @@ -1 +1 @@ -0.3.9.0 \ No newline at end of file +0.3.9.4 \ No newline at end of file diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 02ceecaea0bd3492678ce14394050f3289b49335..4fd4c636913cffa5ca04eca62d87e4d40ef88cf6 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -177,7 +177,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { if($isMemberUid) { //we got uids, need to get their DNs to 'tranlsate' them to usernames $filter = $this->combineFilterWithAnd(array( - \OCP\Util::mb_str_replace('%uid', $member, $this->connection>ldapLoginFilter, 'UTF-8'), + \OCP\Util::mb_str_replace('%uid', $member, + $this->connection>ldapLoginFilter, 'UTF-8'), $this->getFilterPartForUserSearch($search) )); $ldap_users = $this->fetchListOfUsers($filter, 'dn'); @@ -188,7 +189,9 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { } else { //we got DNs, check if we need to filter by search or we can give back all of them if(!empty($search)) { - if(!$this->readAttribute($member, $this->connection->ldapUserDisplayName, $this->getFilterPartForUserSearch($search))) { + if(!$this->readAttribute($member, + $this->connection->ldapUserDisplayName, + $this->getFilterPartForUserSearch($search))) { continue; } } @@ -225,7 +228,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { return $ldap_groups; } - // if we'd pass -1 to LDAP search, we'd end up in a Protocol error. With a limit of 0, we get 0 results. So we pass null. + // if we'd pass -1 to LDAP search, we'd end up in a Protocol + // error. With a limit of 0, we get 0 results. So we pass null. if($limit <= 0) { $limit = null; } @@ -234,7 +238,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { $this->getFilterPartForGroupSearch($search) )); \OCP\Util::writeLog('user_ldap', 'getGroups Filter '.$filter, \OCP\Util::DEBUG); - $ldap_groups = $this->fetchListOfGroups($filter, array($this->connection->ldapGroupDisplayName, 'dn'), $limit, $offset); + $ldap_groups = $this->fetchListOfGroups($filter, array($this->connection->ldapGroupDisplayName, 'dn'), + $limit, $offset); $ldap_groups = $this->ownCloudGroupNames($ldap_groups); $this->connection->writeToCache($cachekey, $ldap_groups); @@ -282,7 +287,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { * compared with OC_USER_BACKEND_CREATE_USER etc. */ public function implementsActions($actions) { - //always returns false, because possible actions are modifying actions. We do not write to LDAP, at least for now. + //always returns false, because possible actions are modifying + // actions. We do not write to LDAP, at least for now. return false; } -} \ No newline at end of file +} diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php index 6c347eab8799e6284b4facc2e72c191ca26dd24f..69dfc8961792f1c28f914ec45f4b8907398869e6 100644 --- a/apps/user_ldap/l10n/bn_BD.php +++ b/apps/user_ldap/l10n/bn_BD.php @@ -18,7 +18,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।", "Port" => "পোর্ট", "Use TLS" => "TLS ব্যবহার কর", -"Do not use it for SSL connections, it will fail." => "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।", "Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)", "Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।", diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php index 5cf03b6787b72526d92e4f6dab8b8a351a49353b..e4f27e25a7fab324d162cf5d6dfc1cab603a982d 100644 --- a/apps/user_ldap/l10n/ca.php +++ b/apps/user_ldap/l10n/ca.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Desactiva el servidor principal", "When switched on, ownCloud will only connect to the replica server." => "Quan està connectat, ownCloud només es connecta al servidor de la rèplica.", "Use TLS" => "Usa TLS", -"Do not use it for SSL connections, it will fail." => "No ho useu en connexions SSL, fallarà.", +"Do not use it additionally for LDAPS connections, it will fail." => "No ho useu adicionalment per a conexions LDAPS, fallarà.", "Case insensitve 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.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud.", diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php index 0aace1f74107a80aeca911df28ba1b1ecabdfdbe..4c74f195cf44d5718bd2fba58f234cd0e1e1bd4a 100644 --- a/apps/user_ldap/l10n/cs_CZ.php +++ b/apps/user_ldap/l10n/cs_CZ.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Zakázat hlavní serveru", "When switched on, ownCloud will only connect to the replica server." => "Při zapnutí se ownCloud připojí pouze k záložnímu serveru", "Use TLS" => "Použít TLS", -"Do not use it for SSL connections, it will fail." => "Nepoužívejte pro připojení pomocí SSL, připojení selže.", +"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívejte pro spojení LDAP, selže.", "Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)", "Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud", diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php index dd7fb8a1a0ca9c0d9007bb0458b9f4f938c2c4a3..9329c4e8a2416f1db1fd0993a1d6f28f76f62c0d 100644 --- a/apps/user_ldap/l10n/da.php +++ b/apps/user_ldap/l10n/da.php @@ -14,7 +14,6 @@ "Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.", "Port" => "Port", "Use TLS" => "Brug TLS", -"Do not use it for SSL connections, it will fail." => "Brug ikke til SSL forbindelser, da den vil fejle.", "Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering", "Not recommended, use for testing only." => "Anbefales ikke, brug kun for at teste.", "User Display Name Field" => "User Display Name Field", diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index df680465c98eb3269d7207a4bf3ff4c2c0e10d63..6217a6d4821ab8b27d01d03938134e5951beec78 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -1,8 +1,20 @@ "Löschen der Serverkonfiguration fehlgeschlagen", +"The configuration is valid and the connection could be established!" => "Die Konfiguration war erfolgreich, die Verbindung konnte hergestellt werden!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, bitte sehen Sie für weitere Details im ownCloud Log nach", "Deletion failed" => "Löschen fehlgeschlagen", +"Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", "Keep settings?" => "Einstellungen beibehalten?", +"Cannot add server configuration" => "Serverkonfiguration konnte nicht hinzugefügt werden.", +"Connection test succeeded" => "Verbindungstest erfolgreich", +"Connection test failed" => "Verbindungstest fehlgeschlagen", +"Do you really want to delete the current Server Configuration?" => "Wollen Sie die aktuelle Serverkonfiguration wirklich löschen?", +"Confirm Deletion" => "Löschung bestätigen", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", -"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren.", +"Server configuration" => "Serverkonfiguration", +"Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://", "Base DN" => "Basis-DN", @@ -21,23 +33,36 @@ "Group Filter" => "Gruppen-Filter", "Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"", +"Connection Settings" => "Verbindungseinstellungen", +"Configuration Active" => "Konfiguration aktiv", +"When unchecked, this configuration will be skipped." => "Konfiguration wird übersprungen wenn deaktiviert", "Port" => "Port", +"Backup (Replica) Host" => "Backup Host (Kopie)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", +"Backup (Replica) Port" => "Backup Port", +"Disable Main Server" => "Hauptserver deaktivieren", +"When switched on, ownCloud will only connect to the replica server." => "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden.", "Use TLS" => "Nutze TLS", -"Do not use it for SSL connections, it will fail." => "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen.", +"Do not use it additionally for LDAPS connections, it will fail." => "Benutze es nicht zusammen mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", +"Directory Settings" => "Ordnereinstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", "Base User Tree" => "Basis-Benutzerbaum", "One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", +"User Search Attributes" => "Benutzersucheigenschaften", +"Optional; one attribute per line" => "Optional; eine Eigenschaft pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", "Base Group Tree" => "Basis-Gruppenbaum", "One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", +"Group Search Attributes" => "Gruppensucheigenschaften", "Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", +"Special Attributes" => "Spezielle Eigenschaften", "in bytes" => "in Bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.", "Help" => "Hilfe" diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php index 1b47cfec2a661979545421e1b142f171262f2dc5..c88ed22b4fa61d798bd85a8b02745b24e234030d 100644 --- a/apps/user_ldap/l10n/de_DE.php +++ b/apps/user_ldap/l10n/de_DE.php @@ -1,20 +1,20 @@ "Das Löschen der Server-Konfiguration schlug fehl", -"The configuration is valid and the connection could be established!" => "Die Konfiguration ist valide und eine Verbindung konnte hergestellt werden!", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen.", +"The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig, aber das Herstellen der Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig. Weitere Details können Sie im ownCloud-Log nachlesen.", "Deletion failed" => "Löschen fehlgeschlagen", -"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?", +"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Serverkonfiguration übernommen werden?", "Keep settings?" => "Einstellungen behalten?", -"Cannot add server configuration" => "Das Hinzufügen der Server-Konfiguration schlug fehl", -"Connection test succeeded" => "Verbindungs-Test erfolgreich", -"Connection test failed" => "Verbindungs-Test fehlgeschlagen", -"Do you really want to delete the current Server Configuration?" => "Möchten Sie wirklich die Server-Konfiguration löschen?", +"Cannot add server configuration" => "Das Hinzufügen der Serverkonfiguration schlug fehl", +"Connection test succeeded" => "Verbindungstest erfolgreich", +"Connection test failed" => "Verbindungstest fehlgeschlagen", +"Do you really want to delete the current Server Configuration?" => "Möchten Sie die Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", -"Server configuration" => "Server-Konfiguration", -"Add Server Configuration" => "Server-Konfiguration hinzufügen", +"Server configuration" => "Serverkonfiguration", +"Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", "Base DN" => "Basis-DN", @@ -33,36 +33,36 @@ "Group Filter" => "Gruppen-Filter", "Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"", -"Connection Settings" => "Verbindungs-Einstellungen", +"Connection Settings" => "Verbindungseinstellungen", "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", "Port" => "Port", "Backup (Replica) Host" => "Back-Up (Replikation) Host", -"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein.", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup Host an. Es muss ein Replikat des Haupt- LDAP/AD Servers sein.", "Backup (Replica) Port" => "Back-Up (Replikation) Port", "Disable Main Server" => "Hauptserver deaktivieren", -"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden.", +"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet wird sich die ownCloud nur mit dem Replikat-Server verbinden.", "Use TLS" => "Nutze TLS", -"Do not use it for SSL connections, it will fail." => "Verwenden Sie dies nicht für SSL-Verbindungen, es wird fehlschlagen.", +"Do not use it additionally for LDAPS connections, it will fail." => "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", -"Directory Settings" => "Verzeichnis-Einstellungen", +"Directory Settings" => "Verzeichniseinstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", "Base User Tree" => "Basis-Benutzerbaum", "One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", "User Search Attributes" => "Benutzer-Suche Eigenschaften", -"Optional; one attribute per line" => "Optional; Ein Attribut pro Zeile", +"Optional; one attribute per line" => "Optional; ein Attribut pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", "Base Group Tree" => "Basis-Gruppenbaum", "One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", "Group Search Attributes" => "Gruppen-Suche Eigenschaften", "Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", -"Special Attributes" => "besondere Eigenschaften", +"Special Attributes" => "Besondere Eigenschaften", "in bytes" => "in Bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.", "Help" => "Hilfe" diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php index 3951c94dfa74a698fd11f6bf31e4400762cfdd99..96ec818043720609a18b29cc0732afe1422ca3fe 100644 --- a/apps/user_ldap/l10n/el.php +++ b/apps/user_ldap/l10n/el.php @@ -1,6 +1,19 @@ "Αποτυχία διαγραφής ρυθμίσεων διακομιστή", +"The configuration is valid and the connection could be established!" => "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Μη έγκυρες ρυθμίσεις. Παρακαλώ ελέγξτε τις καταγραφές του ownCloud για περισσότερες λεπτομέρειες.", "Deletion failed" => "Η διαγραφή απέτυχε", +"Keep settings?" => "Διατήρηση ρυθμίσεων;", +"Cannot add server configuration" => "Αδυναμία προσθήκης ρυθμίσεων διακομιστή", +"Connection test succeeded" => "Επιτυχημένη δοκιμαστική σύνδεση", +"Connection test failed" => "Αποτυχημένη δοκιμαστική σύνδεσης.", +"Do you really want to delete the current Server Configuration?" => "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;", +"Confirm Deletion" => "Επιβεβαίωση Διαγραφής", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Προσοχή: Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Προσοχή: Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει.", +"Server configuration" => "Ρυθμίσεις Διακομιστή", +"Add Server Configuration" => "Προσθήκη Ρυθμίσεων Διακομιστή", "Host" => "Διακομιστής", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://", "Base DN" => "Base DN", @@ -18,14 +31,15 @@ "Group Filter" => "Group Filter", "Defines the filter to apply, when retrieving groups." => "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\".", +"Connection Settings" => "Ρυθμίσεις Σύνδεσης", "Port" => "Θύρα", "Use TLS" => "Χρήση TLS", -"Do not use it for SSL connections, it will fail." => "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει.", "Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ", "Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας.", "Not recommended, use for testing only." => "Δεν προτείνεται, χρήση μόνο για δοκιμές.", "in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.", +"Directory Settings" => "Ρυθμίσεις Καταλόγου", "User Display Name Field" => "Πεδίο Ονόματος Χρήστη", "The LDAP attribute to use to generate the user`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud.", "Base User Tree" => "Base User Tree", diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php index 2a2b70603c5156e2c698cfbc2e73958c3029b3e3..3ffcbddb3e3652e6d2696ed333520bef2b883414 100644 --- a/apps/user_ldap/l10n/eo.php +++ b/apps/user_ldap/l10n/eo.php @@ -17,7 +17,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ajna referencilo, ekz.: \"objectClass=posixGroup\".", "Port" => "Pordo", "Use TLS" => "Uzi TLS-on", -"Do not use it for SSL connections, it will fail." => "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos.", "Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)", "Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo.", diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php index 3740d13e2244b2f996db124cc5acd2662a9d4d14..c0a444c0c7d1666d58eeaadd1c82c51d9d799855 100644 --- a/apps/user_ldap/l10n/es.php +++ b/apps/user_ldap/l10n/es.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Deshabilitar servidor principal", "When switched on, ownCloud will only connect to the replica server." => "Cuando se inicie, ownCloud unicamente estara conectado al servidor replica", "Use TLS" => "Usar TLS", -"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, habrá error.", +"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conecciones LDAPS, estas fallaran", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)", "Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.", diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php index 28bc318a52f15256e985114626a1c1b56d27e686..b0e7ec12b21b94cfb535e23cc9767a8690dc5b4f 100644 --- a/apps/user_ldap/l10n/es_AR.php +++ b/apps/user_ldap/l10n/es_AR.php @@ -1,7 +1,10 @@ "Fallo al borrar la configuración del servidor", "The configuration is valid and the connection could be established!" => "La configuración es valida y la conexión pudo ser establecida.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero el enlace falló. Por favor, comprobá la configuración del servidor y las credenciales.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, buscá en el log de ownCloud más detalles.", "Deletion failed" => "Error al borrar", +"Take over settings from recent server configuration?" => "Tomar los valores de la anterior configuración de servidor?", "Keep settings?" => "¿Mantener preferencias?", "Cannot add server configuration" => "No se pudo añadir la configuración del servidor", "Connection test succeeded" => "El este de conexión ha sido completado satisfactoriamente", @@ -32,10 +35,15 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\".", "Connection Settings" => "Configuración de Conección", "Configuration Active" => "Configuración activa", +"When unchecked, this configuration will be skipped." => "Si no está seleccionada, esta configuración será omitida.", "Port" => "Puerto", +"Backup (Replica) Host" => "Host para copia de seguridad (réplica)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP/AD.", +"Backup (Replica) Port" => "Puerto para copia de seguridad (réplica)", "Disable Main Server" => "Deshabilitar el Servidor Principal", +"When switched on, ownCloud will only connect to the replica server." => "Al comenzar, ownCloud se conectará únicamente al servidor réplica", "Use TLS" => "Usar TLS", -"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, dará error.", +"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conexiones LDAPS, las mismas fallarán", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud.", @@ -46,10 +54,13 @@ "The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.", "Base User Tree" => "Árbol base de usuario", "One User Base DN per line" => "Una DN base de usuario por línea", +"User Search Attributes" => "Atributos de la búsqueda de usuario", +"Optional; one attribute per line" => "Opcional; un atributo por linea", "Group Display Name Field" => "Campo de nombre de grupo a mostrar", "The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.", "Base Group Tree" => "Árbol base de grupo", "One Group Base DN per line" => "Una DN base de grupo por línea", +"Group Search Attributes" => "Atributos de búsqueda de grupo", "Group-Member association" => "Asociación Grupo-Miembro", "Special Attributes" => "Atributos Especiales", "in bytes" => "en bytes", diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php index ba03a8a80938fe83d3e4f12568fa2140274b49fa..91eb38c7c5f7b90078958f2dad13fd73eb2e3ffe 100644 --- a/apps/user_ldap/l10n/et_EE.php +++ b/apps/user_ldap/l10n/et_EE.php @@ -19,7 +19,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\".", "Port" => "Port", "Use TLS" => "Kasutaja TLS", -"Do not use it for SSL connections, it will fail." => "Ära kasuta seda SSL ühenduse jaoks, see ei toimi.", "Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)", "Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse.", diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php index 2aad2363ce9330f1bd2febc5bfe63ea00fb25cfc..46d93dc3a44b63950c12143d5e0f0f8df87f1c1b 100644 --- a/apps/user_ldap/l10n/eu.php +++ b/apps/user_ldap/l10n/eu.php @@ -1,7 +1,20 @@ "Zerbitzariaren konfigurazioa ezabatzeak huts egin du", +"The configuration is valid and the connection could be established!" => "Konfigurazioa egokia da eta konexioa ezarri daiteke!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurazioa ongi dago, baina Bind-ek huts egin du. Mesedez egiaztatu zerbitzariaren ezarpenak eta kredentzialak.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurazioa ez dago ongi. Mesedez ikusi ownCloud-en egunerokoa informazio gehiago eskuratzeko.", "Deletion failed" => "Ezabaketak huts egin du", +"Take over settings from recent server configuration?" => "oraintsuko zerbitzariaren konfigurazioaren ezarpenen ardura hartu?", +"Keep settings?" => "Mantendu ezarpenak?", +"Cannot add server configuration" => "Ezin da zerbitzariaren konfigurazioa gehitu", +"Connection test succeeded" => "Konexio froga ongi burutu da", +"Connection test failed" => "Konexio frogak huts egin du", +"Do you really want to delete the current Server Configuration?" => "Ziur zaude Zerbitzariaren Konfigurazioa ezabatu nahi duzula?", +"Confirm Deletion" => "Baieztatu Ezabatzea", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Abisua: user_ldap eta user_webdavauth aplikazioak bateraezinak dira. Portaera berezia izan dezakezu. Mesedez eskatu zure sistema kudeatzaileari bietako bat desgaitzeko.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.", +"Server configuration" => "Zerbitzariaren konfigurazioa", +"Add Server Configuration" => "Gehitu Zerbitzariaren Konfigurazioa", "Host" => "Hostalaria", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://", "Base DN" => "Oinarrizko DN", @@ -20,23 +33,36 @@ "Group Filter" => "Taldeen iragazkia", "Defines the filter to apply, when retrieving groups." => "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "txantiloirik gabe, adb. \"objectClass=posixGroup\".", +"Connection Settings" => "Konexio Ezarpenak", +"Configuration Active" => "Konfigurazio Aktiboa", +"When unchecked, this configuration will be skipped." => "Markatuta ez dagoenean, konfigurazio hau ez da kontutan hartuko.", "Port" => "Portua", +"Backup (Replica) Host" => "Babeskopia (Replica) Ostalaria", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Eman babeskopia ostalari gehigarri bat. LDAP/AD zerbitzari nagusiaren replica bat izan behar da.", +"Backup (Replica) Port" => "Babeskopia (Replica) Ataka", +"Disable Main Server" => "Desgaitu Zerbitzari Nagusia", +"When switched on, ownCloud will only connect to the replica server." => "Markatuta dagoenean, ownCloud bakarrik replica zerbitzarira konektatuko da.", "Use TLS" => "Erabili TLS", -"Do not use it for SSL connections, it will fail." => "Ez erabili SSL konexioetan, huts egingo du.", +"Do not use it additionally for LDAPS connections, it will fail." => "Ez erabili LDAPS konexioetarako, huts egingo du.", "Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)", "Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian.", "Not recommended, use for testing only." => "Ez da aholkatzen, erabili bakarrik frogak egiteko.", "in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.", +"Directory Settings" => "Karpetaren Ezarpenak", "User Display Name Field" => "Erabiltzaileen bistaratzeko izena duen eremua", "The LDAP attribute to use to generate the user`s ownCloud name." => "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua", "Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza", "One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko", +"User Search Attributes" => "Erabili Bilaketa Atributuak ", +"Optional; one attribute per line" => "Aukerakoa; atributu bat lerro bakoitzeko", "Group Display Name Field" => "Taldeen bistaratzeko izena duen eremua", "The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua", "Base Group Tree" => "Oinarrizko Talde Zuhaitza", "One Group Base DN per line" => "Talde DN Oinarri bat lerroko", +"Group Search Attributes" => "Taldekatu Bilaketa Atributuak ", "Group-Member association" => "Talde-Kide elkarketak", +"Special Attributes" => "Atributu Bereziak", "in bytes" => "bytetan", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.", "Help" => "Laguntza" diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php index 7ddd7dad5c36f3375a8c2ca0d580909c14055308..7816ef7c6f724602d292b5bbe11084ca4c161e90 100644 --- a/apps/user_ldap/l10n/fa.php +++ b/apps/user_ldap/l10n/fa.php @@ -1,8 +1,17 @@ "عملیات حذف پیکربندی سرور ناموفق ماند", +"The configuration is valid and the connection could be established!" => "پیکربندی معتبر است و ارتباط می تواند برقرار شود", "Deletion failed" => "حذف کردن انجام نشد", "Keep settings?" => "آیا تنظیمات ذخیره شود ؟", +"Connection test succeeded" => "تست اتصال با موفقیت انجام گردید", +"Connection test failed" => "تست اتصال ناموفق بود", +"Do you really want to delete the current Server Configuration?" => "آیا واقعا می خواهید پیکربندی کنونی سرور را حذف کنید؟", +"Confirm Deletion" => "تایید حذف", +"Server configuration" => "پیکربندی سرور", +"Add Server Configuration" => "افزودن پیکربندی سرور", "Host" => "میزبانی", "Password" => "رمز عبور", "Port" => "درگاه", +"in bytes" => "در بایت", "Help" => "راه‌نما" ); diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php index 4f8fd3f2d1730e73a0a6c988d66e8274cf8780df..bfbd6c78564b37b4e7a6f4ac58a21c757a1f8a8f 100644 --- a/apps/user_ldap/l10n/fi_FI.php +++ b/apps/user_ldap/l10n/fi_FI.php @@ -1,5 +1,10 @@ "Poisto epäonnistui", +"Keep settings?" => "Säilytetäänkö asetukset?", +"Cannot add server configuration" => "Palvelinasetusten lisäys epäonnistui", +"Connection test succeeded" => "Yhteystesti onnistui", +"Connection test failed" => "Yhteystesti epäonnistui", +"Confirm Deletion" => "Vahvista poisto", "Host" => "Isäntä", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://", "Base DN" => "Oletus DN", @@ -17,14 +22,16 @@ "Group Filter" => "Ryhmien suodatus", "Defines the filter to apply, when retrieving groups." => "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. ", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\".", +"Connection Settings" => "Yhteysasetukset", "Port" => "Portti", +"Disable Main Server" => "Poista pääpalvelin käytöstä", "Use TLS" => "Käytä TLS:ää", -"Do not use it for SSL connections, it will fail." => "Älä käytä SSL-yhteyttä varten, se epäonnistuu. ", "Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)", "Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi.", "Not recommended, use for testing only." => "Ei suositella, käytä vain testausta varten.", "in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.", +"Directory Settings" => "Hakemistoasetukset", "User Display Name Field" => "Käyttäjän näytettävän nimen kenttä", "The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä ", "Base User Tree" => "Oletuskäyttäjäpuu", diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php index 9bb350ea23c36e9725c279c10c48eca3119784a3..abe136356983e549bb928774fcd98a3680eb6ca8 100644 --- a/apps/user_ldap/l10n/fr.php +++ b/apps/user_ldap/l10n/fr.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Désactiver le serveur principal", "When switched on, ownCloud will only connect to the replica server." => "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué.", "Use TLS" => "Utiliser TLS", -"Do not use it for SSL connections, it will fail." => "Ne pas utiliser pour les connexions SSL, car cela échouera.", +"Do not use it additionally for LDAPS connections, it will fail." => "À ne pas utiliser pour les connexions LDAPS (cela échouera).", "Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)", "Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud.", diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php index a2531a40a838232a50565409ffdb742253ec5330..2d07f3215efbfe7b1c88ce6d16117ec81607522f 100644 --- a/apps/user_ldap/l10n/gl.php +++ b/apps/user_ldap/l10n/gl.php @@ -1,9 +1,24 @@ "Non foi posíbel eliminar a configuración do servidor", +"The configuration is valid and the connection could be established!" => "A configuración é correcta e pode estabelecerse a conexión.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", "Deletion failed" => "Fallou o borrado", +"Take over settings from recent server configuration?" => "Tomar os recentes axustes de configuración do servidor?", +"Keep settings?" => "Manter os axustes?", +"Cannot add server configuration" => "Non é posíbel engadir a configuración do servidor", +"Connection test succeeded" => "A proba de conexión foi satisfactoria", +"Connection test failed" => "A proba de conexión fracasou", +"Do you really want to delete the current Server Configuration?" => "Confirma que quere eliminar a configuración actual do servidor?", +"Confirm Deletion" => "Confirmar a eliminación", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: Os aplicativos user_ldap e user_webdavauth son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Aviso: O módulo PHP LDAP non está instalado, o servidor non funcionará. Consulte co administrador do sistema para instalalo.", +"Server configuration" => "Configuración do servidor", +"Add Server Configuration" => "Engadir a configuración do servidor", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://", "Base DN" => "DN base", +"One Base DN per line" => "Un DN base por liña", "You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»", "User DN" => "DN do usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros.", @@ -18,21 +33,36 @@ "Group Filter" => "Filtro de grupo", "Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar cando se recompilan os grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix».", +"Connection Settings" => "Axustes da conexión", +"Configuration Active" => "Configuración activa", +"When unchecked, this configuration will be skipped." => "Se está sen marcar, omítese esta configuración.", "Port" => "Porto", +"Backup (Replica) Host" => "Servidor da copia de seguranza (Réplica)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Indicar un servidor de copia de seguranza opcional. Debe ser unha réplica do servidor principal LDAP/AD.", +"Backup (Replica) Port" => "Porto da copia de seguranza (Réplica)", +"Disable Main Server" => "Desactivar o servidor principal", +"When switched on, ownCloud will only connect to the replica server." => "Cando está activado, ownCloud só se conectará ao servidor de réplica.", "Use TLS" => "Usar TLS", -"Do not use it for SSL connections, it will fail." => "Non empregalo para conexións SSL: fallará.", +"Do not use it additionally for LDAPS connections, it will fail." => "Non utilizalo ademais para conexións LDAPS xa que fallará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.", -"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud.", +"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importe o certificado SSL do servidor LDAP no seu servidor ownCloud.", "Not recommended, use for testing only." => "Non se recomenda. Só para probas.", "in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira a caché.", +"Directory Settings" => "Axustes do directorio", "User Display Name Field" => "Campo de mostra do nome de usuario", "The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud.", "Base User Tree" => "Base da árbore de usuarios", +"One User Base DN per line" => "Un DN base de usuario por liña", +"User Search Attributes" => "Atributos de busca do usuario", +"Optional; one attribute per line" => "Opcional; un atributo por liña", "Group Display Name Field" => "Campo de mostra do nome de grupo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud.", "Base Group Tree" => "Base da árbore de grupo", +"One Group Base DN per line" => "Un DN base de grupo por liña", +"Group Search Attributes" => "Atributos de busca do grupo", "Group-Member association" => "Asociación de grupos e membros", +"Special Attributes" => "Atributos especiais", "in bytes" => "en bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixar baleiro para o nome de usuario (predeterminado). Noutro caso, especifique un atributo LDAP/AD.", "Help" => "Axuda" diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php index 5c563b7b6f3cdcc987af135a07c74a44c12a551c..c9b0e282f1d26908fa3ab55e391f036f8083f1de 100644 --- a/apps/user_ldap/l10n/he.php +++ b/apps/user_ldap/l10n/he.php @@ -7,6 +7,7 @@ "User Login Filter" => "סנן כניסת משתמש", "User List Filter" => "סנן רשימת משתמשים", "Group Filter" => "סנן קבוצה", +"Port" => "פורט", "in seconds. A change empties the cache." => "בשניות. שינוי מרוקן את המטמון.", "in bytes" => "בבתים", "Help" => "עזרה" diff --git a/apps/user_ldap/l10n/hi.php b/apps/user_ldap/l10n/hi.php new file mode 100644 index 0000000000000000000000000000000000000000..60d4ea98e84abe1a2062f5e57fab5dc6f727d98d --- /dev/null +++ b/apps/user_ldap/l10n/hi.php @@ -0,0 +1,3 @@ + "सहयोग" +); diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php index 64de16fa65f248fe5c2d08092eb7a5538a041f5a..c7dfc125d7997f3c1d703a5773f27968e13aed70 100644 --- a/apps/user_ldap/l10n/hu_HU.php +++ b/apps/user_ldap/l10n/hu_HU.php @@ -1,7 +1,20 @@ "Nem sikerült törölni a kiszolgáló konfigurációját", +"The configuration is valid and the connection could be established!" => "A konfiguráció érvényes, és a kapcsolat létrehozható!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A konfiguráció érvényes, de a kapcsolat nem hozható létre. Kérem ellenőrizze a kiszolgáló beállításait, és az elérési adatokat.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Érvénytelen konfiguráció. További információkért nézze meg az ownCloud naplófájlját.", "Deletion failed" => "A törlés nem sikerült", +"Take over settings from recent server configuration?" => "Vegyük át a beállításokat az előző konfigurációból?", +"Keep settings?" => "Tartsuk meg a beállításokat?", +"Cannot add server configuration" => "Az új kiszolgáló konfigurációja nem hozható létre", +"Connection test succeeded" => "A kapcsolatellenőrzés eredménye: sikerült", +"Connection test failed" => "A kapcsolatellenőrzés eredménye: nem sikerült", +"Do you really want to delete the current Server Configuration?" => "Tényleg törölni szeretné a kiszolgáló beállításait?", +"Confirm Deletion" => "A törlés megerősítése", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Figyelem: a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!", +"Server configuration" => "A kiszolgálók beállításai", +"Add Server Configuration" => "Új kiszolgáló beállításának hozzáadása", "Host" => "Kiszolgáló", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "A protokoll előtag elhagyható, kivéve, ha SSL-t kíván használni. Ebben az esetben kezdje így: ldaps://", "Base DN" => "DN-gyökér", @@ -20,23 +33,36 @@ "Group Filter" => "A csoportok szűrője", "Defines the filter to apply, when retrieving groups." => "Ez a szűrő érvényes a csoportok listázásakor.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "itt ne használjunk változót, pl. \"objectClass=posixGroup\".", +"Connection Settings" => "Kapcsolati beállítások", +"Configuration Active" => "A beállítás aktív", +"When unchecked, this configuration will be skipped." => "Ha nincs kipipálva, ez a beállítás kihagyódik.", "Port" => "Port", +"Backup (Replica) Host" => "Másodkiszolgáló (replika)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen.", +"Backup (Replica) Port" => "A másodkiszolgáló (replika) portszáma", +"Disable Main Server" => "A fő szerver kihagyása", +"When switched on, ownCloud will only connect to the replica server." => "Ha ezt bekapcsoljuk, akkor az ownCloud csak a másodszerverekhez kapcsolódik.", "Use TLS" => "Használjunk TLS-t", -"Do not use it for SSL connections, it will fail." => "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!", +"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni.", "Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)", "Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!", "Not recommended, use for testing only." => "Nem javasolt, csak tesztelésre érdemes használni.", "in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.", +"Directory Settings" => "Címtár beállítások", "User Display Name Field" => "A felhasználónév mezője", "The LDAP attribute to use to generate the user`s ownCloud name." => "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban.", "Base User Tree" => "A felhasználói fa gyökere", "One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg", +"User Search Attributes" => "A felhasználók lekérdezett attribútumai", +"Optional; one attribute per line" => "Nem kötelező megadni, soronként egy attribútum", "Group Display Name Field" => "A csoport nevének mezője", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban.", "Base Group Tree" => "A csoportfa gyökere", "One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg", +"Group Search Attributes" => "A csoportok lekérdezett attribútumai", "Group-Member association" => "A csoporttagság attribútuma", +"Special Attributes" => "Különleges attribútumok", "in bytes" => "bájtban", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!", "Help" => "Súgó" diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php index 33e8cc70e937ff008337e5f3b5224716c5c898d4..5912789c85640cc78afcd098ec9ad1e52c8fd9c7 100644 --- a/apps/user_ldap/l10n/id.php +++ b/apps/user_ldap/l10n/id.php @@ -1,15 +1,69 @@ "Gagal menghapus konfigurasi server", +"The configuration is valid and the connection could be established!" => "Konfigurasi valid dan koneksi dapat dilakukan!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasi valid, tetapi Bind gagal. Silakan cek pengaturan server dan keamanan.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurasi salah. Silakan lihat log ownCloud untuk lengkapnya.", "Deletion failed" => "penghapusan gagal", +"Take over settings from recent server configuration?" => "Ambil alih pengaturan dari konfigurasi server saat ini?", +"Keep settings?" => "Biarkan pengaturan?", +"Cannot add server configuration" => "Gagal menambah konfigurasi server", +"Connection test succeeded" => "Tes koneksi sukses", +"Connection test failed" => "Tes koneksi gagal", +"Do you really want to delete the current Server Configuration?" => "Anda ingin menghapus Konfigurasi Server saat ini?", +"Confirm Deletion" => "Konfirmasi Penghapusan", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Peringatan:/b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami kejadian yang tidak diharapkan. Silakan minta administrator sistem untuk menonaktifkan salah satunya.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Peringatan: Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya.", +"Server configuration" => "Konfigurasi server", +"Add Server Configuration" => "Tambah Konfigurasi Server", "Host" => "host", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol dapat tidak ditulis, kecuali anda menggunakan SSL. Lalu jalankan dengan ldaps://", +"Base DN" => "Base DN", +"One Base DN per line" => "Satu Base DN per baris", +"You can specify Base DN for users and groups in the Advanced tab" => "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan", +"User DN" => "User DN", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN dari klien pengguna yang dengannya tautan akan diterapkan, mis. uid=agen,dc=contoh,dc=com. Untuk akses anonim, biarkan DN dan kata sandi kosong.", "Password" => "kata kunci", +"For anonymous access, leave DN and Password empty." => "Untuk akses anonim, biarkan DN dan Kata sandi kosong.", "User Login Filter" => "gunakan saringan login", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definisikan filter untuk diterapkan, saat login dilakukan. %%uid menggantikan username saat login.", +"use %%uid placeholder, e.g. \"uid=%%uid\"" => "gunakan pengganti %%uid, mis. \"uid=%%uid\"", +"User List Filter" => "Daftar Filter Pengguna", +"Defines the filter to apply, when retrieving users." => "Definisikan filter untuk diterapkan saat menerima pengguna.", +"without any placeholder, e.g. \"objectClass=person\"." => "tanpa pengganti apapun, mis. \"objectClass=seseorang\".", "Group Filter" => "saringan grup", +"Defines the filter to apply, when retrieving groups." => "Definisikan filter untuk diterapkan saat menerima grup.", +"without any placeholder, e.g. \"objectClass=posixGroup\"." => "tanpa pengganti apapaun, mis. \"objectClass=posixGroup\".", +"Connection Settings" => "Pengaturan Koneksi", +"Configuration Active" => "Konfigurasi Aktif", +"When unchecked, this configuration will be skipped." => "Jika tidak dicentang, konfigurasi ini dilewati.", "Port" => "port", +"Backup (Replica) Host" => "Host Cadangan (Replika)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Berikan pilihan host cadangan. Harus merupakan replika dari server LDAP/AD utama.", +"Backup (Replica) Port" => "Port Cadangan (Replika)", +"Disable Main Server" => "Nonaktifkan Server Utama", +"When switched on, ownCloud will only connect to the replica server." => "Saat diaktifkan, ownCloud hanya akan terhubung ke server replika.", "Use TLS" => "gunakan TLS", -"Do not use it for SSL connections, it will fail." => "jangan gunakan untuk koneksi SSL, itu akan gagal.", +"Do not use it additionally for LDAPS connections, it will fail." => "Jangan gunakan utamanya untuk koneksi LDAPS, koneksi akan gagal.", +"Case insensitve LDAP server (Windows)" => "Server LDAP dengan kapitalisasi tidak sensitif (Windows)", "Turn off SSL certificate validation." => "matikan validasi sertivikat SSL", +"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jika koneksi hanya bekerja dengan opsi ini, impor sertifikat SSL server LDAP dari server ownCloud anda.", "Not recommended, use for testing only." => "tidak disarankan, gunakan hanya untuk pengujian.", "in seconds. A change empties the cache." => "dalam detik. perubahan mengosongkan cache", +"Directory Settings" => "Pengaturan Direktori", +"User Display Name Field" => "Bidang Tampilan Nama Pengguna", +"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP yang digunakan untuk menghasilkan nama pengguna ownCloud.", +"Base User Tree" => "Pohon Pengguna Dasar", +"One User Base DN per line" => "Satu Pengguna Base DN per baris", +"User Search Attributes" => "Atribut Pencarian Pengguna", +"Optional; one attribute per line" => "Pilihan; satu atribut per baris", +"Group Display Name Field" => "Bidang Tampilan Nama Grup", +"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP yang digunakan untuk menghasilkan nama grup ownCloud.", +"Base Group Tree" => "Pohon Grup Dasar", +"One Group Base DN per line" => "Satu Grup Base DN per baris", +"Group Search Attributes" => "Atribut Pencarian Grup", +"Group-Member association" => "asosiasi Anggota-Grup", +"Special Attributes" => "Atribut Khusus", "in bytes" => "dalam bytes", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD.", "Help" => "bantuan" ); diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php index 0220aa958ce1b2cd628f89d22c8bcff645a72e78..594529190d94cf28dbeea404d8461aa0e073a9dd 100644 --- a/apps/user_ldap/l10n/it.php +++ b/apps/user_ldap/l10n/it.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Disabilita server principale", "When switched on, ownCloud will only connect to the replica server." => "Se abilitata, ownCloud si collegherà solo al server di replica.", "Use TLS" => "Usa TLS", -"Do not use it for SSL connections, it will fail." => "Non utilizzare per le connessioni SSL, fallirà.", +"Do not use it additionally for LDAPS connections, it will fail." => "Da non utilizzare per le connessioni LDAPS, non funzionerà.", "Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)", "Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud.", diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php index 7706357cbf372c582b025d8cc8babb4959f4d5f4..11ad6cc7a377ab93bc5ab2c3a11c163010e33c32 100644 --- a/apps/user_ldap/l10n/ja_JP.php +++ b/apps/user_ldap/l10n/ja_JP.php @@ -43,7 +43,7 @@ "Disable Main Server" => "メインサーバを無効にする", "When switched on, ownCloud will only connect to the replica server." => "有効にすると、ownCloudはレプリカサーバにのみ接続します。", "Use TLS" => "TLSを利用", -"Do not use it for SSL connections, it will fail." => "SSL接続に利用しないでください、失敗します。", +"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。", "Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)", "Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。", diff --git a/apps/user_ldap/l10n/ka.php b/apps/user_ldap/l10n/ka.php new file mode 100644 index 0000000000000000000000000000000000000000..169926283e9a39b2a4de635e76e739143a1cdf3b --- /dev/null +++ b/apps/user_ldap/l10n/ka.php @@ -0,0 +1,4 @@ + "პაროლი", +"Help" => "შველა" +); diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php index 9ff8ff99d081edb8e616da47111a207cc4cb78ba..8aa9fe74b3d1f513c3c73de5c3b58f0930c2557e 100644 --- a/apps/user_ldap/l10n/ko.php +++ b/apps/user_ldap/l10n/ko.php @@ -1,5 +1,8 @@ "삭제 실패", +"Keep settings?" => "설정을 유지합니까?", +"Connection test succeeded" => "연결 시험 성공", +"Connection test failed" => "연결 시험 실패", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "경고: user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여 둘 중 하나만 사용하도록 하십시오.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "경고: PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "Host" => "호스트", @@ -20,22 +23,29 @@ "Group Filter" => "그룹 필터", "Defines the filter to apply, when retrieving groups." => "그룹을 검색할 때 적용할 필터를 정의합니다.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"", +"Connection Settings" => "연결 설정", +"Configuration Active" => "구성 활성화", "Port" => "포트", +"Backup (Replica) Host" => "백업 (복제) 포트", +"Backup (Replica) Port" => "백업 (복제) 포트", +"Disable Main Server" => "주 서버 비활성화", "Use TLS" => "TLS 사용", -"Do not use it for SSL connections, it will fail." => "SSL 연결 시 사용하는 경우 연결되지 않습니다.", "Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)", "Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다.", "Not recommended, use for testing only." => "추천하지 않음, 테스트로만 사용하십시오.", "in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.", +"Directory Settings" => "디렉토리 설정", "User Display Name Field" => "사용자의 표시 이름 필드", "The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다.", "Base User Tree" => "기본 사용자 트리", "One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오", +"User Search Attributes" => "사용자 검색 속성", "Group Display Name Field" => "그룹의 표시 이름 필드", "The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다.", "Base Group Tree" => "기본 그룹 트리", "One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오", +"Group Search Attributes" => "그룹 검색 속성", "Group-Member association" => "그룹-회원 연결", "in bytes" => "바이트", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.", diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php index 48cee737c749a1a976531919a22d2b601b18363e..34e9196b8d9b04e9c5a3461b4fea233f2be1bdea 100644 --- a/apps/user_ldap/l10n/lv.php +++ b/apps/user_ldap/l10n/lv.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Deaktivēt galveno serveri", "When switched on, ownCloud will only connect to the replica server." => "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri.", "Use TLS" => "Lietot TLS", -"Do not use it for SSL connections, it will fail." => "Neizmanto to SSL savienojumiem, tas neizdosies.", +"Do not use it additionally for LDAPS connections, it will fail." => "Neizmanto papildu LDAPS savienojumus! Tas nestrādās.", "Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)", "Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī.", diff --git a/apps/user_ldap/l10n/my_MM.php b/apps/user_ldap/l10n/my_MM.php new file mode 100644 index 0000000000000000000000000000000000000000..ee8d3dd26fa873eab8252b207db2e52f80d080e4 --- /dev/null +++ b/apps/user_ldap/l10n/my_MM.php @@ -0,0 +1,4 @@ + "စကားဝှက်", +"Help" => "အကူအညီ" +); diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php index 295166b0a505e52111e650c046aa4915ac5718f5..8aab71354b092f141150b5078b6b643ecf5df111 100644 --- a/apps/user_ldap/l10n/nb_NO.php +++ b/apps/user_ldap/l10n/nb_NO.php @@ -4,7 +4,6 @@ "Group Filter" => "Gruppefilter", "Port" => "Port", "Use TLS" => "Bruk TLS", -"Do not use it for SSL connections, it will fail." => "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere.", "Not recommended, use for testing only." => "Ikke anbefalt, bruk kun for testing", "in seconds. A change empties the cache." => "i sekunder. En endring tømmer bufferen.", "in bytes" => "i bytes", diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php index cc5e85fc30bdf98d983b24e9956e0f27727d375c..0eda263aa116bf7c8ec6dc6644518d798920b51e 100644 --- a/apps/user_ldap/l10n/nl.php +++ b/apps/user_ldap/l10n/nl.php @@ -1,6 +1,7 @@ "Verwijderen serverconfiguratie mislukt", "The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens.", "The configuration is invalid. Please look in the ownCloud log for further details." => "De configuratie is ongeldig. Controleer de ownCloud log voor meer details.", "Deletion failed" => "Verwijderen mislukt", "Take over settings from recent server configuration?" => "Overnemen instellingen van de recente serverconfiguratie?", @@ -32,29 +33,36 @@ "Group Filter" => "Groep Filter", "Defines the filter to apply, when retrieving groups." => "Definiëerd de toe te passen filter voor het ophalen van groepen.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "zonder een placeholder, bijv. \"objectClass=posixGroup\"", +"Connection Settings" => "Verbindingsinstellingen", "Configuration Active" => "Configuratie actief", +"When unchecked, this configuration will be skipped." => "Als dit niet is ingeschakeld wordt deze configuratie overgeslagen.", "Port" => "Poort", "Backup (Replica) Host" => "Backup (Replica) Host", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgeven optionele backup host. Het moet een replica van de hoofd LDAP/AD server.", "Backup (Replica) Port" => "Backup (Replica) Poort", "Disable Main Server" => "Deactiveren hoofdserver", "When switched on, ownCloud will only connect to the replica server." => "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver.", "Use TLS" => "Gebruik TLS", -"Do not use it for SSL connections, it will fail." => "Gebruik niet voor SSL connecties, deze mislukken.", +"Do not use it additionally for LDAPS connections, it will fail." => "Gebruik het niet voor LDAPS verbindingen, dat gaat niet lukken.", "Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)", "Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server.", "Not recommended, use for testing only." => "Niet aangeraden, gebruik alleen voor test doeleinden.", "in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.", +"Directory Settings" => "Mapinstellingen", "User Display Name Field" => "Gebruikers Schermnaam Veld", "The LDAP attribute to use to generate the user`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers.", "Base User Tree" => "Basis Gebruikers Structuur", "One User Base DN per line" => "Een User Base DN per regel", +"User Search Attributes" => "Attributen voor gebruikerszoekopdrachten", "Optional; one attribute per line" => "Optioneel; één attribuut per regel", "Group Display Name Field" => "Groep Schermnaam Veld", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen.", "Base Group Tree" => "Basis Groupen Structuur", "One Group Base DN per line" => "Een Group Base DN per regel", +"Group Search Attributes" => "Attributen voor groepszoekopdrachten", "Group-Member association" => "Groepslid associatie", +"Special Attributes" => "Speciale attributen", "in bytes" => "in bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.", "Help" => "Help" diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php index 83a8d1615ae5ade9e927619c35c26f76b3d3252d..7b532e253dfb3e7d5f4fd2773ca993541de01872 100644 --- a/apps/user_ldap/l10n/pl.php +++ b/apps/user_ldap/l10n/pl.php @@ -1,9 +1,24 @@ "Nie można usunąć konfiguracji serwera", +"The configuration is valid and the connection could be established!" => "Konfiguracja jest prawidłowa i można ustanowić połączenie!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfiguracja jest prawidłowa, ale Bind nie. Sprawdź ustawienia serwera i poświadczenia.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfiguracja jest nieprawidłowa. Proszę przejrzeć logi dziennika ownCloud ", "Deletion failed" => "Skasowanie nie powiodło się", +"Take over settings from recent server configuration?" => "Przejmij ustawienia z ostatnich konfiguracji serwera?", +"Keep settings?" => "Zachować ustawienia?", +"Cannot add server configuration" => "Nie można dodać konfiguracji serwera", +"Connection test succeeded" => "Test połączenia udany", +"Connection test failed" => "Test połączenia nie udany", +"Do you really want to delete the current Server Configuration?" => "Czy chcesz usunąć bieżącą konfigurację serwera?", +"Confirm Deletion" => "Potwierdź usunięcie", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Ostrzeżenie: Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Ostrzeżenie: Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go.", +"Server configuration" => "Konfiguracja servera", +"Add Server Configuration" => "Dodaj konfigurację servera", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://", "Base DN" => "Baza DN", +"One Base DN per line" => "Jedna baza DN na linię", "You can specify Base DN for users and groups in the Advanced tab" => "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane", "User DN" => "Użytkownik DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN użytkownika klienta, z którym powiązanie wykonuje się, np. uid=agent,dc=example,dc=com. Dla dostępu anonimowego pozostawić DN i hasło puste", @@ -18,21 +33,36 @@ "Group Filter" => "Grupa filtrów", "Defines the filter to apply, when retrieving groups." => "Definiuje filtry do zastosowania, podczas pobierania grup.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\".", +"Connection Settings" => "Konfiguracja połączeń", +"Configuration Active" => "Konfiguracja archiwum", +"When unchecked, this configuration will be skipped." => "Gdy niezaznaczone, ta konfiguracja zostanie pominięta.", "Port" => "Port", +"Backup (Replica) Host" => "Kopia zapasowa (repliki) host", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dać opcjonalnie hosta kopii zapasowej . To musi być repliką głównego serwera LDAP/AD.", +"Backup (Replica) Port" => "Kopia zapasowa (repliki) Port", +"Disable Main Server" => "Wyłącz serwer główny", +"When switched on, ownCloud will only connect to the replica server." => "Po włączeniu, ownCloud tylko połączy się z serwerem repliki.", "Use TLS" => "Użyj TLS", -"Do not use it for SSL connections, it will fail." => "Nie używaj SSL dla połączeń, jeśli się nie powiedzie.", +"Do not use it additionally for LDAPS connections, it will fail." => "Nie używaj go dodatkowo dla połączeń protokołu LDAPS, zakończy się niepowodzeniem.", "Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)", "Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud.", "Not recommended, use for testing only." => "Niezalecane, użyj tylko testowo.", "in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.", +"Directory Settings" => "Ustawienia katalogów", "User Display Name Field" => "Pole wyświetlanej nazwy użytkownika", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud.", "Base User Tree" => "Drzewo bazy użytkowników", +"One User Base DN per line" => "Jeden użytkownik Bazy DN na linię", +"User Search Attributes" => "Szukaj atrybutów", +"Optional; one attribute per line" => "Opcjonalnie; jeden atrybut w wierszu", "Group Display Name Field" => "Pole wyświetlanej nazwy grupy", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy grup ownCloud.", "Base Group Tree" => "Drzewo bazy grup", +"One Group Base DN per line" => "Jedna grupa bazy DN na linię", +"Group Search Attributes" => "Grupa atrybutów wyszukaj", "Group-Member association" => "Członek grupy stowarzyszenia", +"Special Attributes" => "Specjalne atrybuty", "in bytes" => "w bajtach", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD.", "Help" => "Pomoc" diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php index 79e56eeb652b8f89d8698fe47e386a7aa18f465a..e3d2da463cca9d227bc672810a26cd97cf18772a 100644 --- a/apps/user_ldap/l10n/pt_BR.php +++ b/apps/user_ldap/l10n/pt_BR.php @@ -1,8 +1,24 @@ "Falha ao deletar a configuração do servidor", +"The configuration is valid and the connection could be established!" => "A configuração é válida e a conexão foi estabelecida!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuração é válida, mas o Bind falhou. Confira as configurações do servidor e as credenciais.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuração é inválida. Leia o \"log\" do ownCloud para mais detalhes.", "Deletion failed" => "Remoção falhou", +"Take over settings from recent server configuration?" => "Tomar parámetros de recente configuração de servidor?", +"Keep settings?" => "Manter ajustes?", +"Cannot add server configuration" => "Não foi possível adicionar a configuração do servidor", +"Connection test succeeded" => "Teste de conexão bem sucedido", +"Connection test failed" => "Teste de conexão falhou", +"Do you really want to delete the current Server Configuration?" => "Você quer realmente deletar as atuais Configurações de Servidor?", +"Confirm Deletion" => "Confirmar Exclusão", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: Os aplicativos user_ldap e user_webdavauth são incompatíveis. Você deverá experienciar comportamento inesperado. Por favor, peça ao seu administrador do sistema para desabilitar um deles.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Aviso: O módulo PHP LDAP não está instalado, o backend não funcionará. Por favor, peça ao seu administrador do sistema para instalá-lo.", +"Server configuration" => "Configuração de servidor", +"Add Server Configuration" => "Adicionar configuração de servidor", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://", "Base DN" => "DN Base", +"One Base DN per line" => "Uma base DN por linha", "You can specify Base DN for users and groups in the Advanced tab" => "Você pode especificar DN Base para usuários e grupos na guia Avançada", "User DN" => "DN Usuário", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios.", @@ -17,21 +33,33 @@ "Group Filter" => "Filtro de Grupo", "Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar ao obter grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"", +"Connection Settings" => "Configurações de conexão", +"Configuration Active" => "Configuração ativa", +"When unchecked, this configuration will be skipped." => "Quando assinalada, esta configuração será pulada.", "Port" => "Porta", +"Disable Main Server" => "Desativar Servidor Principal", +"When switched on, ownCloud will only connect to the replica server." => "Quando ativado, ownCloud somente conectar-se-á ao servidor réplica.", "Use TLS" => "Usar TLS", -"Do not use it for SSL connections, it will fail." => "Não use-o para conexões SSL, pois falhará.", +"Do not use it additionally for LDAPS connections, it will fail." => "Não use adicionalmente para conexões LDAPS, pois falhará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)", "Turn off SSL certificate validation." => "Desligar validação de certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud.", "Not recommended, use for testing only." => "Não recomendado, use somente para testes.", "in seconds. A change empties the cache." => "em segundos. Uma mudança esvaziará o cache.", +"Directory Settings" => "Configurações de Diretório", "User Display Name Field" => "Campo Nome de Exibição de Usuário", "The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do usuário.", "Base User Tree" => "Árvore de Usuário Base", +"One User Base DN per line" => "Um usuário-base DN por linha", +"User Search Attributes" => "Atributos de busca de usuário", +"Optional; one attribute per line" => "Opcional; um atributo por linha", "Group Display Name Field" => "Campo Nome de Exibição de Grupo", "The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do grupo.", "Base Group Tree" => "Árvore de Grupo Base", +"One Group Base DN per line" => "Um grupo-base DN por linha", +"Group Search Attributes" => "Atributos de busca de grupo", "Group-Member association" => "Associação Grupo-Membro", +"Special Attributes" => "Atributos Especiais", "in bytes" => "em bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD.", "Help" => "Ajuda" diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php index 21735b497c641319762bd429773d8ded73172be1..bfe6656b3b688df9c4aff407441a8688a09e5b10 100644 --- a/apps/user_ldap/l10n/pt_PT.php +++ b/apps/user_ldap/l10n/pt_PT.php @@ -33,6 +33,7 @@ "Group Filter" => "Filtrar por grupo", "Defines the filter to apply, when retrieving groups." => "Defina o filtro a aplicar, ao recuperar grupos.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\".", +"Connection Settings" => "Definições de ligação", "Configuration Active" => "Configuração activa", "When unchecked, this configuration will be skipped." => "Se não estiver marcada, esta definição não será tida em conta.", "Port" => "Porto", @@ -42,12 +43,13 @@ "Disable Main Server" => "Desactivar servidor principal", "When switched on, ownCloud will only connect to the replica server." => "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas.", "Use TLS" => "Usar TLS", -"Do not use it for SSL connections, it will fail." => "Não use para ligações SSL, irá falhar.", +"Do not use it additionally for LDAPS connections, it will fail." => "Não utilize para adicionar ligações LDAP, irá falhar!", "Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.", "Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud.", "Not recommended, use for testing only." => "Não recomendado, utilizado apenas para testes!", "in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.", +"Directory Settings" => "Definições de directorias", "User Display Name Field" => "Mostrador do nome de utilizador.", "The LDAP attribute to use to generate the user`s ownCloud name." => "Atributo LDAP para gerar o nome de utilizador do ownCloud.", "Base User Tree" => "Base da árvore de utilizadores.", @@ -60,6 +62,7 @@ "One Group Base DN per line" => "Uma base de grupo DN por linha", "Group Search Attributes" => "Atributos de pesquisa de grupo", "Group-Member association" => "Associar utilizador ao grupo.", +"Special Attributes" => "Atributos especiais", "in bytes" => "em bytes", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD.", "Help" => "Ajuda" diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php index 3e7e75004296e864b23186e12149caf79b8717be..8f55a35b4916dccc41dc74146411ebcd3200d550 100644 --- a/apps/user_ldap/l10n/ro.php +++ b/apps/user_ldap/l10n/ro.php @@ -22,7 +22,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "fără substituenți, d.e. \"objectClass=posixGroup\"", "Port" => "Portul", "Use TLS" => "Utilizează TLS", -"Do not use it for SSL connections, it will fail." => "A nu se utiliza pentru conexiuni SSL, va eșua.", "Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)", "Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud.", diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php index 45f6c171bf3c7c7ab231617cb7c1f4870d044e08..c66530174a9f24e5e7c44e03cc59d52989b01276 100644 --- a/apps/user_ldap/l10n/ru.php +++ b/apps/user_ldap/l10n/ru.php @@ -1,9 +1,24 @@ "Не удалось удалить конфигурацию сервера", +"The configuration is valid and the connection could be established!" => "Конфигурация правильная и подключение может быть установлено!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфигурация верна, но операция подключения завершилась неудачно. Пожалуйста, проверьте настройки сервера и учетные данные.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфигурация не верна. Пожалуйста, посмотрите в журнале ownCloud детали.", "Deletion failed" => "Удаление не удалось", +"Take over settings from recent server configuration?" => "Принять настройки из последней конфигурации сервера?", +"Keep settings?" => "Сохранить настройки?", +"Cannot add server configuration" => "Не получилось добавить конфигурацию сервера", +"Connection test succeeded" => "Проверка соединения удалась", +"Connection test failed" => "Проверка соединения не удалась", +"Do you really want to delete the current Server Configuration?" => "Вы действительно хотите удалить существующую конфигурацию сервера?", +"Confirm Deletion" => "Подтверждение удаления", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Внимание:Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением. Пожалуйста, обратитесь к системному администратору, чтобы отключить одно из них.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Внимание: Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. ", +"Server configuration" => "Конфигурация сервера", +"Add Server Configuration" => "Добавить конфигурацию сервера", "Host" => "Сервер", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /", "Base DN" => "Базовый DN", +"One Base DN per line" => "По одному базовому DN в строке.", "You can specify Base DN for users and groups in the Advanced tab" => "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенное\"", "User DN" => "DN пользователя", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN-клиента пользователя, с которым связывают должно быть заполнено, например, uid=агент, dc=пример, dc=com. Для анонимного доступа, оставьте DN и пароль пустыми.", @@ -18,21 +33,36 @@ "Group Filter" => "Фильтр группы", "Defines the filter to apply, when retrieving groups." => "Определяет фильтр для применения при получении группы.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без заполнения, например \"objectClass=posixGroup\".", +"Connection Settings" => "Настройки подключения", +"Configuration Active" => "Конфигурация активна", +"When unchecked, this configuration will be skipped." => "Когда галочка снята, эта конфигурация будет пропущена.", "Port" => "Порт", +"Backup (Replica) Host" => "Адрес резервного сервера", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Укажите дополнительный резервный сервер. Он должен быть репликой главного LDAP/AD сервера.", +"Backup (Replica) Port" => "Порт резервного сервера", +"Disable Main Server" => "Отключение главного сервера", +"When switched on, ownCloud will only connect to the replica server." => "Когда включено, ownCloud будет соединяться только с резервным сервером.", "Use TLS" => "Использовать TLS", -"Do not use it for SSL connections, it will fail." => "Не используйте для соединений SSL", +"Do not use it additionally for LDAPS connections, it will fail." => "Не используйте совместно с безопасными подключениями (LDAPS), это не сработает.", "Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)", "Turn off SSL certificate validation." => "Отключить проверку сертификата SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP.", "Not recommended, use for testing only." => "Не рекомендуется, используйте только для тестирования.", "in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.", +"Directory Settings" => "Настройки каталога", "User Display Name Field" => "Поле отображаемого имени пользователя", "The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP для генерации имени пользователя ownCloud.", "Base User Tree" => "База пользовательского дерева", +"One User Base DN per line" => "По одной базовому DN пользователей в строке.", +"User Search Attributes" => "Поисковые атрибуты пользователя", +"Optional; one attribute per line" => "Опционально; один атрибут на линию", "Group Display Name Field" => "Поле отображаемого имени группы", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP для генерации имени группы ownCloud.", "Base Group Tree" => "База группового дерева", +"One Group Base DN per line" => "По одной базовому DN групп в строке.", +"Group Search Attributes" => "Атрибуты поиска для группы", "Group-Member association" => "Ассоциация Группа-Участник", +"Special Attributes" => "Специальные атрибуты", "in bytes" => "в байтах", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.", "Help" => "Помощь" diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php index f62d2cd4eafb90586922813728642356112e8bff..a4ed503b1d12d3646de81295be67ae5e718e9d5f 100644 --- a/apps/user_ldap/l10n/ru_RU.php +++ b/apps/user_ldap/l10n/ru_RU.php @@ -22,7 +22,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без каких-либо заполнителей, например, \"objectClass=posixGroup\".", "Port" => "Порт", "Use TLS" => "Использовать TLS", -"Do not use it for SSL connections, it will fail." => "Не используйте это SSL-соединений, это не будет выполнено.", "Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру LDAP-сервер (Windows)", "Turn off SSL certificate validation." => "Выключить проверку сертификата SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте SSL-сертификат LDAP сервера в ваш ownCloud сервер.", diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php index 77cb039c7ed5bdd77fefafc14abab97e1115292b..727765a15073abe0d5f6ce479ed21960d376680b 100644 --- a/apps/user_ldap/l10n/sk_SK.php +++ b/apps/user_ldap/l10n/sk_SK.php @@ -11,8 +11,8 @@ "Connection test failed" => "Test pripojenia zlyhal", "Do you really want to delete the current Server Configuration?" => "Naozaj chcete zmazať súčasné nastavenie servera?", "Confirm Deletion" => "Potvrdiť vymazanie", -"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal.", -"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte správcu systému aby ho nainštaloval.", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte administrátora systému aby jednu z nich zakázal.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval.", "Server configuration" => "Nastavenia servera", "Add Server Configuration" => "Pridať nastavenia servera.", "Host" => "Hostiteľ", @@ -43,7 +43,7 @@ "Disable Main Server" => "Zakázať hlavný server", "When switched on, ownCloud will only connect to the replica server." => "Pri zapnutí sa ownCloud pripojí len k záložnému serveru.", "Use TLS" => "Použi TLS", -"Do not use it for SSL connections, it will fail." => "Nepoužívajte pre pripojenie SSL, pripojenie zlyhá.", +"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívajte pre pripojenie LDAPS, zlyhá.", "Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)", "Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud.", @@ -61,7 +61,7 @@ "Base Group Tree" => "Základný skupinový strom", "One Group Base DN per line" => "Jedna skupinová základná DN na riadok", "Group Search Attributes" => "Atribúty vyhľadávania skupín", -"Group-Member association" => "Asociácia člena skupiny", +"Group-Member association" => "Priradenie člena skupiny", "Special Attributes" => "Špeciálne atribúty", "in bytes" => "v bajtoch", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.", diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php index 133d7ee9119ffe16c5b25620895ff34488f10c6a..e1734a90780d661b5f8346820033e320d4df2c6e 100644 --- a/apps/user_ldap/l10n/sl.php +++ b/apps/user_ldap/l10n/sl.php @@ -20,7 +20,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\".", "Port" => "Vrata", "Use TLS" => "Uporabi TLS", -"Do not use it for SSL connections, it will fail." => "Uporaba SSL za povezave bo spodletela.", "Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)", "Turn off SSL certificate validation." => "Onemogoči potrditev veljavnosti potrdila SSL.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "V primeru, da povezava deluje le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud.", diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php index 418d94afca5183ea559b7f0f7ed7557fef859b6c..52569a08ef831d37f4a082678d442192c8a1b414 100644 --- a/apps/user_ldap/l10n/sr.php +++ b/apps/user_ldap/l10n/sr.php @@ -18,7 +18,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без икаквог чувара места, нпр. „objectClass=posixGroup“.", "Port" => "Порт", "Use TLS" => "Користи TLS", -"Do not use it for SSL connections, it will fail." => "Не користите за SSL везе јер неће радити.", "Case insensitve LDAP server (Windows)" => "LDAP сервер осетљив на велика и мала слова (Windows)", "Turn off SSL certificate validation." => "Искључите потврду SSL сертификата.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Увезите SSL сертификат LDAP сервера у свој ownCloud ако веза ради само са овом опцијом.", diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php index 509906934cb7290b5d5c622ab4d8a7fe4714fc5c..702912f9c682fe479ee26d6128caafee87e52a0f 100644 --- a/apps/user_ldap/l10n/sv.php +++ b/apps/user_ldap/l10n/sv.php @@ -43,7 +43,7 @@ "Disable Main Server" => "Inaktivera huvudserver", "When switched on, ownCloud will only connect to the replica server." => "När denna är påkopplad kommer ownCloud att koppla upp till replika-servern, endast.", "Use TLS" => "Använd TLS", -"Do not use it for SSL connections, it will fail." => "Använd inte för SSL-anslutningar, det kommer inte att fungera.", +"Do not use it additionally for LDAPS connections, it will fail." => "Använd inte för LDAPS-anslutningar, det kommer inte att fungera.", "Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)", "Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server.", diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php index d617f49700f3b59b5b31f94f8d0d485813264bb7..f6beb3c48630c51f702acdac786cfc320da4ef22 100644 --- a/apps/user_ldap/l10n/ta_LK.php +++ b/apps/user_ldap/l10n/ta_LK.php @@ -9,7 +9,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\".", "Port" => "துறை ", "Use TLS" => "TLS ஐ பயன்படுத்தவும்", -"Do not use it for SSL connections, it will fail." => "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்.", "Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)", "Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்", diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php index 07dbc835b31ae162e4e7b50f7e7fa6a5f1da355d..802badb2f0304e4352af8874496f64f328087cc4 100644 --- a/apps/user_ldap/l10n/th_TH.php +++ b/apps/user_ldap/l10n/th_TH.php @@ -36,7 +36,6 @@ "Port" => "พอร์ต", "Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก", "Use TLS" => "ใช้ TLS", -"Do not use it for SSL connections, it will fail." => "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว", "Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)", "Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud", diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php index 8ded27a29523354abc221b67f1d5b2a3273d6f03..7bcabb0448a3c8f81dab7e05e39fbae020dd3d62 100644 --- a/apps/user_ldap/l10n/tr.php +++ b/apps/user_ldap/l10n/tr.php @@ -1,18 +1,23 @@ "Silme başarısız oldu", -"Host" => "Konak", -"Base DN" => "Base DN", -"User DN" => "User DN", +"Keep settings?" => "Ayarları kalsınmı?", +"Connection test succeeded" => "Bağlantı testi başarılı oldu", +"Connection test failed" => "Bağlantı testi başarısız oldu", +"Confirm Deletion" => "Silmeyi onayla", +"Host" => "Sunucu", +"Base DN" => "Ana DN", +"User DN" => "Kullanıcı DN", "Password" => "Parola", "For anonymous access, leave DN and Password empty." => "Anonim erişim için DN ve Parola alanlarını boş bırakın.", -"User Login Filter" => "Kullanıcı Oturum Açma Süzgeci", +"User Login Filter" => "Kullanıcı Oturum Filtresi", "use %%uid placeholder, e.g. \"uid=%%uid\"" => "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"", -"User List Filter" => "Kullanıcı Liste Süzgeci", +"User List Filter" => "Kullanıcı Liste Filtresi", "without any placeholder, e.g. \"objectClass=person\"." => "bir yer tutucusu olmadan, örneğin \"objectClass=person\"", "Group Filter" => "Grup Süzgeci", +"Connection Settings" => "Bağlantı ayarları", "Port" => "Port", +"Disable Main Server" => "Ana sunucuyu devredışı birak", "Use TLS" => "TLS kullan", -"Do not use it for SSL connections, it will fail." => "SSL bağlantıları ile kullanmayın, başarısız olacaktır.", "Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.", "Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.", "in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.", diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php index 4dd1256ee333834c8c11b7cfd9194071571fe675..3b85e095ff01ac2a1f574f23d2b95640b196dacc 100644 --- a/apps/user_ldap/l10n/uk.php +++ b/apps/user_ldap/l10n/uk.php @@ -1,9 +1,24 @@ "Не вдалося видалити конфігурацію сервера", +"The configuration is valid and the connection could be established!" => "Конфігурація вірна і зв'язок може бути встановлений ​​!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфігурація вірна, але встановити зв'язок не вдалося. Будь ласка, перевірте налаштування сервера і облікові дані.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфігурація невірна. Подробиці подивіться, будь ласка, в журналі ownCloud.", "Deletion failed" => "Видалення не було виконано", +"Take over settings from recent server configuration?" => "Застосувати налаштування з останньої конфігурації сервера ?", +"Keep settings?" => "Зберегти налаштування ?", +"Cannot add server configuration" => "Неможливо додати конфігурацію сервера", +"Connection test succeeded" => "Перевірка з'єднання пройшла успішно", +"Connection test failed" => "Перевірка з'єднання завершилась неуспішно", +"Do you really want to delete the current Server Configuration?" => "Ви дійсно бажаєте видалити поточну конфігурацію сервера ?", +"Confirm Deletion" => "Підтвердіть Видалення", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Увага: Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.", +"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Увага: Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його.", +"Server configuration" => "Налаштування Сервера", +"Add Server Configuration" => "Додати налаштування Сервера", "Host" => "Хост", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://", "Base DN" => "Базовий DN", +"One Base DN per line" => "Один Base DN на одній строчці", "You can specify Base DN for users and groups in the Advanced tab" => "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково", "User DN" => "DN Користувача", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми.", @@ -18,21 +33,36 @@ "Group Filter" => "Фільтр Груп", "Defines the filter to apply, when retrieving groups." => "Визначає фільтр, який застосовується при отриманні груп.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\".", +"Connection Settings" => "Налаштування З'єднання", +"Configuration Active" => "Налаштування Активне", +"When unchecked, this configuration will be skipped." => "Якщо \"галочка\" знята, ця конфігурація буде пропущена.", "Port" => "Порт", +"Backup (Replica) Host" => "Сервер для резервних копій", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Вкажіть додатковий резервний сервер. Він повинен бути копією головного LDAP/AD сервера.", +"Backup (Replica) Port" => "Порт сервера для резервних копій", +"Disable Main Server" => "Вимкнути Головний Сервер", +"When switched on, ownCloud will only connect to the replica server." => "Коли увімкнуто, ownCloud буде приєднуватись лише до сервера з резервними копіями.", "Use TLS" => "Використовуйте TLS", -"Do not use it for SSL connections, it will fail." => "Не використовуйте його для SSL з'єднань, це не буде виконано.", +"Do not use it additionally for LDAPS connections, it will fail." => "Не використовуйте це додатково для під'єднання до LDAP, бо виконано не буде.", "Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)", "Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер.", "Not recommended, use for testing only." => "Не рекомендується, використовуйте лише для тестів.", "in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.", +"Directory Settings" => "Налаштування Каталога", "User Display Name Field" => "Поле, яке відображає Ім'я Користувача", "The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud.", "Base User Tree" => "Основне Дерево Користувачів", +"One User Base DN per line" => "Один Користувач Base DN на одній строчці", +"User Search Attributes" => "Пошукові Атрибути Користувача", +"Optional; one attribute per line" => "Додатково; один атрибут на строчку", "Group Display Name Field" => "Поле, яке відображає Ім'я Групи", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен груп ownCloud.", "Base Group Tree" => "Основне Дерево Груп", +"One Group Base DN per line" => "Одна Група Base DN на одній строчці", +"Group Search Attributes" => "Пошукові Атрибути Групи", "Group-Member association" => "Асоціація Група-Член", +"Special Attributes" => "Спеціальні Атрибути", "in bytes" => "в байтах", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.", "Help" => "Допомога" diff --git a/apps/user_ldap/l10n/ur_PK.php b/apps/user_ldap/l10n/ur_PK.php new file mode 100644 index 0000000000000000000000000000000000000000..4c606a138081f80fed2752ffeaba5a345108481a --- /dev/null +++ b/apps/user_ldap/l10n/ur_PK.php @@ -0,0 +1,4 @@ + "پاسورڈ", +"Help" => "مدد" +); diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php index 76ff6fe33a4c32909c11b15611326e63d1bd9ba0..4bbb977f36362ff85c5375811920f57e19b753ea 100644 --- a/apps/user_ldap/l10n/vi.php +++ b/apps/user_ldap/l10n/vi.php @@ -17,21 +17,30 @@ "Group Filter" => "Bộ lọc nhóm", "Defines the filter to apply, when retrieving groups." => "Xác định các bộ lọc để áp dụng, khi nhóm sử dụng.", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\".", +"Connection Settings" => "Connection Settings", "Port" => "Cổng", +"Backup (Replica) Port" => "Cổng sao lưu (Replica)", +"Disable Main Server" => "Tắt máy chủ chính", +"When switched on, ownCloud will only connect to the replica server." => "When switched on, ownCloud will only connect to the replica server.", "Use TLS" => "Sử dụng TLS", -"Do not use it for SSL connections, it will fail." => "Kết nối SSL bị lỗi. ", +"Do not use it additionally for LDAPS connections, it will fail." => "Do not use it additionally for LDAPS connections, it will fail.", "Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)", "Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn.", "Not recommended, use for testing only." => "Không khuyến khích, Chỉ sử dụng để thử nghiệm.", "in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.", +"Directory Settings" => "Directory Settings", "User Display Name Field" => "Hiển thị tên người sử dụng", "The LDAP attribute to use to generate the user`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud.", "Base User Tree" => "Cây người dùng cơ bản", +"User Search Attributes" => "User Search Attributes", +"Optional; one attribute per line" => "Optional; one attribute per line", "Group Display Name Field" => "Hiển thị tên nhóm", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud.", "Base Group Tree" => "Cây nhóm cơ bản", +"Group Search Attributes" => "Group Search Attributes", "Group-Member association" => "Nhóm thành viên Cộng đồng", +"Special Attributes" => "Special Attributes", "in bytes" => "Theo Byte", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD", "Help" => "Giúp đỡ" diff --git a/apps/user_ldap/l10n/zh_CN.GB2312.php b/apps/user_ldap/l10n/zh_CN.GB2312.php index 91b059afd0be46f0260c3f4a25825ae197e8e8f0..f5bc41fd46b3df5cf756bc50d09df33f7a78036a 100644 --- a/apps/user_ldap/l10n/zh_CN.GB2312.php +++ b/apps/user_ldap/l10n/zh_CN.GB2312.php @@ -19,7 +19,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "不能使用占位符,例如 \"objectClass=posixGroup\"。", "Port" => "端口", "Use TLS" => "使用 TLS", -"Do not use it for SSL connections, it will fail." => "不要使用它进行 SSL 连接,会失败的。", "Case insensitve LDAP server (Windows)" => "大小写不敏感的 LDAP 服务器 (Windows)", "Turn off SSL certificate validation." => "关闭 SSL 证书校验。", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。", diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php index d0c32e94e0808f61ab2d54761b48d0a3864e6903..d494945e2e45155c94a33fb46bafac9a34486278 100644 --- a/apps/user_ldap/l10n/zh_CN.php +++ b/apps/user_ldap/l10n/zh_CN.php @@ -20,7 +20,6 @@ "without any placeholder, e.g. \"objectClass=posixGroup\"." => "无需占位符,例如\"objectClass=posixGroup\"", "Port" => "端口", "Use TLS" => "使用TLS", -"Do not use it for SSL connections, it will fail." => "不要在SSL链接中使用此选项,会导致失败。", "Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)", "Turn off SSL certificate validation." => "关闭SSL证书验证", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。", diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 68cbe4a5e759fed0364111ef8c213b0524580a84..05249b8f16380f0583ed2e62e31199fc40c46046 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -4,7 +4,7 @@ * ownCloud – LDAP Access * * @author Arthur Schiwon - * @copyright 2012 Arthur Schiwon blizzz@owncloud.com + * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -48,7 +48,9 @@ abstract class Access { */ public function readAttribute($dn, $attr, $filter = 'objectClass=*') { if(!$this->checkConnection()) { - \OCP\Util::writeLog('user_ldap', 'No LDAP Connector assigned, access impossible for readAttribute.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'No LDAP Connector assigned, access impossible for readAttribute.', + \OCP\Util::WARN); return false; } $cr = $this->connection->getConnectionResource(); @@ -57,8 +59,8 @@ abstract class Access { \OCP\Util::writeLog('user_ldap', 'LDAP resource not available.', \OCP\Util::DEBUG); return false; } - $rr = @ldap_read($cr, $dn, $filter, array($attr)); $dn = $this->DNasBaseParameter($dn); + $rr = @ldap_read($cr, $dn, $filter, array($attr)); if(!is_resource($rr)) { \OCP\Util::writeLog('user_ldap', 'readAttribute failed for DN '.$dn, \OCP\Util::DEBUG); //in case an error occurs , e.g. object does not exist @@ -123,7 +125,8 @@ abstract class Access { return $result; } - //OID sometimes gives back DNs with whitespace after the comma a la "uid=foo, cn=bar, dn=..." We need to tackle this! + //OID sometimes gives back DNs with whitespace after the comma + // a la "uid=foo, cn=bar, dn=..." We need to tackle this! $dn = preg_replace('/([^\\\]),(\s+)/u', '\1,', $dn); //make comparisons and everything work @@ -218,7 +221,8 @@ abstract class Access { * @param $ldapname optional, the display name of the object * @returns string with with the name to use in ownCloud, false on DN outside of search DN * - * returns the internal ownCloud name for the given LDAP DN of the group, false on DN outside of search DN or failure + * returns the internal ownCloud name for the given LDAP DN of the + * group, false on DN outside of search DN or failure */ public function dn2groupname($dn, $ldapname = null) { //To avoid bypassing the base DN settings under certain circumstances @@ -293,6 +297,10 @@ abstract class Access { $query->execute(array($dn, $uuid)); return $component; } + } else { + //If the UUID can't be detected something is foul. + \OCP\Util::writeLog('user_ldap', 'Cannot determine UUID for '.$dn.'. Skipping.', \OCP\Util::INFO); + return false; } if(is_null($ldapname)) { @@ -303,21 +311,24 @@ abstract class Access { } $ldapname = $ldapname[0]; } - $ldapname = $this->sanitizeUsername($ldapname); + $intname = $isUser ? $this->sanitizeUsername($uuid) : $this->sanitizeUsername($ldapname); //a new user/group! Add it only if it doesn't conflict with other backend's users or existing groups - if(($isUser && !\OCP\User::userExists($ldapname, 'OCA\\user_ldap\\USER_LDAP')) || (!$isUser && !\OC_Group::groupExists($ldapname))) { - if($this->mapComponent($dn, $ldapname, $isUser)) { - return $ldapname; + //disabling Cache is required to avoid that the new user is cached as not-existing in fooExists check + $originalTTL = $this->connection->ldapCacheTTL; + $this->connection->setConfiguration(array('ldapCacheTTL' => 0)); + if(($isUser && !\OCP\User::userExists($intname)) + || (!$isUser && !\OC_Group::groupExists($intname))) { + if($this->mapComponent($dn, $intname, $isUser)) { + $this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL)); + return $intname; } } + $this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL)); - //doh! There is a conflict. We need to distinguish between users/groups. Adding indexes is an idea, but not much of a help for the user. The DN is ugly, but for now the only reasonable way. But we transform it to a readable format and remove the first part to only give the path where this object is located. - $oc_name = $this->alternateOwnCloudName($ldapname, $dn); - if(($isUser && !\OCP\User::userExists($oc_name)) || (!$isUser && !\OC_Group::groupExists($oc_name))) { - if($this->mapComponent($dn, $oc_name, $isUser)) { - return $oc_name; - } + $altname = $this->createAltInternalOwnCloudName($intname, $isUser); + if($this->mapComponent($dn, $altname, $isUser)) { + return $altname; } //if everything else did not help.. @@ -400,18 +411,92 @@ abstract class Access { } /** - * @brief creates a hopefully unique name for owncloud based on the display name and the dn of the LDAP object + * @brief creates a unique name for internal ownCloud use for users. Don't call it directly. * @param $name the display name of the object - * @param $dn the dn of the object - * @returns string with with the name to use in ownCloud + * @returns string with with the name to use in ownCloud or false if unsuccessful * - * creates a hopefully unique name for owncloud based on the display name and the dn of the LDAP object + * Instead of using this method directly, call + * createAltInternalOwnCloudName($name, true) */ - private function alternateOwnCloudName($name, $dn) { - $ufn = ldap_dn2ufn($dn); - $name = $name . '@' . trim(\OCP\Util::mb_substr_replace($ufn, '', 0, mb_strpos($ufn, ',', 0, 'UTF-8'), 'UTF-8')); - $name = $this->sanitizeUsername($name); - return $name; + private function _createAltInternalOwnCloudNameForUsers($name) { + $attempts = 0; + //while loop is just a precaution. If a name is not generated within + //20 attempts, something else is very wrong. Avoids infinite loop. + while($attempts < 20){ + $altName = $name . '_' . uniqid(); + if(\OCP\User::userExists($altName)) { + return $altName; + } + $attempts++; + } + return false; + } + + /** + * @brief creates a unique name for internal ownCloud use for groups. Don't call it directly. + * @param $name the display name of the object + * @returns string with with the name to use in ownCloud or false if unsuccessful. + * + * Instead of using this method directly, call + * createAltInternalOwnCloudName($name, false) + * + * Group names are also used as display names, so we do a sequential + * numbering, e.g. Developers_42 when there are 41 other groups called + * "Developers" + */ + private function _createAltInternalOwnCloudNameForGroups($name) { + $query = \OCP\DB::prepare(' + SELECT `owncloud_name` + FROM `'.$this->getMapTable(false).'` + WHERE `owncloud_name` LIKE ? + '); + + $usedNames = array(); + $res = $query->execute(array($name.'_%')); + while($row = $res->fetchRow()) { + $usedNames[] = $row['owncloud_name']; + } + if(!($usedNames) || count($usedNames) == 0) { + $lastNo = 1; //will become name_2 + } else { + natsort($usedNames); + $lastname = array_pop($usedNames); + $lastNo = intval(substr($lastname, strrpos($lastname, '_') + 1)); + } + $altName = $name.'_'.strval($lastNo+1); + unset($usedNames); + + $attempts = 1; + while($attempts < 21){ + //Pro forma check to be really sure it is unique + //while loop is just a precaution. If a name is not generated within + //20 attempts, something else is very wrong. Avoids infinite loop. + if(!\OC_Group::groupExists($altName)) { + return $altName; + } + $altName = $name . '_' . $lastNo + $attempts; + $attempts++; + } + return false; + } + + /** + * @brief creates a unique name for internal ownCloud use. + * @param $name the display name of the object + * @param $isUser boolean, whether name should be created for a user (true) or a group (false) + * @returns string with with the name to use in ownCloud or false if unsuccessful + */ + private function createAltInternalOwnCloudName($name, $isUser) { + $originalTTL = $this->connection->ldapCacheTTL; + $this->connection->setConfiguration(array('ldapCacheTTL' => 0)); + if($isUser) { + $altName = $this->_createAltInternalOwnCloudNameForUsers($name); + } else { + $altName = $this->_createAltInternalOwnCloudNameForGroups($name); + } + $this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL)); + + return $altName; } /** @@ -539,7 +624,8 @@ abstract class Access { * @brief executes an LDAP search * @param $filter the LDAP filter for the search * @param $base an array containing the LDAP subtree(s) that shall be searched - * @param $attr optional, when a certain attribute shall be filtered out + * @param $attr optional, array, one or more attributes that shall be + * retrieved. Results will according to the order in the array. * @returns array with the search result * * Executes an LDAP search @@ -565,10 +651,20 @@ abstract class Access { $sr = ldap_search($linkResources, $base, $filter, $attr); $error = ldap_errno($link_resource); if(!is_array($sr) || $error > 0) { - \OCP\Util::writeLog('user_ldap', 'Error when searching: '.ldap_error($link_resource).' code '.ldap_errno($link_resource), \OCP\Util::ERROR); + \OCP\Util::writeLog('user_ldap', + 'Error when searching: '.ldap_error($link_resource).' code '.ldap_errno($link_resource), + \OCP\Util::ERROR); \OCP\Util::writeLog('user_ldap', 'Attempt for Paging? '.print_r($pagedSearchOK, true), \OCP\Util::ERROR); return array(); } + + // Do the server-side sorting + foreach(array_reverse($attr) as $sortAttr){ + foreach($sr as $searchResource) { + ldap_sort($link_resource, $searchResource, $sortAttr); + } + } + $findings = array(); foreach($sr as $key => $res) { $findings = array_merge($findings, ldap_get_entries($link_resource, $res )); @@ -587,7 +683,9 @@ abstract class Access { if($skipHandling) { return; } - //if count is bigger, then the server does not support paged search. Instead, he did a normal search. We set a flag here, so the callee knows how to deal with it. + // if count is bigger, then the server does not support + // paged search. Instead, he did a normal search. We set a + // flag here, so the callee knows how to deal with it. if($findings['count'] <= $limit) { $this->pagedSearchedSuccessful = true; } @@ -621,7 +719,9 @@ abstract class Access { $key = mb_strtolower($key, 'UTF-8'); if(isset($item[$key])) { if($key != 'dn') { - $selection[$i][$key] = $this->resemblesDN($key) ? $this->sanitizeDN($item[$key][0]) : $item[$key][0]; + $selection[$i][$key] = $this->resemblesDN($key) ? + $this->sanitizeDN($item[$key][0]) + : $item[$key][0]; } else { $selection[$i][$key] = $this->sanitizeDN($item[$key]); } @@ -725,7 +825,9 @@ abstract class Access { * @return string the final filter part to use in LDAP searches */ public function getFilterPartForUserSearch($search) { - return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForUserSearch, $this->connection->ldapUserDisplayName); + return $this->getFilterPartForSearch($search, + $this->connection->ldapAttributesForUserSearch, + $this->connection->ldapUserDisplayName); } /** @@ -734,7 +836,9 @@ abstract class Access { * @return string the final filter part to use in LDAP searches */ public function getFilterPartForGroupSearch($search) { - return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForGroupSearch, $this->connection->ldapGroupDisplayName); + return $this->getFilterPartForSearch($search, + $this->connection->ldapAttributesForGroupSearch, + $this->connection->ldapGroupDisplayName); } /** @@ -793,13 +897,15 @@ abstract class Access { foreach($testAttributes as $attribute) { \OCP\Util::writeLog('user_ldap', 'Testing '.$attribute.' as UUID attr', \OCP\Util::DEBUG); - $value = $this->readAttribute($dn, $attribute); - if(is_array($value) && isset($value[0]) && !empty($value[0])) { + $value = $this->readAttribute($dn, $attribute); + if(is_array($value) && isset($value[0]) && !empty($value[0])) { \OCP\Util::writeLog('user_ldap', 'Setting '.$attribute.' as UUID attr', \OCP\Util::DEBUG); $this->connection->ldapUuidAttribute = $attribute; return true; - } - \OCP\Util::writeLog('user_ldap', 'The looked for uuid attr is not '.$attribute.', result was '.print_r($value, true), \OCP\Util::DEBUG); + } + \OCP\Util::writeLog('user_ldap', + 'The looked for uuid attr is not '.$attribute.', result was '.print_r($value, true), + \OCP\Util::DEBUG); } return false; @@ -807,7 +913,9 @@ abstract class Access { public function getUUID($dn) { if($this->detectUuidAttribute($dn)) { - \OCP\Util::writeLog('user_ldap', 'UUID Checking \ UUID for '.$dn.' using '. $this->connection->ldapUuidAttribute, \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', + 'UUID Checking \ UUID for '.$dn.' using '. $this->connection->ldapUuidAttribute, + \OCP\Util::DEBUG); $uuid = $this->readAttribute($dn, $this->connection->ldapUuidAttribute); if(!is_array($uuid) && $this->connection->ldapOverrideUuidAttribute) { $this->detectUuidAttribute($dn, true); @@ -946,13 +1054,18 @@ abstract class Access { $pagedSearchOK = false; if($this->connection->hasPagedResultSupport && !is_null($limit)) { $offset = intval($offset); //can be null - \OCP\Util::writeLog('user_ldap', 'initializing paged search for Filter'.$filter.' base '.print_r($bases, true).' attr '.print_r($attr, true). ' limit ' .$limit.' offset '.$offset, \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'initializing paged search for Filter'.$filter.' base '.print_r($bases, true) + .' attr '.print_r($attr, true). ' limit ' .$limit.' offset '.$offset, + \OCP\Util::INFO); //get the cookie from the search for the previous search, required by LDAP foreach($bases as $base) { $cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset); if(empty($cookie) && ($offset > 0)) { - //no cookie known, although the offset is not 0. Maybe cache run out. We need to start all over *sigh* (btw, Dear Reader, did you need LDAP paged searching was designed by MSFT?) + // no cookie known, although the offset is not 0. Maybe cache run out. We need + // to start all over *sigh* (btw, Dear Reader, did you need LDAP paged + // searching was designed by MSFT?) $reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit; //a bit recursive, $offset of 0 is the exit \OCP\Util::writeLog('user_ldap', 'Looking for cookie L/O '.$limit.'/'.$reOffset, \OCP\Util::INFO); @@ -968,13 +1081,16 @@ abstract class Access { if($offset > 0) { \OCP\Util::writeLog('user_ldap', 'Cookie '.$cookie, \OCP\Util::INFO); } - $pagedSearchOK = ldap_control_paged_result($this->connection->getConnectionResource(), $limit, false, $cookie); + $pagedSearchOK = ldap_control_paged_result($this->connection->getConnectionResource(), + $limit, false, $cookie); if(!$pagedSearchOK) { return false; } \OCP\Util::writeLog('user_ldap', 'Ready for a paged search', \OCP\Util::INFO); } else { - \OCP\Util::writeLog('user_ldap', 'No paged search for us, Cpt., Limit '.$limit.' Offset '.$offset, \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'No paged search for us, Cpt., Limit '.$limit.' Offset '.$offset, + \OCP\Util::INFO); } } diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index f92779b1cada27d8e7012c80e212da1ce9f73aa7..6643428afe4082429ad92fc0b1d22eb10cae07f6 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -76,7 +76,8 @@ class Connection { $this->configPrefix = $configPrefix; $this->configID = $configID; $this->cache = \OC_Cache::getGlobalCache(); - $this->config['hasPagedResultSupport'] = (function_exists('ldap_control_paged_result') && function_exists('ldap_control_paged_result_response')); + $this->config['hasPagedResultSupport'] = (function_exists('ldap_control_paged_result') + && function_exists('ldap_control_paged_result_response')); } public function __destruct() { @@ -192,7 +193,7 @@ class Connection { private function getValue($varname) { static $defaults; - if(is_null($defaults)){ + if(is_null($defaults)) { $defaults = $this->getDefaults(); } return \OCP\Config::getAppValue($this->configID, @@ -235,7 +236,7 @@ class Connection { $this->config['turnOffCertCheck'] = $this->$v('ldap_turn_off_cert_check'); $this->config['ldapUserDisplayName'] - = mb_strtolower($this->$v('ldap_display_name'),'UTF-8'); + = mb_strtolower($this->$v('ldap_display_name'), 'UTF-8'); $this->config['ldapUserFilter'] = $this->$v('ldap_userlist_filter'); $this->config['ldapGroupFilter'] = $this->$v('ldap_group_filter'); @@ -274,9 +275,36 @@ class Connection { * @return returns an array that maps internal variable names to database fields */ private function getConfigTranslationArray() { - static $array = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_backup_host'=>'ldapBackupHost', 'ldap_backup_port'=>'ldapBackupPort', 'ldap_override_main_server' => 'ldapOverrideMainServer', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName', - - 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL', 'home_folder_naming_rule' => 'homeFolderNamingRule', 'ldap_turn_off_cert_check' => 'turnOffCertCheck', 'ldap_configuration_active' => 'ldapConfigurationActive', 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch'); + static $array = array( + 'ldap_host'=>'ldapHost', + 'ldap_port'=>'ldapPort', + 'ldap_backup_host'=>'ldapBackupHost', + 'ldap_backup_port'=>'ldapBackupPort', + 'ldap_override_main_server' => 'ldapOverrideMainServer', + 'ldap_dn'=>'ldapAgentName', + 'ldap_agent_password'=>'ldapAgentPassword', + 'ldap_base'=>'ldapBase', + 'ldap_base_users'=>'ldapBaseUsers', + 'ldap_base_groups'=>'ldapBaseGroups', + 'ldap_userlist_filter'=>'ldapUserFilter', + 'ldap_login_filter'=>'ldapLoginFilter', + 'ldap_group_filter'=>'ldapGroupFilter', + 'ldap_display_name'=>'ldapUserDisplayName', + 'ldap_group_display_name'=>'ldapGroupDisplayName', + + 'ldap_tls'=>'ldapTLS', + 'ldap_nocase'=>'ldapNoCase', + 'ldap_quota_def'=>'ldapQuotaDefault', + 'ldap_quota_attr'=>'ldapQuotaAttribute', + 'ldap_email_attr'=>'ldapEmailAttribute', + 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', + 'ldap_cache_ttl'=>'ldapCacheTTL', + 'home_folder_naming_rule' => 'homeFolderNamingRule', + 'ldap_turn_off_cert_check' => 'turnOffCertCheck', + 'ldap_configuration_active' => 'ldapConfigurationActive', + 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', + 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch' + ); return $array; } @@ -294,6 +322,12 @@ class Connection { $params = $this->getConfigTranslationArray(); foreach($config as $parameter => $value) { + if(($parameter == 'homeFolderNamingRule' + || (isset($params[$parameter]) + && $params[$parameter] == 'homeFolderNamingRule')) + && !empty($value)) { + $value = 'attr:'.$value; + } if(isset($this->config[$parameter])) { $this->config[$parameter] = $value; if(is_array($setParameters)) { @@ -323,15 +357,12 @@ class Connection { case 'ldapAgentPassword': $value = base64_encode($value); break; - case 'homeFolderNamingRule': - $value = empty($value) ? 'opt:username' : 'attr:'.$value; - break; case 'ldapBase': case 'ldapBaseUsers': case 'ldapBaseGroups': case 'ldapAttributesForUserSearch': case 'ldapAttributesForGroupSearch': - if(is_array($value)){ + if(is_array($value)) { $value = implode("\n", $value); } break; @@ -360,10 +391,10 @@ class Connection { $config = array(); foreach($trans as $dbKey => $classKey) { if($classKey == 'homeFolderNamingRule') { - if(strpos($this->config[$classKey], 'opt') === 0) { - $config[$dbKey] = ''; - } else { + if(strpos($this->config[$classKey], 'attr:') === 0) { $config[$dbKey] = substr($this->config[$classKey], 5); + } else { + $config[$dbKey] = ''; } continue; } else if((strpos($classKey, 'ldapBase') !== false) @@ -382,7 +413,8 @@ class Connection { * @returns true if configuration seems OK, false otherwise */ private function validateConfiguration() { - //first step: "soft" checks: settings that are not really necessary, but advisable. If left empty, give an info message + // first step: "soft" checks: settings that are not really + // necessary, but advisable. If left empty, give an info message if(empty($this->config['ldapBaseUsers'])) { \OCP\Util::writeLog('user_ldap', 'Base tree for Users is empty, using Base DN', \OCP\Util::INFO); $this->config['ldapBaseUsers'] = $this->config['ldapBase']; @@ -392,11 +424,16 @@ class Connection { $this->config['ldapBaseGroups'] = $this->config['ldapBase']; } if(empty($this->config['ldapGroupFilter']) && empty($this->config['ldapGroupMemberAssocAttr'])) { - \OCP\Util::writeLog('user_ldap', 'No group filter is specified, LDAP group feature will not be used.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'No group filter is specified, LDAP group feature will not be used.', + \OCP\Util::INFO); } - if(!in_array($this->config['ldapUuidAttribute'], array('auto', 'entryuuid', 'nsuniqueid', 'objectguid')) && (!is_null($this->configID))) { + if(!in_array($this->config['ldapUuidAttribute'], array('auto', 'entryuuid', 'nsuniqueid', 'objectguid')) + && (!is_null($this->configID))) { \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', 'auto'); - \OCP\Util::writeLog('user_ldap', 'Illegal value for the UUID Attribute, reset to autodetect.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'Illegal value for the UUID Attribute, reset to autodetect.', + \OCP\Util::INFO); } if(empty($this->config['ldapBackupPort'])) { //force default @@ -412,7 +449,9 @@ class Connection { if((strpos($this->config['ldapHost'], 'ldaps') === 0) && $this->config['ldapTLS']) { $this->config['ldapTLS'] = false; - \OCP\Util::writeLog('user_ldap', 'LDAPS (already using secure connection) and TLS do not work together. Switched off TLS.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'LDAPS (already using secure connection) and TLS do not work together. Switched off TLS.', + \OCP\Util::INFO); } @@ -429,20 +468,28 @@ class Connection { } if((empty($this->config['ldapAgentName']) && !empty($this->config['ldapAgentPassword'])) || (!empty($this->config['ldapAgentName']) && empty($this->config['ldapAgentPassword']))) { - \OCP\Util::writeLog('user_ldap', 'Either no password given for the user agent or a password is given, but no LDAP agent; won`t connect.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Either no password given for the user agent or a password is given, but no LDAP agent; won`t connect.', + \OCP\Util::WARN); $configurationOK = false; } //TODO: check if ldapAgentName is in DN form - if(empty($this->config['ldapBase']) && (empty($this->config['ldapBaseUsers']) && empty($this->config['ldapBaseGroups']))) { + if(empty($this->config['ldapBase']) + && (empty($this->config['ldapBaseUsers']) + && empty($this->config['ldapBaseGroups']))) { \OCP\Util::writeLog('user_ldap', 'No Base DN given, won`t connect.', \OCP\Util::WARN); $configurationOK = false; } if(empty($this->config['ldapUserDisplayName'])) { - \OCP\Util::writeLog('user_ldap', 'No user display name attribute specified, won`t connect.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'No user display name attribute specified, won`t connect.', + \OCP\Util::WARN); $configurationOK = false; } if(empty($this->config['ldapGroupDisplayName'])) { - \OCP\Util::writeLog('user_ldap', 'No group display name attribute specified, won`t connect.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'No group display name attribute specified, won`t connect.', + \OCP\Util::WARN); $configurationOK = false; } if(empty($this->config['ldapLoginFilter'])) { @@ -450,7 +497,9 @@ class Connection { $configurationOK = false; } if(mb_strpos($this->config['ldapLoginFilter'], '%uid', 0, 'UTF-8') === false) { - \OCP\Util::writeLog('user_ldap', 'Login filter does not contain %uid place holder, won`t connect.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Login filter does not contain %uid place holder, won`t connect.', + \OCP\Util::WARN); \OCP\Util::writeLog('user_ldap', 'Login filter was ' . $this->config['ldapLoginFilter'], \OCP\Util::DEBUG); $configurationOK = false; } @@ -488,7 +537,7 @@ class Connection { 'ldap_cache_ttl' => 600, 'ldap_uuid_attribute' => 'auto', 'ldap_override_uuid_attribute' => 0, - 'home_folder_naming_rule' => 'opt:username', + 'home_folder_naming_rule' => '', 'ldap_turn_off_cert_check' => 0, 'ldap_configuration_active' => 1, 'ldap_attributes_for_user_search' => '', @@ -514,13 +563,17 @@ class Connection { if(!$this->ldapConnectionRes) { if(!function_exists('ldap_connect')) { $phpLDAPinstalled = false; - \OCP\Util::writeLog('user_ldap', 'function ldap_connect is not available. Make sure that the PHP ldap module is installed.', \OCP\Util::ERROR); + \OCP\Util::writeLog('user_ldap', + 'function ldap_connect is not available. Make sure that the PHP ldap module is installed.', + \OCP\Util::ERROR); return false; } if($this->config['turnOffCertCheck']) { if(putenv('LDAPTLS_REQCERT=never')) { - \OCP\Util::writeLog('user_ldap', 'Turned off SSL certificate validation successfully.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Turned off SSL certificate validation successfully.', + \OCP\Util::WARN); } else { \OCP\Util::writeLog('user_ldap', 'Could not turn off SSL certificate validation.', \OCP\Util::WARN); } @@ -578,7 +631,9 @@ class Connection { } $ldapLogin = @ldap_bind($cr, $this->config['ldapAgentName'], $this->config['ldapAgentPassword']); if(!$ldapLogin) { - \OCP\Util::writeLog('user_ldap', 'Bind failed: ' . ldap_errno($cr) . ': ' . ldap_error($cr), \OCP\Util::ERROR); + \OCP\Util::writeLog('user_ldap', + 'Bind failed: ' . ldap_errno($cr) . ': ' . ldap_error($cr), + \OCP\Util::ERROR); $this->ldapConnectionRes = null; return false; } diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index 29ce998dae700c5b21edf2b6ed550152e6a82a7c..45c379445af5c2c7bd3145df75ab895a629c4eae 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -102,4 +102,3 @@ class Helper { return true; } } - diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php index b265a8339efa9aed93a5fd438b9462892d6587b1..094d11db3d5d55681d968f077da5573dfe78ba89 100644 --- a/apps/user_ldap/lib/jobs.php +++ b/apps/user_ldap/lib/jobs.php @@ -42,7 +42,9 @@ class Jobs { $actualGroups = self::getGroupBE()->getGroups(); if(empty($actualGroups) && empty($knownGroups)) { - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.', + \OCP\Util::INFO); \OCP\Config::setAppValue('user_ldap', 'bgjUpdateGroupsLastRun', time()); return; } @@ -75,19 +77,25 @@ class Jobs { $hasChanged = false; foreach(array_diff($knownUsers, $actualUsers) as $removedUser) { \OCP\Util::emitHook('OC_User', 'post_removeFromGroup', array('uid' => $removedUser, 'gid' => $group)); - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – "'.$removedUser.'" removed from "'.$group.'".', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – "'.$removedUser.'" removed from "'.$group.'".', + \OCP\Util::INFO); $hasChanged = true; } foreach(array_diff($actualUsers, $knownUsers) as $addedUser) { \OCP\Util::emitHook('OC_User', 'post_addFromGroup', array('uid' => $addedUser, 'gid' => $group)); - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – "'.$addedUser.'" added to "'.$group.'".', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – "'.$addedUser.'" added to "'.$group.'".', + \OCP\Util::INFO); $hasChanged = true; } if($hasChanged) { $query->execute(array(serialize($actualUsers), $group)); } } - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – FINISHED dealing with known Groups.', \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – FINISHED dealing with known Groups.', + \OCP\Util::DEBUG); } static private function handleCreatedGroups($createdGroups) { @@ -98,11 +106,15 @@ class Jobs { VALUES (?, ?) '); foreach($createdGroups as $createdGroup) { - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – new group "'.$createdGroup.'" found.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – new group "'.$createdGroup.'" found.', + \OCP\Util::INFO); $users = serialize(self::getGroupBE()->usersInGroup($createdGroup)); $query->execute(array($createdGroup, $users)); } - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – FINISHED dealing with created Groups.', \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – FINISHED dealing with created Groups.', + \OCP\Util::DEBUG); } static private function handleRemovedGroups($removedGroups) { @@ -113,10 +125,14 @@ class Jobs { WHERE `owncloudname` = ? '); foreach($removedGroups as $removedGroup) { - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – group "'.$removedGroup.'" was removed.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – group "'.$removedGroup.'" was removed.', + \OCP\Util::INFO); $query->execute(array($removedGroup)); } - \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – FINISHED dealing with removed groups.', \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', + 'bgJ "updateGroups" – FINISHED dealing with removed groups.', + \OCP\Util::DEBUG); } static private function getConnector() { @@ -154,4 +170,4 @@ class Jobs { return self::$groupsFromDB; } -} \ No newline at end of file +} diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index c6f1834e0131100b85203f0d5e20b2d5eb44f675..a882e5b754866a1fb9b632829b0ac835335c0d6b 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -12,19 +12,43 @@ } ?>
-

- +

-

-

-

-

-


t('use %%uid placeholder, e.g. "uid=%%uid"');?>

-


t('without any placeholder, e.g. "objectClass=person".');?>

-


t('without any placeholder, e.g. "objectClass=posixGroup".');?>

+

+

+

+

+

+

+

+

+

+ +
t('use %%uid placeholder, e.g. "uid=%%uid"');?>

+

+ +
t('without any placeholder, e.g. "objectClass=person".');?>

+

+ +
t('without any placeholder, e.g. "objectClass=posixGroup".');?>

diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 6aa8cd9b83cc54b85e630415552e96127ae24152..44a1947859805c5935b06e68d6cb53aa8ac8ccff 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -112,7 +112,8 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { return $ldap_users; } - // if we'd pass -1 to LDAP search, we'd end up in a Protocol error. With a limit of 0, we get 0 results. So we pass null. + // if we'd pass -1 to LDAP search, we'd end up in a Protocol + // error. With a limit of 0, we get 0 results. So we pass null. if($limit <= 0) { $limit = null; } @@ -121,9 +122,12 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { $this->getFilterPartForUserSearch($search) )); - \OCP\Util::writeLog('user_ldap', 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', + 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, + \OCP\Util::DEBUG); //do the search and translate results to owncloud names - $ldap_users = $this->fetchListOfUsers($filter, array($this->connection->ldapUserDisplayName, 'dn'), $limit, $offset); + $ldap_users = $this->fetchListOfUsers($filter, array($this->connection->ldapUserDisplayName, 'dn'), + $limit, $offset); $ldap_users = $this->ownCloudUserNames($ldap_users); \OCP\Util::writeLog('user_ldap', 'getUsers: '.count($ldap_users). ' Users found', \OCP\Util::DEBUG); @@ -171,40 +175,39 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { } /** - * @brief determine the user's home directory - * @param string $uid the owncloud username + * @brief get the user's home directory + * @param string $uid the username * @return boolean */ - private function determineHomeDir($uid) { + public function getHome($uid) { + $cacheKey = 'getHome'.$uid; + if($this->connection->isCached($cacheKey)) { + return $this->connection->getFromCache($cacheKey); + } if(strpos($this->connection->homeFolderNamingRule, 'attr:') === 0) { $attr = substr($this->connection->homeFolderNamingRule, strlen('attr:')); $homedir = $this->readAttribute($this->username2dn($uid), $attr); - if($homedir) { - $homedir = \OCP\Config::getSystemValue( "datadirectory", \OC::$SERVERROOT."/data" ) . '/' . $homedir[0]; - \OCP\Config::setUserValue($uid, 'user_ldap', 'homedir', $homedir); + if($homedir && isset($homedir[0])) { + $path = $homedir[0]; + //if attribute's value is an absolute path take this, otherwise append it to data dir + //check for / at the beginning or pattern c:\ resp. c:/ + if( + '/' == $path[0] + || (3 < strlen($path) && ctype_alpha($path[0]) + && $path[1] == ':' && ('\\' == $path[2] || '/' == $path[2])) + ) { + $homedir = $path; + } else { + $homedir = \OCP\Config::getSystemValue('datadirectory', + \OC::$SERVERROOT.'/data' ) . '/' . $homedir[0]; + } + $this->connection->writeToCache($cacheKey, $homedir); return $homedir; } } - //fallback and default: username - $homedir = \OCP\Config::getSystemValue( "datadirectory", \OC::$SERVERROOT."/data" ) . '/' . $uid; - \OCP\Config::setUserValue($uid, 'user_ldap', 'homedir', $homedir); - return $homedir; - } - - /** - * @brief get the user's home directory - * @param string $uid the username - * @return boolean - */ - public function getHome($uid) { - if($this->userExists($uid)) { - $homedir = \OCP\Config::getUserValue($uid, 'user_ldap', 'homedir', false); - if(!$homedir) { - $homedir = $this->determineHomeDir($uid); - } - return $homedir; - } + //false will apply default behaviour as defined and done by OC_User + $this->connection->writeToCache($cacheKey, false); return false; } @@ -224,7 +227,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { $this->connection->ldapUserDisplayName); if($displayName && (count($displayName) > 0)) { - $this->connection->writeToCache($cacheKey, $displayName); + $this->connection->writeToCache($cacheKey, $displayName[0]); return $displayName[0]; } @@ -261,7 +264,16 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { * compared with OC_USER_BACKEND_CREATE_USER etc. */ public function implementsActions($actions) { - return (bool)((OC_USER_BACKEND_CHECK_PASSWORD | OC_USER_BACKEND_GET_HOME) & $actions); + return (bool)((OC_USER_BACKEND_CHECK_PASSWORD + | OC_USER_BACKEND_GET_HOME + | OC_USER_BACKEND_GET_DISPLAYNAME) + & $actions); } -} \ No newline at end of file + /** + * @return bool + */ + public function hasUserListings() { + return true; + } +} diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php index a94be3354fcb75fe083f0441a1b961dac8286de5..6a75bae3815f0cbdb1b4b416cc9dacc58192d44d 100644 --- a/apps/user_ldap/user_proxy.php +++ b/apps/user_ldap/user_proxy.php @@ -183,4 +183,12 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { public function deleteUser($uid) { return false; } + + /** + * @return bool + */ + public function hasUserListings() { + return $this->refBackend->hasUserListings(); + } + } \ No newline at end of file diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml index f62f03577e8bdf682f4018bce195b0b44049009c..76b314e48aa4a440dc1f19f85558c27167fd8ffd 100755 --- a/apps/user_webdavauth/appinfo/info.xml +++ b/apps/user_webdavauth/appinfo/info.xml @@ -7,7 +7,7 @@ This app is not compatible to the LDAP user and group backend. AGPL Frank Karlitschek - 4.91 + 4.93 true diff --git a/apps/user_webdavauth/l10n/de.php b/apps/user_webdavauth/l10n/de.php index f893bddc71ce599a7d16c97609c703427e57a150..c86ff44e55cb398bb682fc943b011f42bcb82fee 100644 --- a/apps/user_webdavauth/l10n/de.php +++ b/apps/user_webdavauth/l10n/de.php @@ -1,5 +1,5 @@ "WebDAV Authentifikation", "URL: http://" => "URL: http://", -"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud wird die Benutzer-Anmeldedaten an diese URL schicken. Dieses Plugin prüft die Anmeldedaten auf ihre Gültigkeit und interpretiert die HTTP Statusfehler 401 und 403 als ungültige, sowie alle Anderen als gültige Anmeldedaten." +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten und alle anderen Antworten als gültige Daten interpretieren." ); diff --git a/apps/user_webdavauth/l10n/de_DE.php b/apps/user_webdavauth/l10n/de_DE.php index 8f67575fc0fd6ae8665f1f4800823fff606a5b3f..bd5d328e477cacf71815a0bd0ccddbc6691ec9c3 100644 --- a/apps/user_webdavauth/l10n/de_DE.php +++ b/apps/user_webdavauth/l10n/de_DE.php @@ -1,5 +1,5 @@ "WebDAV Authentifizierung", "URL: http://" => "URL: http://", -"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten und alle anderen Antworten als gültige Daten interpretieren." ); diff --git a/apps/user_webdavauth/l10n/et_EE.php b/apps/user_webdavauth/l10n/et_EE.php index 9bd32954b058d9ad5c43d6604e9ba18e4bd559f3..f4f7486035866c4b1693b4210d662ca23d8bde9c 100644 --- a/apps/user_webdavauth/l10n/et_EE.php +++ b/apps/user_webdavauth/l10n/et_EE.php @@ -1,3 +1,4 @@ "WebDAV URL: http://" +"WebDAV Authentication" => "WebDAV autentimine", +"URL: http://" => "URL: http://" ); diff --git a/apps/user_webdavauth/l10n/fi_FI.php b/apps/user_webdavauth/l10n/fi_FI.php index 070a0ffdaff78ed22f6c63607a398b64baff4451..6c67c78c8127238b3620faf4320ea366bab43d8b 100644 --- a/apps/user_webdavauth/l10n/fi_FI.php +++ b/apps/user_webdavauth/l10n/fi_FI.php @@ -1,3 +1,4 @@ "WebDAV-osoite: http://" +"WebDAV Authentication" => "WebDAV-todennus", +"URL: http://" => "Osoite: http://" ); diff --git a/apps/user_webdavauth/l10n/gl.php b/apps/user_webdavauth/l10n/gl.php index a6b8355c07433c653ed89d68217bcc9133750b81..f63a7cb0ce85d357f1fd909b03547bf983f6de45 100644 --- a/apps/user_webdavauth/l10n/gl.php +++ b/apps/user_webdavauth/l10n/gl.php @@ -1,5 +1,5 @@ "Autenticación WebDAV", "URL: http://" => "URL: http://", -"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud enviará as credenciais do usuario a esta URL. Este conector comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais non válidas, e todas as outras respostas como credenciais válidas." +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud enviará as credenciais do usuario a este URL. Este engadido comproba a resposta e interpretará os códigos de estado HTTP 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas." ); diff --git a/apps/user_webdavauth/l10n/ru.php b/apps/user_webdavauth/l10n/ru.php index 245a5101341d2a51e59b2cc0575b907f85eb3945..f12982fc406104f67ba64e6ea0c4694ff0e64bc7 100644 --- a/apps/user_webdavauth/l10n/ru.php +++ b/apps/user_webdavauth/l10n/ru.php @@ -1,3 +1,5 @@ "URL: http://" +"WebDAV Authentication" => "Идентификация WebDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud отправит пользовательские данные на этот URL. Затем плагин проверит ответ, в случае HTTP ответа 401 или 403 данные будут считаться неверными, при любых других ответах - верными." ); diff --git a/apps/user_webdavauth/l10n/tr.php b/apps/user_webdavauth/l10n/tr.php index 245a5101341d2a51e59b2cc0575b907f85eb3945..4a2f6d2403b5781c4a8bdc51a6cb4c61e27ba82f 100644 --- a/apps/user_webdavauth/l10n/tr.php +++ b/apps/user_webdavauth/l10n/tr.php @@ -1,3 +1,4 @@ "WebDAV Kimlik doğrulaması", "URL: http://" => "URL: http://" ); diff --git a/apps/user_webdavauth/l10n/uk.php b/apps/user_webdavauth/l10n/uk.php index 245a5101341d2a51e59b2cc0575b907f85eb3945..66887df54b51295cea65e22c7de385efe8ae44ff 100644 --- a/apps/user_webdavauth/l10n/uk.php +++ b/apps/user_webdavauth/l10n/uk.php @@ -1,3 +1,5 @@ "URL: http://" +"WebDAV Authentication" => "Аутентифікація WebDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud надішле облікові дані на цей URL. Цей плагін перевірить відповідь і буде інтерпретувати HTTP коди 401 і 403 як повідомлення про недійсні повноваження, а решту відповідей як дійсні облікові дані." ); diff --git a/apps/user_webdavauth/l10n/vi.php b/apps/user_webdavauth/l10n/vi.php index 9bd32954b058d9ad5c43d6604e9ba18e4bd559f3..ee2aa0891259b8874343f01577a6c50509c08b8f 100644 --- a/apps/user_webdavauth/l10n/vi.php +++ b/apps/user_webdavauth/l10n/vi.php @@ -1,3 +1,5 @@ "WebDAV URL: http://" +"WebDAV Authentication" => "Xác thực WebDAV", +"URL: http://" => "URL: http://", +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sẽ gửi chứng thư người dùng tới URL này. Tính năng này kiểm tra trả lời và sẽ hiểu mã 401 và 403 của giao thức HTTP là chứng thư không hợp lệ, và mọi trả lời khác được coi là hợp lệ." ); diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php index 7eabb0d48cc545c67bd5199f0957853d9941b561..ae9cb7e4c921074524c6213ad533ad28d7a09fb5 100755 --- a/apps/user_webdavauth/settings.php +++ b/apps/user_webdavauth/settings.php @@ -26,7 +26,7 @@ OC_Util::checkAdminUser(); if($_POST) { // CSRF check OCP\JSON::callCheck(); - + if(isset($_POST['webdav_url'])) { OC_CONFIG::setValue('user_webdavauth_url', strip_tags($_POST['webdav_url'])); } diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php index 1459781a3b4034d7229cc4ac1f414c48d2b66ecd..6417e45434dc4c3f23c1c12438f59a38a8001e76 100755 --- a/apps/user_webdavauth/user_webdavauth.php +++ b/apps/user_webdavauth/user_webdavauth.php @@ -28,12 +28,6 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { $this->webdavauth_url = OC_Config::getValue( "user_webdavauth_url" ); } - public function createUser() { - // Can't create user - OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to create users from web frontend using WebDAV user backend', 3); - return false; - } - public function deleteUser($uid) { // Can't delete user OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to delete users from web frontend using WebDAV user backend', 3); @@ -71,6 +65,12 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { return true; } + /** + * @return bool + */ + public function hasUserListings() { + return false; + } /* * we don´t know the users so all we can do it return an empty array here diff --git a/autotest.cmd b/autotest.cmd index 053860db5473f73d9ad36fab0c5126ecb9058827..a511faef9c603b81cb3980900fff70e82d5053a6 100644 --- a/autotest.cmd +++ b/autotest.cmd @@ -4,14 +4,14 @@ :: @author Thomas Müller :: @author Tobias Ramforth (translated into Windows batch file) :: -:: @copyright 2012 Thomas Müller thomas.mueller@tmit.eu +:: @copyright 2012, 2013 Thomas Müller thomas.mueller@tmit.eu :: @echo off set DATADIR=data-autotest set BASEDIR=%~dp0 -:: create autoconfig for sqlite, mysql and postgresql +:: create autoconfig for sqlite, mysql, postgresql and mssql echo ^ .\tests\autoconfig-sqlite.php echo $AUTOCONFIG ^= array ^( >> .\tests\autoconfig-sqlite.php echo 'installed' ^=^> false^, >> .\tests\autoconfig-sqlite.php @@ -50,16 +50,35 @@ echo 'dbhost' ^=^> 'localhost'^, >> .\tests\autoconfig-pgsql.php echo 'dbpass' ^=^> 'owncloud'^, >> .\tests\autoconfig-pgsql.php echo ^)^; >> .\tests\autoconfig-pgsql.php +echo ^ .\tests\autoconfig-mssql.php +echo $AUTOCONFIG ^= array ^( >> .\tests\autoconfig-mssql.php +echo 'installed' ^=^> false^, >> .\tests\autoconfig-mssql.php +echo 'dbtype' ^=^> 'mssql'^, >> .\tests\autoconfig-mssql.php +echo 'dbtableprefix' ^=^> 'oc_'^, >> .\tests\autoconfig-mssql.php +echo 'adminlogin' ^=^> 'admin'^, >> .\tests\autoconfig-mssql.php +echo 'adminpass' ^=^> 'admin'^, >> .\tests\autoconfig-mssql.php +echo 'directory' ^=^> '%BASEDIR%%DATADIR%'^, >> .\tests\autoconfig-mssql.php +echo 'dbuser' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mssql.php +echo 'dbname' ^=^> 'oc_autotest'^, >> .\tests\autoconfig-mssql.php +echo 'dbhost' ^=^> 'localhost\sqlexpress'^, >> .\tests\autoconfig-mssql.php +echo 'dbpass' ^=^> 'owncloud'^, >> .\tests\autoconfig-mssql.php +echo ^)^; >> .\tests\autoconfig-mssql.php + echo localhost:5432:*:oc_autotest:owncloud > %APPDATA%\postgresql\pgpass.conf :: :: start test execution :: -::call:execute_tests "sqlite" -call:execute_tests "mysql" -::call:execute_tests "mssql" -::call:execute_tests "ora" -::call:execute_tests "pgsql" +if [%1] == [] ( + echo "Running on all database backends" + call:execute_tests "sqlite" + call:execute_tests "mysql" + call:execute_tests "mssql" + ::call:execute_tests "ora" + call:execute_tests "pgsql" +) else ( + call:execute_tests "%1" +) goto:eof @@ -83,6 +102,9 @@ goto:eof if "%~1" == "mysql" mysql -u oc_autotest -powncloud -e "DROP DATABASE oc_autotest" if "%~1" == "pgsql" dropdb -h localhost -p 5432 -U oc_autotest -w oc_autotest + + :: we assume a sqlexpress installation + if "%~1" == "mssql" sqlcmd -S localhost\sqlexpress -U oc_autotest -P owncloud -Q "IF EXISTS (SELECT name FROM sys.databases WHERE name=N'oc_autotest') DROP DATABASE [oc_autotest]" :: copy autoconfig copy /y %BASEDIR%\tests\autoconfig-%~1.php %BASEDIR%\config\autoconfig.php @@ -96,9 +118,8 @@ goto:eof rmdir /s /q coverage-html-%~1 md coverage-html-%~1 php -f enable_all.php - ::phpunit --log-junit autotest-results-%~1.xml --coverage-clover autotest-clover-%~1.xml --coverage-html coverage-html-%~1 - ::phpunit --bootstrap bootstrap.php --configuration phpunit.xml - php win32-phpunit.php --bootstrap bootstrap.php --configuration phpunit.xml --log-junit autotest-results-%~1.xml --coverage-clover autotest-clover-%~1.xml --coverage-html coverage-html-%~1 + + php win32-phpunit.php --bootstrap bootstrap.php --configuration phpunit-autotest.xml --log-junit autotest-results-%~1.xml --coverage-clover autotest-clover-%~1.xml --coverage-html coverage-html-%~1 echo "Done with testing %~1 ..." cd %BASEDIR% goto:eof @@ -114,4 +135,10 @@ goto:eof :: - to enable dropdb I decided to add following line to pg_hba.conf (this is not the safest way but I don't care for the testing machine): :: local all all trust :: +:: NOTES on mssql: +:: we assume the usage of a local installed sqlexpress +:: create a user 'oc_autotest' with password 'owncloud' and assign the server role 'dbcreator' +:: make sure the sqlserver is configured to allow sql authentication +:: + diff --git a/config/config.sample.php b/config/config.sample.php index cfef3d5117dd51220f9ba0ea7d5ac384a48e96d0..2f394c41a3bdc8a044659817a223c5b647713ab6 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -114,6 +114,9 @@ $CONFIG = array( /* How long should ownCloud keep deleted files in the trash bin, default value: 180 days */ 'trashbin_retention_obligation' => 180, +/* allow user to change his display name, if it is supported by the back-end */ +'allow_user_to_change_display_name' => true, + /* Check 3rdparty apps for malicious code fragments */ "appcodechecker" => "", diff --git a/core/ajax/share.php b/core/ajax/share.php index 6704a00c5a2c5345debf862a51715af80fbd58f1..332b6a0bed8bec339db95249d862ae3c243a522f 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -34,7 +34,13 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo $shareWith = null; } - $token = OCP\Share::shareItem($_POST['itemType'], $_POST['itemSource'], $shareType, $shareWith, $_POST['permissions']); + $token = OCP\Share::shareItem( + $_POST['itemType'], + $_POST['itemSource'], + $shareType, + $shareWith, + $_POST['permissions'] + ); if (is_string($token)) { OC_JSON::success(array('data' => array('token' => $token))); @@ -59,7 +65,13 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo break; case 'setPermissions': if (isset($_POST['shareType']) && isset($_POST['shareWith']) && isset($_POST['permissions'])) { - $return = OCP\Share::setPermissions($_POST['itemType'], $_POST['itemSource'], $_POST['shareType'], $_POST['shareWith'], $_POST['permissions']); + $return = OCP\Share::setPermissions( + $_POST['itemType'], + $_POST['itemSource'], + $_POST['shareType'], + $_POST['shareWith'], + $_POST['permissions'] + ); ($return) ? OC_JSON::success() : OC_JSON::error(); } break; @@ -86,9 +98,11 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo if ($type === 'dir') $subject = (string)$l->t('User %s shared a folder with you', $displayName); - $text = (string)$l->t('User %s shared the file "%s" with you. It is available for download here: %s', array($displayName, $file, $link)); + $text = (string)$l->t('User %s shared the file "%s" with you. It is available for download here: %s', + array($displayName, $file, $link)); if ($type === 'dir') - $text = (string)$l->t('User %s shared the folder "%s" with you. It is available for download here: %s', array($displayName, $file, $link)); + $text = (string)$l->t('User %s shared the folder "%s" with you. It is available for download here: %s', + array($displayName, $file, $link)); $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply'); @@ -112,14 +126,29 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo } break; case 'getItem': - if (isset($_GET['itemType']) && isset($_GET['itemSource']) && isset($_GET['checkReshare']) && isset($_GET['checkShares'])) { + if (isset($_GET['itemType']) + && isset($_GET['itemSource']) + && isset($_GET['checkReshare']) + && isset($_GET['checkShares'])) { if ($_GET['checkReshare'] == 'true') { - $reshare = OCP\Share::getItemSharedWithBySource($_GET['itemType'], $_GET['itemSource'], OCP\Share::FORMAT_NONE, null, true); + $reshare = OCP\Share::getItemSharedWithBySource( + $_GET['itemType'], + $_GET['itemSource'], + OCP\Share::FORMAT_NONE, + null, + true + ); } else { $reshare = false; } if ($_GET['checkShares'] == 'true') { - $shares = OCP\Share::getItemShared($_GET['itemType'], $_GET['itemSource'], OCP\Share::FORMAT_NONE, null, true); + $shares = OCP\Share::getItemShared( + $_GET['itemType'], + $_GET['itemSource'], + OCP\Share::FORMAT_NONE, + null, + true + ); } else { $shares = false; } @@ -165,8 +194,15 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo } $offset += $limit; foreach ($users as $uid => $displayName) { - if ((!isset($_GET['itemShares']) || !is_array($_GET['itemShares'][OCP\Share::SHARE_TYPE_USER]) || !in_array($uid, $_GET['itemShares'][OCP\Share::SHARE_TYPE_USER])) && $uid != OC_User::getUser()) { - $shareWith[] = array('label' => $displayName, 'value' => array('shareType' => OCP\Share::SHARE_TYPE_USER, 'shareWith' => $uid)); + if ((!isset($_GET['itemShares']) + || !is_array($_GET['itemShares'][OCP\Share::SHARE_TYPE_USER]) + || !in_array($uid, $_GET['itemShares'][OCP\Share::SHARE_TYPE_USER])) + && $uid != OC_User::getUser()) { + $shareWith[] = array( + 'label' => $displayName, + 'value' => array('shareType' => OCP\Share::SHARE_TYPE_USER, + 'shareWith' => $uid) + ); $count++; } } @@ -179,7 +215,13 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo || !isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) || !is_array($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) || !in_array($group, $_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]))) { - $shareWith[] = array('label' => $group.' (group)', 'value' => array('shareType' => OCP\Share::SHARE_TYPE_GROUP, 'shareWith' => $group)); + $shareWith[] = array( + 'label' => $group.' (group)', + 'value' => array( + 'shareType' => OCP\Share::SHARE_TYPE_GROUP, + 'shareWith' => $group + ) + ); $count++; } } else { diff --git a/core/ajax/translations.php b/core/ajax/translations.php index e22cbad4708f09979e41273c6eef1bbda2d4f5ba..e52a2e9b1e8292b8d90295b77858ddc465c9261f 100644 --- a/core/ajax/translations.php +++ b/core/ajax/translations.php @@ -22,6 +22,7 @@ */ $app = $_POST["app"]; +$app = OC_App::cleanAppId($app); $l = OC_L10N::get( $app ); diff --git a/core/css/share.css b/core/css/share.css index e806d25982e2b9ad8731103584255d07484e1857..2480a571ae552d59057e22425437ccfd3325ad9a 100644 --- a/core/css/share.css +++ b/core/css/share.css @@ -24,6 +24,18 @@ #shareWithList li { padding-top:.1em; } + + #shareWithList li:first-child { + white-space:normal; + } + + #shareWithList .cruds { + margin-left:-10px; + } + +#shareWithList .unshare img, #shareWithList .showCruds img { + vertical-align:text-bottom; /* properly align icons */ +} #dropdown label { font-weight:400; @@ -43,6 +55,7 @@ float:right; opacity:.5; padding:.3em 0 0 .3em !important; + margin-top:-5px; } #link { @@ -75,4 +88,6 @@ a.showCruds:hover,a.unshare:hover { opacity:1; - } \ No newline at end of file + } + +.reshare { white-space:normal; } /* fix shared by text going out of box */ diff --git a/core/css/styles.css b/core/css/styles.css index cefab2d49ff39af12451e9016bbfce9c405565c4..61243237bc1df523c5857f23ecee2e63f463902c 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -16,7 +16,10 @@ body { background:#fefefe; font:normal .8em/1.6em "Lucida Grande", Arial, Verdan /* 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; -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; } +#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; + -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; } #body-login #header { margin: -2em auto 0; text-align:center; height:10em; padding:1em 0 .5em; -moz-box-shadow:0 0 1em rgba(0, 0, 0, .5); -webkit-box-shadow:0 0 1em rgba(0, 0, 0, .5); box-shadow:0 0 1em rgba(0, 0, 0, .5); background:#1d2d44; /* Old browsers */ @@ -33,8 +36,9 @@ filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endC .header-right > * { vertical-align:middle; } /* INPUTS */ -input[type="text"], input[type="password"] { cursor:text; } -input, textarea, select, button, .button, #quota, div.jp-progress, .pager li a { +input[type="text"], input[type="password"], input[type="number"] { cursor:text; } +input[type="text"], input[type="password"], input[type="search"], input[type="number"], +textarea, select, button, .button, #quota, div.jp-progress, .pager li a { width:10em; margin:.3em; padding:.6em .5em .4em; font-size:1em; font-family:Arial, Verdana, sans-serif; background:#fff; color:#333; border:1px solid #ddd; outline:none; @@ -42,10 +46,11 @@ input, textarea, select, button, .button, #quota, div.jp-progress, .pager li a { -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } input[type="hidden"] { height:0; width:0; } -input[type="text"], input[type="password"], input[type="search"], textarea { background:#f8f8f8; color:#555; cursor:text; } -input[type="text"], input[type="password"], input[type="search"] { -webkit-appearance:textfield; -moz-appearance:textfield; -webkit-box-sizing:content-box; -moz-box-sizing:content-box; box-sizing:content-box; } +input[type="text"], input[type="password"], input[type="search"], input[type="number"], textarea { background:#f8f8f8; color:#555; cursor:text; } +input[type="text"], input[type="password"], input[type="search"], input[type="number"] { -webkit-appearance:textfield; -moz-appearance:textfield; -webkit-box-sizing:content-box; -moz-box-sizing:content-box; box-sizing:content-box; } input[type="text"]:hover, input[type="text"]:focus, input[type="text"]:active, input[type="password"]:hover, input[type="password"]:focus, input[type="password"]:active, +input[type="number"]:hover, input[type="number"]:focus, input[type="number"]:active, .searchbox input[type="search"]:hover, .searchbox input[type="search"]:focus, .searchbox input[type="search"]:active, textarea:hover, textarea:focus, textarea:active { background-color:#fff; color:#333; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } input[type="checkbox"] { margin:0; padding:0; height:auto; width:auto; } @@ -134,6 +139,7 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b #body-login div.buttons { text-align:center; } #body-login p.info { width:22em; text-align:center; margin:2em auto; color:#777; text-shadow:#fff 0 1px 0; } #body-login p.info a { font-weight:bold; color:#777; } +#body-login #submit.login { margin-right:7px; } /* quick fix for log in button not being aligned with input fields, should be properly fixed by input field width later */ #login { min-height:30em; margin:2em auto 0; border-bottom:1px solid #f8f8f8; background:#eee; } #login form { width:22em; margin:2em auto 2em; padding:0; } @@ -151,10 +157,11 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b #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; - opacity:.3; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3; } #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; } /* Nicely grouping input field sets */ .grouptop input { @@ -163,7 +170,7 @@ input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; } } .groupmiddle input { margin-top:0; margin-bottom:0; - border-top:0; border-radius:0; + border-top:0; border-bottom:0; border-radius:0; box-shadow:0 1px 1px #fff,0 1px 0 #ddd inset; } .groupbottom input { @@ -177,21 +184,28 @@ input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; } #login .groupmiddle label, #login .groupbottom label { top:.65em; } p.infield { position:relative; } label.infield { cursor:text !important; top:1.05em; left:.85em; } -#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; padding-left:1.4em; } +#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; +} #login #databaseField .infield { padding-left:0; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } #login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; } /* Show password toggle */ -#show { - position:absolute; right:1em; top:.8em; float:right; - display:none; -} -#show + label { - position:absolute!important; height:14px; width:24px; right:1em; top:1.25em!important; - background-image:url("../img/actions/toggle.png"); background-repeat:no-repeat; opacity:.3; +#show { position:absolute; right:1em; top:.8em; float:right; } +#show, #personal-show { display:none; } +#show + label { right:1em; top:1.25em!important; } +#show:checked + label, #personal-show:checked + label { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } +#show + label, #personal-show + label { + position:absolute!important; height:14px; width:24px; + background-image:url("../img/actions/toggle.png"); background-repeat:no-repeat; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3; } -#show:checked + label { opacity:.8; } +#pass2, input[name="personal-password-clone"] { padding:0.6em 2.5em 0.4em 0.4em; width:8em;} +#personal-show + label { margin-top:1em; margin-left:-3em; } +#passwordbutton { margin-left:0.5em; } /* Database selector */ #login form #selectDbType { text-align:center; } @@ -210,6 +224,7 @@ fieldset.warning { border-radius:5px; } fieldset.warning legend { color:#b94a48 !important; } +fieldset.warning a { color:#b94a48 !important; font-weight:bold; } /* Alternative Logins */ #alternative-logins legend { margin-bottom:10px; } @@ -219,32 +234,42 @@ fieldset.warning legend { color:#b94a48 !important; } /* NAVIGATION ------------------------------------------------------------- */ #navigation { position:fixed; top:3.5em; float:left; width:64px; padding:0; z-index:75; height:100%; - background:#30343a url('../img/noise.png') repeat; border-right:1px #333 solid; + background:#383c43 url('../img/noise.png') repeat; border-right:1px #333 solid; -moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000; - overflow-x:scroll; + overflow:hidden; } +#navigation:hover { overflow-y:auto; } #navigation a { display:block; padding:8px 0 4px; text-decoration:none; font-size:10px; text-align:center; - color:#fff; text-shadow:#000 0 -1px 0; opacity:.4; + color:#fff; text-shadow:#000 0 -1px 0; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); opacity:.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; // ellipsize long app names } - #navigation a:hover, #navigation a:focus { opacity:.8; } - #navigation a.active { opacity:1; } + #navigation a:hover, #navigation a:focus { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; } + #navigation a.active { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } #navigation .icon { display:block; width:32px; height:32px; margin:0 16px 0; } #navigation li:first-child a { padding-top:16px; } + + +/* USER MENU */ #settings { float:right; margin-top:7px; color:#bbb; text-shadow:0 -1px 0 #000; } #expand { padding:15px; cursor:pointer; font-weight:bold; } #expand:hover, #expand:focus, #expand:active { color:#fff; } -#expand img { opacity:.7; margin-bottom:-2px; } -#expand:hover img, #expand:focus img, #expand:active img { opacity:1; } +#expand img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70); opacity:.7; margin-bottom:-2px; } +#expand:hover img, #expand:focus img, #expand:active img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } #expanddiv { position:absolute; right:0; top:45px; z-index:76; display:none; - background-color:#444; border-bottom-left-radius:7px; box-shadow: 0 0 20px rgb(29,45,68); + background:#383c43 url('../img/noise.png') repeat; + border-bottom-left-radius:7px; border-bottom:1px #333 solid; border-left:1px #333 solid; + -moz-box-shadow:0 0 7px rgb(29,45,68); -webkit-box-shadow:0 0 7px rgb(29,45,68); box-shadow:0 0 7px rgb(29,45,68); } - #expanddiv a { display:block; color:#fff; text-shadow:0 -1px 0 #000; padding:0 8px; opacity:.7; } + #expanddiv a { + display:block; color:#fff; text-shadow:0 -1px 0 #000; padding:0 8px; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70);opacity:.7; + } #expanddiv a img { margin-bottom:-3px; } - #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active { opacity:1; } + #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } /* VARIOUS REUSABLE SELECTORS */ @@ -318,9 +343,11 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin .arrow.left { left:-13px; bottom:1.2em; -webkit-transform:rotate(270deg); -moz-transform:rotate(270deg); -o-transform:rotate(270deg); -ms-transform:rotate(270deg); transform:rotate(270deg); } .arrow.up { top:-8px; right:2em; } .arrow.down { -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -o-transform:rotate(180deg); -ms-transform:rotate(180deg); transform:rotate(180deg); } +.help-includes {overflow: hidden; width: 100%; height: 100%; -moz-box-sizing: border-box; box-sizing: border-box; padding-top: 2.8em; } +.help-iframe {width: 100%; height: 100%; margin: 0;padding: 0; border: 0; overflow: auto;} /* ---- BREADCRUMB ---- */ -div.crumb { float:left; display:block; background:url('../img/breadcrumb.svg') no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; } +div.crumb { float:left; display:block; background:url('../img/breadcrumb.svg') no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; -moz-box-sizing:border-box; box-sizing:border-box; } div.crumb:first-child { padding:10px 20px 10px 5px; } div.crumb.last { font-weight:bold; background:none; padding-right:10px; } div.crumb a{ padding: 0.9em 0 0.7em 0; } diff --git a/core/img/actions/caret-dark.png b/core/img/actions/caret-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7e1e6980298b86b6eb5bbf9008ea7dfb67699f Binary files /dev/null and b/core/img/actions/caret-dark.png differ diff --git a/core/img/actions/caret-dark.svg b/core/img/actions/caret-dark.svg new file mode 100644 index 0000000000000000000000000000000000000000..abb1dc192d228813753b156c4e370059a3408767 --- /dev/null +++ b/core/img/actions/caret-dark.svg @@ -0,0 +1,102 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/core/img/actions/close.png b/core/img/actions/close.png new file mode 100644 index 0000000000000000000000000000000000000000..bc0c782882deaa4f9ecf1676592ddba0cc9aacbc Binary files /dev/null and b/core/img/actions/close.png differ diff --git a/core/img/actions/close.svg b/core/img/actions/close.svg new file mode 100644 index 0000000000000000000000000000000000000000..6a6d98e34ad84113dedfa7b5984ffaa8128622d9 --- /dev/null +++ b/core/img/actions/close.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/delete-hover.png b/core/img/actions/delete-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..08b15510d926eaddb2c59558120a8d0166c58486 Binary files /dev/null and b/core/img/actions/delete-hover.png differ diff --git a/core/img/actions/delete-hover.svg b/core/img/actions/delete-hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..63cacd5e38e584b0afaee2265b273ab3a8063755 --- /dev/null +++ b/core/img/actions/delete-hover.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/triangle-n.png b/core/img/actions/triangle-n.png index b0d7183caabd7e536b1b543c731f119aa78fdbac..14825f701146398259292881410727962c776ad8 100644 Binary files a/core/img/actions/triangle-n.png and b/core/img/actions/triangle-n.png differ diff --git a/core/img/actions/triangle-n.svg b/core/img/actions/triangle-n.svg index 35658631111caa6694338f4bff7dbac7189a88cf..e8d70fa8ce3387c7e8f7146f247c599f1c03bd2f 100644 --- a/core/img/actions/triangle-n.svg +++ b/core/img/actions/triangle-n.svg @@ -57,10 +57,10 @@ showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" - inkscape:window-width="1920" - inkscape:window-height="1025" - inkscape:window-x="-2" - inkscape:window-y="-3" + inkscape:window-width="1280" + inkscape:window-height="773" + inkscape:window-x="0" + inkscape:window-y="-1" inkscape:window-maximized="1" /> @@ -79,14 +79,10 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> - + sodipodi:nodetypes="cccc" /> diff --git a/core/img/actions/triangle-s.png b/core/img/actions/triangle-s.png index 53590a2197bd73dd8987a77f59a2a87f9111b14f..f36faef2b8ad8c706943eafbed40748ca791e5a0 100644 Binary files a/core/img/actions/triangle-s.png and b/core/img/actions/triangle-s.png differ diff --git a/core/img/actions/triangle-s.svg b/core/img/actions/triangle-s.svg index f899300bbca0e7750ba729ad7ac3fced18b2ce1d..396c61e01e22bdf981f039d22840b496673eee2d 100644 --- a/core/img/actions/triangle-s.svg +++ b/core/img/actions/triangle-s.svg @@ -14,7 +14,7 @@ height="16px" id="svg6077" version="1.1" - inkscape:version="0.48.2 r9819" + inkscape:version="0.48.3.1 r9886" sodipodi:docname="triangle-s.svg" inkscape:export-filename="/home/tol/tanghus-owncloud/core/img/actions/triangle-s.png" inkscape:export-xdpi="90" @@ -57,10 +57,10 @@ showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" - inkscape:window-width="1600" - inkscape:window-height="845" - inkscape:window-x="-2" - inkscape:window-y="-3" + inkscape:window-width="1280" + inkscape:window-height="773" + inkscape:window-x="0" + inkscape:window-y="-1" inkscape:window-maximized="1" /> @@ -70,7 +70,7 @@ image/svg+xml - + @@ -79,14 +79,10 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> - + sodipodi:nodetypes="cccc" /> diff --git a/core/img/actions/view-close.png b/core/img/actions/view-close.png new file mode 100644 index 0000000000000000000000000000000000000000..80339d78229a0047c048fb1560cdd11f86aebbec Binary files /dev/null and b/core/img/actions/view-close.png differ diff --git a/core/img/actions/view-close.svg b/core/img/actions/view-close.svg new file mode 100644 index 0000000000000000000000000000000000000000..45d66976084e8859b414ca9ea418610f23805dc9 --- /dev/null +++ b/core/img/actions/view-close.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/view-next.png b/core/img/actions/view-next.png new file mode 100644 index 0000000000000000000000000000000000000000..b76bea06713c6bd66eb4913a70f8ce88b55d5829 Binary files /dev/null and b/core/img/actions/view-next.png differ diff --git a/core/img/actions/view-next.svg b/core/img/actions/view-next.svg new file mode 100644 index 0000000000000000000000000000000000000000..d5642f1a11cb50d4bd0c81bad1d1a732e4c45a0a --- /dev/null +++ b/core/img/actions/view-next.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/view-pause.png b/core/img/actions/view-pause.png new file mode 100644 index 0000000000000000000000000000000000000000..64264ff9281a2114a7c662b93c96018ba5da9777 Binary files /dev/null and b/core/img/actions/view-pause.png differ diff --git a/core/img/actions/view-pause.svg b/core/img/actions/view-pause.svg new file mode 100644 index 0000000000000000000000000000000000000000..0edc6f14e28059dce9fed6cea3c1235ab77bcffc --- /dev/null +++ b/core/img/actions/view-pause.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/view-play.png b/core/img/actions/view-play.png new file mode 100644 index 0000000000000000000000000000000000000000..0080d45b5cdc57d396bba4ade8c42b36ea197edd Binary files /dev/null and b/core/img/actions/view-play.png differ diff --git a/core/img/actions/view-play.svg b/core/img/actions/view-play.svg new file mode 100644 index 0000000000000000000000000000000000000000..0bdc63bf7e1d07e21af60d0e8982c35059750be0 --- /dev/null +++ b/core/img/actions/view-play.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/actions/view-previous.png b/core/img/actions/view-previous.png new file mode 100644 index 0000000000000000000000000000000000000000..82943c23a59ca65b54c2882c4a2ea8901fb42998 Binary files /dev/null and b/core/img/actions/view-previous.png differ diff --git a/core/img/actions/view-previous.svg b/core/img/actions/view-previous.svg new file mode 100644 index 0000000000000000000000000000000000000000..df1f49511d070184f4f5d98311b8e2d60190d5d8 --- /dev/null +++ b/core/img/actions/view-previous.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/core/img/appstore.png b/core/img/appstore.png new file mode 100644 index 0000000000000000000000000000000000000000..009b2b51b98ae5ccaa835aa56a350142dfb2e827 Binary files /dev/null and b/core/img/appstore.png differ diff --git a/core/img/desktopapp.png b/core/img/desktopapp.png new file mode 100644 index 0000000000000000000000000000000000000000..182ddd2cf18891878210352e9ac0f34d7d89409d Binary files /dev/null and b/core/img/desktopapp.png differ diff --git a/core/img/desktopapp.svg b/core/img/desktopapp.svg new file mode 100644 index 0000000000000000000000000000000000000000..93d91e461a613db6c49ce5d498e0e9971492ac98 --- /dev/null +++ b/core/img/desktopapp.svg @@ -0,0 +1,100 @@ + +image/svg+xml + + +Desktop app +Windows, OS X, Linux + \ No newline at end of file diff --git a/core/img/filetypes/application-msexcel.png b/core/img/filetypes/application-msexcel.png index abcd93689a08ec9bdbf0984927e8da06c043c7cd..b977d7e52e2446ea01201c5c7209ac3a05f12c9f 100644 Binary files a/core/img/filetypes/application-msexcel.png and b/core/img/filetypes/application-msexcel.png differ diff --git a/core/img/filetypes/application-mspowerpoint.png b/core/img/filetypes/application-mspowerpoint.png index b4aaad9a45c9abbee2d47611a6963101b64a8023..c4eff0387d5888c638ba09473ba6d2369f7b56f0 100644 Binary files a/core/img/filetypes/application-mspowerpoint.png and b/core/img/filetypes/application-mspowerpoint.png differ diff --git a/core/img/filetypes/application-msword.png b/core/img/filetypes/application-msword.png index e8b230c59cb66c6ce473c43cf2b7253e22129d75..ae8ecbf47672a874c0958d0d113a56162c2bd364 100644 Binary files a/core/img/filetypes/application-msword.png and b/core/img/filetypes/application-msword.png differ diff --git a/core/img/filetypes/application.png b/core/img/filetypes/application.png new file mode 100644 index 0000000000000000000000000000000000000000..1dee9e366094e87db68c606d0522d72d4b939818 Binary files /dev/null and b/core/img/filetypes/application.png differ diff --git a/core/img/filetypes/ms-excel.png b/core/img/filetypes/ms-excel.png index abcd93689a08ec9bdbf0984927e8da06c043c7cd..b977d7e52e2446ea01201c5c7209ac3a05f12c9f 100644 Binary files a/core/img/filetypes/ms-excel.png and b/core/img/filetypes/ms-excel.png differ diff --git a/core/img/filetypes/ms-powerpoint.png b/core/img/filetypes/ms-powerpoint.png index b4aaad9a45c9abbee2d47611a6963101b64a8023..c4eff0387d5888c638ba09473ba6d2369f7b56f0 100644 Binary files a/core/img/filetypes/ms-powerpoint.png and b/core/img/filetypes/ms-powerpoint.png differ diff --git a/core/img/googleplay.png b/core/img/googleplay.png new file mode 100644 index 0000000000000000000000000000000000000000..2d9ad6296080509464d3d412c8b3e93254626c3f Binary files /dev/null and b/core/img/googleplay.png differ diff --git a/core/img/icon-error.png b/core/img/icon-error.png deleted file mode 100644 index edeaceb16980c6af896cfb1b5f46447f3e91b5d1..0000000000000000000000000000000000000000 Binary files a/core/img/icon-error.png and /dev/null differ diff --git a/core/img/icon-error.svg b/core/img/icon-error.svg deleted file mode 100644 index bba639bfd7e564de5fec8374f1c91c4b068198c5..0000000000000000000000000000000000000000 --- a/core/img/icon-error.svg +++ /dev/null @@ -1,813 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/img/icon-sync.png b/core/img/icon-sync.png deleted file mode 100644 index c38ca87a237bd0be449e41c845c8f7add91b230c..0000000000000000000000000000000000000000 Binary files a/core/img/icon-sync.png and /dev/null differ diff --git a/core/img/icon-sync.svg b/core/img/icon-sync.svg deleted file mode 100644 index 0806572f2c717fea53640cd450f8dc74982f02a9..0000000000000000000000000000000000000000 --- a/core/img/icon-sync.svg +++ /dev/null @@ -1,815 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/img/icon.png b/core/img/icon.png deleted file mode 100644 index e87191f1c0cedd918056b7330b9966e1f65cca3f..0000000000000000000000000000000000000000 Binary files a/core/img/icon.png and /dev/null differ diff --git a/core/img/icon.svg b/core/img/icon.svg deleted file mode 100644 index 6f91abe6e48cd02529552f8b7158ae286b3be41a..0000000000000000000000000000000000000000 --- a/core/img/icon.svg +++ /dev/null @@ -1,821 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/img/logo-inverted.png b/core/img/logo-inverted.png deleted file mode 100644 index 265a8871b45b14b046fd3cf20531d9a3694fb445..0000000000000000000000000000000000000000 Binary files a/core/img/logo-inverted.png and /dev/null differ diff --git a/core/img/logo-inverted.svg b/core/img/logo-inverted.svg deleted file mode 100644 index 9ac167cc41f0a19ec81ad892773433ebf33a220b..0000000000000000000000000000000000000000 --- a/core/img/logo-inverted.svg +++ /dev/null @@ -1,762 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/img/logo-square.png b/core/img/logo-square.png deleted file mode 100644 index b836de8f3be81ab3cb2673e3db1c94d4a3966e5e..0000000000000000000000000000000000000000 Binary files a/core/img/logo-square.png and /dev/null differ diff --git a/core/img/logo-sticker.jpg b/core/img/logo-sticker.jpg deleted file mode 100644 index ad2bf63ca37aa064d4f7c05c6e293bcafcb5e702..0000000000000000000000000000000000000000 Binary files a/core/img/logo-sticker.jpg and /dev/null differ diff --git a/core/img/logo-sticker.svg b/core/img/logo-sticker.svg deleted file mode 100644 index e48f7a78c7d91cc0cd5c25c2ed082be598af4ee3..0000000000000000000000000000000000000000 --- a/core/img/logo-sticker.svg +++ /dev/null @@ -1,764 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/img/logo-wide.png b/core/img/logo-wide.png index 702f1d97e5b7bdf6da6a10eea3ebfda32e594be0..b0c90984e44bb4b8244339c62c609749f7db6db5 100644 Binary files a/core/img/logo-wide.png and b/core/img/logo-wide.png differ diff --git a/core/img/logo-wide.svg b/core/img/logo-wide.svg index 37fc0007479055e1324f465ee53f01cd6fd31a16..cf8eace5204242c4ddd230f1c268cd5f0dd327a6 100644 --- a/core/img/logo-wide.svg +++ b/core/img/logo-wide.svg @@ -19,8 +19,11 @@ viewBox="0 0 147.33262 32" enable-background="new 0 0 595.275 311.111" xml:space="preserve" - inkscape:version="0.48.2 r9819" - sodipodi:docname="logo-wide.svg">image/svg+xml + fit-margin-bottom="0"> \ No newline at end of file + \ No newline at end of file diff --git a/core/img/noise.png b/core/img/noise.png index 8fdda17b5e36b5a1aacc09652bc93126a1ccb8fc..271dd5ebcfbdc858f83f0f7ea18a59bb1980d74f 100644 Binary files a/core/img/noise.png and b/core/img/noise.png differ diff --git a/core/img/places/calendar-dark.png b/core/img/places/calendar-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e372104a28482c72ff9e2113f5b77e36a7a9ea88 Binary files /dev/null and b/core/img/places/calendar-dark.png differ diff --git a/core/img/places/calendar-dark.svg b/core/img/places/calendar-dark.svg new file mode 100644 index 0000000000000000000000000000000000000000..6f7cb8e74d7dfeb65e12a8c7524418bee7035ed9 --- /dev/null +++ b/core/img/places/calendar-dark.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/img/places/contacts-dark.png b/core/img/places/contacts-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a08339d1d3d88413910fe07e95beb32536983983 Binary files /dev/null and b/core/img/places/contacts-dark.png differ diff --git a/core/img/places/contacts-dark.svg b/core/img/places/contacts-dark.svg new file mode 100644 index 0000000000000000000000000000000000000000..df364911c519e617ecdee7dca235072513107705 --- /dev/null +++ b/core/img/places/contacts-dark.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/core/js/compatibility.js b/core/js/compatibility.js new file mode 100644 index 0000000000000000000000000000000000000000..0cfeefab87128329f43dceb35c473fc806c70ca4 --- /dev/null +++ b/core/js/compatibility.js @@ -0,0 +1,32 @@ + +//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind +if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + // closest thing possible to the ECMAScript 5 internal IsCallable function + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + } + + var aArgs = Array.prototype.slice.call(arguments, 1), + fToBind = this, + fNOP = function () {}, + fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis + ? this + : oThis, + aArgs.concat(Array.prototype.slice.call(arguments))); + }; + + fNOP.prototype = this.prototype; + fBound.prototype = new fNOP(); + + return fBound; + }; +} + +//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim +if(!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g,''); + }; +} \ No newline at end of file diff --git a/core/js/config.php b/core/js/config.php index 9069175ed6fa58d542ee165fbb4fe3dbad42ef9e..0aaa44822876b339d4b47c73ad8f6145069b6d0e 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -29,8 +29,33 @@ $array = array( "oc_current_user" => "\"".OC_User::getUser(). "\"", "oc_requesttoken" => "\"".OC_Util::callRegister(). "\"", "datepickerFormatDate" => json_encode($l->l('jsdate', 'jsdate')), - "dayNames" => json_encode(array((string)$l->t('Sunday'), (string)$l->t('Monday'), (string)$l->t('Tuesday'), (string)$l->t('Wednesday'), (string)$l->t('Thursday'), (string)$l->t('Friday'), (string)$l->t('Saturday'))), - "monthNames" => json_encode(array((string)$l->t('January'), (string)$l->t('February'), (string)$l->t('March'), (string)$l->t('April'), (string)$l->t('May'), (string)$l->t('June'), (string)$l->t('July'), (string)$l->t('August'), (string)$l->t('September'), (string)$l->t('October'), (string)$l->t('November'), (string)$l->t('December'))), + "dayNames" => json_encode( + array( + (string)$l->t('Sunday'), + (string)$l->t('Monday'), + (string)$l->t('Tuesday'), + (string)$l->t('Wednesday'), + (string)$l->t('Thursday'), + (string)$l->t('Friday'), + (string)$l->t('Saturday') + ) + ), + "monthNames" => json_encode( + array( + (string)$l->t('January'), + (string)$l->t('February'), + (string)$l->t('March'), + (string)$l->t('April'), + (string)$l->t('May'), + (string)$l->t('June'), + (string)$l->t('July'), + (string)$l->t('August'), + (string)$l->t('September'), + (string)$l->t('October'), + (string)$l->t('November'), + (string)$l->t('December') + ) + ), "firstDay" => json_encode($l->l('firstday', 'firstday')) , ); @@ -38,4 +63,3 @@ $array = array( foreach ($array as $setting => $value) { echo("var ". $setting ."=".$value.";\n"); } -?> \ No newline at end of file diff --git a/core/js/eventsource.js b/core/js/eventsource.js index f783ade7ae916cd79401a4fa98bd9b4cbe25b45d..ce8c8387c8efef5eab85542807ca2993a0a998a2 100644 --- a/core/js/eventsource.js +++ b/core/js/eventsource.js @@ -87,8 +87,10 @@ OC.EventSource.prototype={ useFallBack:false, fallBackCallBack:function(type,data){ if(type){ - for(var i=0;i (button.offset().top+button.outerHeight() + list.children().length * button.height()) - || $(document).height()/2 > pos.top + if(($(document).height() > (button.offset().top+button.outerHeight() + list.children().length * button.height()) + && $(document).height() - button.offset().top > (button.offset().top+button.outerHeight() + list.children().length * button.height())) + || $(document).height()/2 > button.offset().top ) { list.css({ top:pos.top+button.outerHeight()-5, diff --git a/core/js/setup.js b/core/js/setup.js index 2656cac2f45be916b0be82d31c5e28208dea08b1..76812b2997969e28dc8bc3725b56ab2aaf7a9138 100644 --- a/core/js/setup.js +++ b/core/js/setup.js @@ -5,6 +5,7 @@ $(document).ready(function() { mysql:!!$('#hasMySQL').val(), postgresql:!!$('#hasPostgreSQL').val(), oracle:!!$('#hasOracle').val(), + mssql:!!$('#hasMSSQL').val() }; $('#selectDbType').buttonset(); @@ -41,6 +42,12 @@ $(document).ready(function() { $('#dbhost').show(250); $('#dbhostlabel').show(250); }); + + $('#mssql').click(function() { + $('#use_other_db').slideDown(250); + $('#dbhost').show(250); + $('#dbhostlabel').show(250); + }); $('input[checked]').trigger('click'); diff --git a/core/js/share.js b/core/js/share.js index 6ad4130690d4e382f9be35082ee5bb0adacdc817..328d57928ec4fd58c3a023ffa39fef43dfb68e72 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -24,9 +24,9 @@ OC.Share={ var file = $('tr').filterAttr('data-file', OC.basename(item)); if (file.length > 0) { var action = $(file).find('.fileactions .action').filterAttr('data-action', 'Share'); - action.find('img').attr('src', image); + var img = action.find('img').attr('src', image); action.addClass('permanent'); - action.html(action.html().replace(t('core', 'Share'), t('core', 'Shared'))); + action.html(' '+t('core', 'Shared')).prepend(img); } var dir = $('#dir').val(); if (dir.length > 1) { @@ -40,7 +40,7 @@ OC.Share={ if (img.attr('src') != OC.imagePath('core', 'actions/public')) { img.attr('src', image); action.addClass('permanent'); - action.html(action.html().replace(t('core', 'Share'), t('core', 'Shared'))); + action.html(' '+t('core', 'Shared')).prepend(img); } } last = path; @@ -84,13 +84,13 @@ OC.Share={ $('a.share[data-item="'+itemSource+'"]').css('background', 'url('+image+') no-repeat center'); } else { var action = $(file).find('.fileactions .action').filterAttr('data-action', 'Share'); - action.find('img').attr('src', image); + var img = action.find('img').attr('src', image); if (shares) { action.addClass('permanent'); - action.html(action.html().replace(t('core', 'Share'), t('core', 'Shared'))); + action.html(' '+t('core', 'Shared')).prepend(img); } else { action.removeClass('permanent'); - action.html(action.html().replace(t('core', 'Shared'), t('core', 'Share'))); + action.html(' '+t('core', 'Share')).prepend(img); } } if (shares) { @@ -185,10 +185,10 @@ OC.Share={ html += ''; html += '
'; html += ''; - html += ''; + html += ''; } html += '
'; html += ''; @@ -373,18 +373,18 @@ OC.Share={ $('#linkPassText').attr('placeholder', t('core', 'Password protected')); } $('#expiration').show(); - $('#emailPrivateLink #email').show(); - $('#emailPrivateLink #emailButton').show(); + $('#emailPrivateLink #email').show(); + $('#emailPrivateLink #emailButton').show(); }, hideLink:function() { $('#linkText').hide('blind'); $('#showPassword').hide(); $('#showPassword+label').hide(); $('#linkPass').hide(); - $('#emailPrivateLink #email').hide(); - $('#emailPrivateLink #emailButton').hide(); - }, - dirname:function(path) { + $('#emailPrivateLink #email').hide(); + $('#emailPrivateLink #emailButton').hide(); + }, + dirname:function(path) { return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, ''); }, showExpirationDate:function(date) { @@ -401,16 +401,16 @@ OC.Share={ $(document).ready(function() { if(typeof monthNames != 'undefined'){ - $.datepicker.setDefaults({ - monthNames: monthNames, - monthNamesShort: $.map(monthNames, function(v) { return v.slice(0,3)+'.'; }), - dayNames: dayNames, - dayNamesMin: $.map(dayNames, function(v) { return v.slice(0,2); }), - dayNamesShort: $.map(dayNames, function(v) { return v.slice(0,3)+'.'; }), - firstDay: firstDay - }); - } - $('#fileList').on('click', 'a.share', function(event) { + $.datepicker.setDefaults({ + monthNames: monthNames, + monthNamesShort: $.map(monthNames, function(v) { return v.slice(0,3)+'.'; }), + dayNames: dayNames, + dayNamesMin: $.map(dayNames, function(v) { return v.slice(0,2); }), + dayNamesShort: $.map(dayNames, function(v) { return v.slice(0,3)+'.'; }), + firstDay: firstDay + }); + } + $(document).on('click', 'a.share', function(event) { event.stopPropagation(); if ($(this).data('item-type') !== undefined && $(this).data('item') !== undefined) { var itemType = $(this).data('item-type'); @@ -444,12 +444,12 @@ $(document).ready(function() { } }); - $('#fileList').on('mouseenter', '#dropdown #shareWithList li', function(event) { + $(document).on('mouseenter', '#dropdown #shareWithList li', function(event) { // Show permissions and unshare button $(':hidden', this).filter(':not(.cruds)').show(); }); - $('#fileList').on('mouseleave', '#dropdown #shareWithList li', function(event) { + $(document).on('mouseleave', '#dropdown #shareWithList li', function(event) { // Hide permissions and unshare button if (!$('.cruds', this).is(':visible')) { $('a', this).hide(); @@ -462,11 +462,11 @@ $(document).ready(function() { } }); - $('#fileList').on('click', '#dropdown .showCruds', function() { + $(document).on('click', '#dropdown .showCruds', function() { $(this).parent().find('.cruds').toggle(); }); - $('#fileList').on('click', '#dropdown .unshare', function() { + $(document).on('click', '#dropdown .unshare', function() { var li = $(this).parent(); var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); @@ -483,7 +483,7 @@ $(document).ready(function() { }); }); - $('#fileList').on('change', '#dropdown .permissions', function() { + $(document).on('change', '#dropdown .permissions', function() { if ($(this).attr('name') == 'edit') { var li = $(this).parent().parent() var checkboxes = $('.permissions', li); @@ -496,10 +496,17 @@ $(document).ready(function() { var li = $(this).parent().parent().parent(); var checkboxes = $('.permissions', li); // Uncheck Edit if Create, Update, and Delete are not checked - if (!$(this).is(':checked') && !$(checkboxes).filter('input[name="create"]').is(':checked') && !$(checkboxes).filter('input[name="update"]').is(':checked') && !$(checkboxes).filter('input[name="delete"]').is(':checked')) { + if (!$(this).is(':checked') + && !$(checkboxes).filter('input[name="create"]').is(':checked') + && !$(checkboxes).filter('input[name="update"]').is(':checked') + && !$(checkboxes).filter('input[name="delete"]').is(':checked')) + { $(checkboxes).filter('input[name="edit"]').attr('checked', false); // Check Edit if Create, Update, or Delete is checked - } else if (($(this).attr('name') == 'create' || $(this).attr('name') == 'update' || $(this).attr('name') == 'delete')) { + } else if (($(this).attr('name') == 'create' + || $(this).attr('name') == 'update' + || $(this).attr('name') == 'delete')) + { $(checkboxes).filter('input[name="edit"]').attr('checked', true); } } @@ -507,10 +514,14 @@ $(document).ready(function() { $(checkboxes).filter(':not(input[name="edit"])').filter(':checked').each(function(index, checkbox) { permissions |= $(checkbox).data('permissions'); }); - OC.Share.setPermissions($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), $(li).data('share-type'), $(li).data('share-with'), permissions); + OC.Share.setPermissions($('#dropdown').data('item-type'), + $('#dropdown').data('item-source'), + $(li).data('share-type'), + $(li).data('share-with'), + permissions); }); - $('#fileList').on('change', '#dropdown #linkCheckbox', function() { + $(document).on('change', '#dropdown #linkCheckbox', function() { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); if (this.checked) { @@ -532,12 +543,12 @@ $(document).ready(function() { } }); - $('#fileList').on('click', '#dropdown #linkText', function() { + $(document).on('click', '#dropdown #linkText', function() { $(this).focus(); $(this).select(); }); - $('#fileList').on('click', '#dropdown #showPassword', function() { + $(document).on('click', '#dropdown #showPassword', function() { $('#linkPass').toggle('blind'); if (!$('#showPassword').is(':checked') ) { var itemType = $('#dropdown').data('item-type'); @@ -548,7 +559,7 @@ $(document).ready(function() { } }); - $('#fileList').on('focusout keyup', '#dropdown #linkPassText', function(event) { + $(document).on('focusout keyup', '#dropdown #linkPassText', function(event) { if ( $('#linkPassText').val() != '' && (event.type == 'focusout' || event.keyCode == 13) ) { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); @@ -560,7 +571,7 @@ $(document).ready(function() { } }); - $('#fileList').on('click', '#dropdown #expirationCheckbox', function() { + $(document).on('click', '#dropdown #expirationCheckbox', function() { if (this.checked) { OC.Share.showExpirationDate(''); } else { @@ -575,7 +586,7 @@ $(document).ready(function() { } }); - $('#fileList').on('change', '#dropdown #expirationDate', function() { + $(document).on('change', '#dropdown #expirationDate', function() { var itemType = $('#dropdown').data('item-type'); var itemSource = $('#dropdown').data('item-source'); $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) { @@ -586,33 +597,33 @@ $(document).ready(function() { }); - $('#fileList').on('submit', '#dropdown #emailPrivateLink', function(event) { - event.preventDefault(); - var link = $('#linkText').val(); - var itemType = $('#dropdown').data('item-type'); - var itemSource = $('#dropdown').data('item-source'); - var file = $('tr').filterAttr('data-id', String(itemSource)).data('file'); - var email = $('#email').val(); - if (email != '') { - $('#email').attr('disabled', "disabled"); - $('#email').val(t('core', 'Sending ...')); - $('#emailButton').attr('disabled', "disabled"); + $(document).on('submit', '#dropdown #emailPrivateLink', function(event) { + event.preventDefault(); + var link = $('#linkText').val(); + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); + var file = $('tr').filterAttr('data-id', String(itemSource)).data('file'); + var email = $('#email').val(); + if (email != '') { + $('#email').attr('disabled', "disabled"); + $('#email').val(t('core', 'Sending ...')); + $('#emailButton').attr('disabled', "disabled"); - $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file}, - function(result) { - $('#email').attr('disabled', "false"); - $('#emailButton').attr('disabled', "false"); - if (result && result.status == 'success') { - $('#email').css('font-weight', 'bold'); - $('#email').animate({ fontWeight: 'normal' }, 2000, function() { - $(this).val(''); - }).val(t('core','Email sent')); - } else { - OC.dialogs.alert(result.data.message, t('core', 'Error while sharing')); - } - }); - } - }); + $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file}, + function(result) { + $('#email').attr('disabled', "false"); + $('#emailButton').attr('disabled', "false"); + if (result && result.status == 'success') { + $('#email').css('font-weight', 'bold'); + $('#email').animate({ fontWeight: 'normal' }, 2000, function() { + $(this).val(''); + }).val(t('core','Email sent')); + } else { + OC.dialogs.alert(result.data.message, t('core', 'Error while sharing')); + } + }); + } + }); }); diff --git a/core/js/singleselect.js b/core/js/singleselect.js new file mode 100644 index 0000000000000000000000000000000000000000..1a018b7414872b3a740e7adf26d63d5ea7f1fc0f --- /dev/null +++ b/core/js/singleselect.js @@ -0,0 +1,76 @@ +(function ($) { + $.fn.singleSelect = function () { + return this.each(function (i, select) { + var input = $(''); + select = $(select); + input.css('position', 'absolute'); + input.css(select.offset()); + input.css({ + 'box-sizing': 'border-box', + '-moz-box-sizing': 'border-box', + 'margin': 0, + 'width': (select.width() - 5) + 'px', + 'height': (select.outerHeight() - 2) + 'px', + 'border': 'none', + 'box-shadow': 'none', + 'margin-top': '1px', + 'margin-left': '1px', + 'z-index': 1000 + }); + input.hide(); + $('body').append(input); + + select.on('change', function (event) { + var value = $(this).val(), + newAttr = $('option:selected', $(this)).attr('data-new'); + if (!(typeof newAttr !== 'undefined' && newAttr !== false)) { + input.hide(); + select.data('previous', value); + } else { + event.stopImmediatePropagation(); + input.show(); + select.css('background-color', 'white'); + input.focus(); + } + }); + + $(select).data('previous', $(select).val()); + + input.on('change', function () { + var value = $(this).val(); + if (value) { + select.children().attr('selected', null); + var existingOption = select.children().filter(function (i, option) { + return ($(option).val() == value); + }); + if (existingOption.length) { + existingOption.attr('selected', 'selected'); + } else { + var option = $('
-

ownCloudt( 'web services under your control' ); ?>

+

ownCloud – + t( 'web services under your control' ); ?>

diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index c8b580b5fd9df78112c4b808cc595d47acccd7c2..10540cfe36227850d4660a930413ffee0611b3e0 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -1,10 +1,12 @@ - + - <?php echo !empty($_['application'])?$_['application'].' | ':'' ?>ownCloud <?php echo !empty($_['user_displayname'])?' ('.$_['user_displayname'].') ':'' ?> + <?php echo !empty($_['application'])?$_['application'].' | ':'' ?>ownCloud + <?php echo !empty($_['user_displayname'])?' ('.$_['user_displayname'].') ':'' ?> - + + @@ -27,17 +29,19 @@
@@ -60,8 +67,9 @@
  • - class="active"> - + class="active"> +
  • diff --git a/core/templates/update.php b/core/templates/update.php index ae714dcfb92211849acd7dbde483e4e2f246bdd6..685a5536d06aa7056b42b241fc2ba7207a2691b5 100644 --- a/core/templates/update.php +++ b/core/templates/update.php @@ -1,5 +1,6 @@
    • - t('Updating ownCloud to version %s, this may take a while.', array($_['version'])); ?>

      + t('Updating ownCloud to version %s, this may take a while.', + array($_['version'])); ?>

    diff --git a/db_structure.xml b/db_structure.xml index f4111bfabd02bfccbea9860271a3e6a78e65b129..3ce41096d9ed525fe2c7ea32dda053de22c9aab4 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -94,6 +94,66 @@ + + + *dbprefix*file_map + + + + + logic_path + text + + true + 512 + + + + logic_path_hash + text + + true + 32 + + + + physic_path + text + + true + 512 + + + + physic_path_hash + text + + true + 32 + + + + file_map_lp_index + true + + logic_path_hash + ascending + + + + + file_map_pp_index + true + + physic_path_hash + ascending + + + + + +
    + *dbprefix*mimetypes @@ -206,7 +266,7 @@ integertrue - 4 + 8 diff --git a/l10n/af_ZA/core.po b/l10n/af_ZA/core.po index a08c5adb097dd1cbdb900a6b921c41b821141bbe..b0c9bf67feb8d26e4c58bc034d3f8c4c665e1af8 100644 --- a/l10n/af_ZA/core.po +++ b/l10n/af_ZA/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -51,7 +51,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -156,59 +157,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "Instellings" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -467,7 +468,7 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Skep `n admin-rekening" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Gevorderd" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Stel databasis op" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "sal gebruik word" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Databasis-gebruiker" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Databasis-wagwoord" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Databasis naam" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Maak opstelling klaar" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "webdienste onder jou beheer" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Teken uit" diff --git a/l10n/af_ZA/files.po b/l10n/af_ZA/files.po index 243d6a0e53a619f82df1d704e510d7477c330037..bdbedc57b7bf3dc07a0eab866247429a8166cc3b 100644 --- a/l10n/af_ZA/files.po +++ b/l10n/af_ZA/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,20 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -53,7 +67,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -148,64 +163,60 @@ msgstr "" msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:272 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:311 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:314 js/files.js:369 js/files.js:384 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:387 js/files.js:422 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:496 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:569 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:574 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:948 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:949 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:950 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:974 +#: js/files.js:969 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:971 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:979 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:981 msgid "{count} files" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/af_ZA/files_encryption.po b/l10n/af_ZA/files_encryption.po index 7bdb33d2fcc5dad311a27d6d4a2ad84c26af6a2d..535d61f3944e2ad9099a07268529c8a148d1f446 100644 --- a/l10n/af_ZA/files_encryption.po +++ b/l10n/af_ZA/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/af_ZA/files_trashbin.po b/l10n/af_ZA/files_trashbin.po index 0ac05a625a153063dcaaaf07a10c61a7bbe7aa84..a79bcc39407dbcc779cbba06c38e8684aa4c8183 100644 --- a/l10n/af_ZA/files_trashbin.po +++ b/l10n/af_ZA/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/af_ZA/files_versions.po b/l10n/af_ZA/files_versions.po index 6cb41d2c080903e580b3f69c4fa9d536421980bd..14eaae14745a492f99f498e1fdd438ff5bc81c50 100644 --- a/l10n/af_ZA/files_versions.po +++ b/l10n/af_ZA/files_versions.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-01 00:17+0100\n" -"PO-Revision-Date: 2012-08-12 22:37+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,10 +17,45 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/af_ZA/lib.po b/l10n/af_ZA/lib.po index e03f329b9b7060287648ccf6eaaabb433461befe..5c1a70c23db1a60a631074dbf025af37e6522eda 100644 --- a/l10n/af_ZA/lib.po +++ b/l10n/af_ZA/lib.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2012-07-27 22:23+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,27 +17,27 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:312 +#: app.php:349 msgid "Help" msgstr "Hulp" -#: app.php:319 +#: app.php:362 msgid "Personal" msgstr "Persoonlik" -#: app.php:324 +#: app.php:373 msgid "Settings" msgstr "Instellings" -#: app.php:329 +#: app.php:385 msgid "Users" msgstr "Gebruikers" -#: app.php:336 +#: app.php:398 msgid "Apps" msgstr "Toepassings" -#: app.php:338 +#: app.php:406 msgid "Admin" msgstr "Admin" @@ -49,15 +49,15 @@ msgstr "" msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/af_ZA/settings.po b/l10n/af_ZA/settings.po index a768c32d6cd6c899544be0d7619be0586a38619c..f1cfa82d304c0af4053d275fc378e255024ba401 100644 --- a/l10n/af_ZA/settings.po +++ b/l10n/af_ZA/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -21,12 +21,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,59 +116,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -177,116 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Wagwoord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nuwe wagwoord" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/af_ZA/user_ldap.po b/l10n/af_ZA/user_ldap.po index dd30840b77929d20f4838d71bb47c55a059dca4a..e8faea36b86dc740c39962803dcf9844771c1aad 100644 --- a/l10n/af_ZA/user_ldap.po +++ b/l10n/af_ZA/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 16:31+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/ar/core.po b/l10n/ar/core.po index 201273ebb961723ec80f20812242055df427ceed..a937cafae05ea9698aefc0e4943f2d798fc9aaa3 100644 --- a/l10n/ar/core.po +++ b/l10n/ar/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+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" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "ألا توجد فئة للإضافة؟" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "هذه الفئة موجودة مسبقاً" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "تشرين الثاني" msgid "December" msgstr "كانون الاول" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "تعديلات" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "منذ ثواني" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "منذ دقيقة" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} منذ دقائق" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "اليوم" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "خطأ" @@ -252,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "شارك" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "شارك" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "حصل خطأ عند عملية المشاركة" @@ -356,23 +357,23 @@ msgstr "حذف" msgid "share" msgstr "مشاركة" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "محمي بكلمة السر" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "حصل خطأ عند عملية إزالة تاريخ إنتهاء الصلاحية" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "حصل خطأ عند عملية تعيين تاريخ إنتهاء الصلاحية" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "إعادة تعيين كلمة سر ownCloud" @@ -468,7 +469,7 @@ msgstr "عدل الفئات" msgid "Add" msgstr "أدخل" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "تحذير أمان" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "لا يوجد مولّد أرقام عشوائية ، الرجاء تفعيل الـ PHP OpenSSL extension." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "أضف مستخدم رئيسي " -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "خيارات متقدمة" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "مجلد المعلومات" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "أسس قاعدة البيانات" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "سيتم استخدمه" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "مستخدم قاعدة البيانات" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "كلمة سر مستخدم قاعدة البيانات" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "إسم قاعدة البيانات" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "مساحة جدول قاعدة البيانات" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "خادم قاعدة البيانات" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "انهاء التعديلات" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "خدمات الوب تحت تصرفك" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "الخروج" diff --git a/l10n/ar/files.po b/l10n/ar/files.po index 76278a3e1a48c445025885d076eea24af85d142c..f05e15fa3ce71f76fc1bbef80603dac1c693fcef 100644 --- a/l10n/ar/files.po +++ b/l10n/ar/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+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" @@ -18,6 +18,20 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "الملفات" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "إلغاء مشاركة" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "محذوف" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "إغلق" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "الاسم" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "حجم" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "معدل" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -263,7 +274,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "لا يوجد شيء هنا. إرفع بعض الملفات!" msgid "Download" msgstr "تحميل" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "إلغاء مشاركة" + #: templates/index.php:105 msgid "Upload too large" msgstr "حجم الترفيع أعلى من المسموح" diff --git a/l10n/ar/files_encryption.po b/l10n/ar/files_encryption.po index 59f5adcf60334b9d6c10a4acafb226c9524c192d..66040076539c337ca76b3e821c9538edf6e4a641 100644 --- a/l10n/ar/files_encryption.po +++ b/l10n/ar/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+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" @@ -18,28 +18,6 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "التشفير" diff --git a/l10n/ar/files_external.po b/l10n/ar/files_external.po index a4a00601d16e8aff6de043125c1aaa474387c84d..7bb867f515241ce5113fb9b1849d7a42123ef068 100644 --- a/l10n/ar/files_external.po +++ b/l10n/ar/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+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" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "المستخدمين" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "حذف" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ar/files_trashbin.po b/l10n/ar/files_trashbin.po index 6b11eb74a1003ace893f530e3995f137a576814c..3f60e93c503a6a73788d1631a2a38c02b1a1f386 100644 --- a/l10n/ar/files_trashbin.po +++ b/l10n/ar/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "اسم" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "إلغاء" diff --git a/l10n/ar/files_versions.po b/l10n/ar/files_versions.po index 8224c627626c4c0306f51044b5f13ebf6a7b64f4..b915753cedc255c124a0be2220800a01967904f0 100644 --- a/l10n/ar/files_versions.po +++ b/l10n/ar/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+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" @@ -18,10 +18,45 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "السجل الزمني" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "أصدرة الملفات" diff --git a/l10n/ar/lib.po b/l10n/ar/lib.po index dbb9b7359cf675ceb72e88508745f3e9af5da02b..f30930423780db12b32e0d4fd730d33381e85f9c 100644 --- a/l10n/ar/lib.po +++ b/l10n/ar/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "المساعدة" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "شخصي" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "تعديلات" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "المستخدمين" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "معلومات إضافية" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "منذ ثواني" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/ar/settings.po b/l10n/ar/settings.po index e3785a9b5a724491496611d866cc40346ae19b74..bf92440de5e23e76588b888d1fbd1f7f51dcba16 100644 --- a/l10n/ar/settings.po +++ b/l10n/ar/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+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" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "فشل تحميل القائمة من الآب ستور" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "لم يتم التأكد من الشخصية بنجاح" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "طلبك غير مفهوم" msgid "Admins can't remove themself from the admin group" msgstr "لا يستطيع المدير إزالة حسابه من مجموعة المديرين" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "فشل إضافة المستخدم الى المجموعة %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "فشل إزالة المستخدم من المجموعة %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -119,59 +119,265 @@ msgstr "خطأ" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "حفظ" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "مجموعات" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "مدير المجموعة" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "حذف" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "تحذير أمان" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "المزيد" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "إصدار" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "طوّر من قبل ownCloud مجتمع, الـ النص المصدري مرخص بموجب رخصة أفيرو العمومية." + +#: templates/apps.php:11 msgid "Add your App" msgstr "أضف تطبيقاتك" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "المزيد من التطبيقات" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "إختر تطبيقاً" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "راجع صفحة التطبيق على apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-ترخيص من قبل " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "حدث" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "كتاب توثيق المستخدم" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "كتاب توثيق المدير" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "توثيق متوفر على الشبكة" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "منتدى" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "تعقب علة" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "دعم تجاري" @@ -180,116 +386,86 @@ msgstr "دعم تجاري" msgid "You have used %s of the available %s" msgstr "تم إستهلاك %s من المتوفر %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "الزبائن" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "تحميل عملاء سطح المكتب" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "تحميل عميل آندرويد" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "تحميل عميل آي أو أس" +msgid "Get the apps to sync your files" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "كلمات السر" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "لقد تم تغيير كلمة السر" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "لم يتم تعديل كلمة السر بنجاح" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "كلمات السر الحالية" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "كلمات سر جديدة" -#: templates/personal.php:28 -msgid "show" -msgstr "أظهر" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "عدل كلمة السر" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "العنوان البريدي" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "عنوانك البريدي" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "أدخل عنوانك البريدي لتفعيل استرجاع كلمة المرور" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "اللغة" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "ساعد في الترجمه" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "إستخدم هذا العنوان للإتصال بـ ownCloud في مدير الملفات" -#: templates/personal.php:85 -msgid "Version" -msgstr "إصدار" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "طوّر من قبل ownCloud مجتمع, الـ النص المصدري مرخص بموجب رخصة أفيرو العمومية." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "مجموعات" - #: templates/users.php:32 msgid "Create" msgstr "انشئ" @@ -298,34 +474,26 @@ msgstr "انشئ" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "شيء آخر" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "مدير المجموعة" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "حذف" diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po index d723f7f7d7dfa3affdf7290a35e0f42c25526366..059e10baefd5414a8032a185c02ab7640be9d9ab 100644 --- a/l10n/ar/user_ldap.po +++ b/l10n/ar/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+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" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/be/core.po b/l10n/be/core.po new file mode 100644 index 0000000000000000000000000000000000000000..dcb31520cd14ed450359645c8828c93ea38e980d --- /dev/null +++ b/l10n/be/core.po @@ -0,0 +1,594 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Семён Гариленко <2507496@gmail.com>, 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-17 00:25+0100\n" +"PO-Revision-Date: 2013-02-16 19:10+0000\n" +"Last-Translator: Сёмка Гавриленко <2507496@gmail.com>\n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/share.php:85 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:87 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:89 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:91 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:32 +msgid "Sunday" +msgstr "" + +#: js/config.php:32 +msgid "Monday" +msgstr "" + +#: js/config.php:32 +msgid "Tuesday" +msgstr "" + +#: js/config.php:32 +msgid "Wednesday" +msgstr "" + +#: js/config.php:32 +msgid "Thursday" +msgstr "" + +#: js/config.php:32 +msgid "Friday" +msgstr "" + +#: js/config.php:32 +msgid "Saturday" +msgstr "" + +#: js/config.php:33 +msgid "January" +msgstr "" + +#: js/config.php:33 +msgid "February" +msgstr "" + +#: js/config.php:33 +msgid "March" +msgstr "" + +#: js/config.php:33 +msgid "April" +msgstr "" + +#: js/config.php:33 +msgid "May" +msgstr "" + +#: js/config.php:33 +msgid "June" +msgstr "" + +#: js/config.php:33 +msgid "July" +msgstr "" + +#: js/config.php:33 +msgid "August" +msgstr "" + +#: js/config.php:33 +msgid "September" +msgstr "" + +#: js/config.php:33 +msgid "October" +msgstr "" + +#: js/config.php:33 +msgid "November" +msgstr "" + +#: js/config.php:33 +msgid "December" +msgstr "" + +#: js/js.js:286 +msgid "Settings" +msgstr "" + +#: js/js.js:767 +msgid "seconds ago" +msgstr "" + +#: js/js.js:768 +msgid "1 minute ago" +msgstr "" + +#: js/js.js:769 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:770 +msgid "1 hour ago" +msgstr "" + +#: js/js.js:771 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:772 +msgid "today" +msgstr "" + +#: js/js.js:773 +msgid "yesterday" +msgstr "" + +#: js/js.js:774 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:775 +msgid "last month" +msgstr "" + +#: js/js.js:776 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:777 +msgid "months ago" +msgstr "" + +#: js/js.js:778 +msgid "last year" +msgstr "" + +#: js/js.js:779 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "" + +#: js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:141 js/share.js:622 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +msgid "Password" +msgstr "" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "" + +#: js/share.js:339 +msgid "share" +msgstr "" + +#: js/share.js:373 js/share.js:569 +msgid "Password protected" +msgstr "" + +#: js/share.js:582 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:594 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:609 +msgid "Sending ..." +msgstr "" + +#: js/share.js:620 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:47 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: templates/login.php:28 +msgid "Username" +msgstr "" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "" + +#: strings.php:6 +msgid "Users" +msgstr "" + +#: strings.php:7 +msgid "Apps" +msgstr "" + +#: strings.php:8 +msgid "Admin" +msgstr "" + +#: strings.php:9 +msgid "Help" +msgstr "" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "" + +#: templates/installation.php:23 templates/installation.php:30 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:25 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an admin account" +msgstr "" + +#: templates/installation.php:52 +msgid "Advanced" +msgstr "Дасведчаны" + +#: templates/installation.php:54 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:61 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 +msgid "will be used" +msgstr "" + +#: templates/installation.php:109 +msgid "Database user" +msgstr "" + +#: templates/installation.php:113 +msgid "Database password" +msgstr "" + +#: templates/installation.php:117 +msgid "Database name" +msgstr "" + +#: templates/installation.php:125 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:131 +msgid "Database host" +msgstr "" + +#: templates/installation.php:136 +msgid "Finish setup" +msgstr "Завяршыць ўстаноўку." + +#: templates/layout.guest.php:33 +msgid "web services under your control" +msgstr "" + +#: templates/layout.user.php:48 +msgid "Log out" +msgstr "" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "" + +#: templates/login.php:41 +msgid "remember" +msgstr "" + +#: templates/login.php:43 +msgid "Log in" +msgstr "" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "Папярэдняя" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "Далей" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/be/files.po b/l10n/be/files.po new file mode 100644 index 0000000000000000000000000000000000000000..8a60af5a9604b5a61de98e0d83ce812c0bab2031 --- /dev/null +++ b/l10n/be/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:31 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:33 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:34 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:52 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:83 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:224 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:261 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:261 +msgid "Upload Error" +msgstr "" + +#: js/files.js:272 +msgid "Close" +msgstr "" + +#: js/files.js:311 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:314 js/files.js:369 js/files.js:384 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:387 js/files.js:422 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:496 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:569 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:574 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:948 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:949 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:950 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:969 +msgid "1 folder" +msgstr "" + +#: js/files.js:971 +msgid "{count} folders" +msgstr "" + +#: js/files.js:979 +msgid "1 file" +msgstr "" + +#: js/files.js:981 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/be/files_encryption.po b/l10n/be/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..f1aff43a6c5a1683710bcbe11a050e005d481451 --- /dev/null +++ b/l10n/be/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/be/files_external.po b/l10n/be/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..de27bede652979e9bc443cf5247f00d000a9f554 --- /dev/null +++ b/l10n/be/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:413 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:414 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:153 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/be/files_sharing.po b/l10n/be/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..c09045efa9b7bfb0877fbea5fe066cf545449ccb --- /dev/null +++ b/l10n/be/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:9 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:11 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:14 templates/public.php:30 +msgid "Download" +msgstr "" + +#: templates/public.php:29 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:35 +msgid "web services under your control" +msgstr "" diff --git a/l10n/be/files_trashbin.po b/l10n/be/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..83bee5fbbdd98188ea752e7e501f7abec0617d06 --- /dev/null +++ b/l10n/be/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/be/files_versions.po b/l10n/be/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..28ff041ebff6c4faddc893d14be6ce3deb39ca46 --- /dev/null +++ b/l10n/be/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/be/lib.po b/l10n/be/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..1759595aea3442911faee8cfe7549778e98b8535 --- /dev/null +++ b/l10n/be/lib.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: app.php:349 +msgid "Help" +msgstr "" + +#: app.php:362 +msgid "Personal" +msgstr "" + +#: app.php:373 +msgid "Settings" +msgstr "" + +#: app.php:385 +msgid "Users" +msgstr "" + +#: app.php:398 +msgid "Apps" +msgstr "" + +#: app.php:406 +msgid "Admin" +msgstr "" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "" + +#: template.php:114 +msgid "1 minute ago" +msgstr "" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:116 +msgid "1 hour ago" +msgstr "" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "" + +#: template.php:119 +msgid "yesterday" +msgstr "" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:81 +msgid "up to date" +msgstr "" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/be/settings.po b/l10n/be/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..22ae916f22aafbce6068102e85bb9022550a5264 --- /dev/null +++ b/l10n/be/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/be/user_ldap.po b/l10n/be/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..1d422381d076050aa5db1a0f502242749f9456e1 --- /dev/null +++ b/l10n/be/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 +msgid "Host" +msgstr "" + +#: templates/settings.php:21 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:22 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:22 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:22 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:23 +msgid "User DN" +msgstr "" + +#: templates/settings.php:23 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:24 +msgid "Password" +msgstr "" + +#: templates/settings.php:24 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:25 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:26 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:26 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:26 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:27 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:27 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:27 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 +msgid "Port" +msgstr "" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:38 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:39 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:40 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:40 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:40 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:41 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:62 +msgid "Help" +msgstr "" diff --git a/l10n/be/user_webdavauth.po b/l10n/be/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..16028ee79d808030b822e498304ac99d017c26c9 --- /dev/null +++ b/l10n/be/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/bg_BG/core.po b/l10n/bg_BG/core.po index 7a92f335d3fbead4e6724ace01d2a0da0a959097..4b1cd9d3cbc56197aea322beaf773102eed01dec 100644 --- a/l10n/bg_BG/core.po +++ b/l10n/bg_BG/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -54,7 +54,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -159,59 +160,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Настройки" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "преди секунди" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "преди 1 минута" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "преди 1 час" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "днес" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "вчера" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "последният месец" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "последната година" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "последните години" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Грешка" @@ -254,15 +255,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Споделяне" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Споделяне" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -358,23 +359,23 @@ msgstr "" msgid "share" msgstr "" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -389,7 +390,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "" @@ -428,7 +429,7 @@ msgstr "" #: lostpassword/templates/resetpassword.php:8 msgid "New password" -msgstr "" +msgstr "Нова парола" #: lostpassword/templates/resetpassword.php:11 msgid "Reset password" @@ -470,7 +471,7 @@ msgstr "" msgid "Add" msgstr "Добавяне" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -480,71 +481,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "уеб услуги под Ваш контрол" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "" diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po index ef076ab4f33c1ad1c77457f8c5b80c9363b3fbed..36e54d436757ba237c6bf543ee6d0892f806d390 100644 --- a/l10n/bg_BG/files.po +++ b/l10n/bg_BG/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -52,65 +66,66 @@ msgstr "Липсва временна папка" #: ajax/upload.php:34 msgid "Failed to write to disk" -msgstr "" +msgstr "Възникна проблем при запис в диска" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Невалидна директория." #: appinfo/app.php:10 msgid "Files" msgstr "Файлове" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Изтриване" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Преименуване" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Чакащо" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "препокриване" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "отказ" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "възтановяване" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -136,80 +151,76 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" -msgstr "" +msgstr "Възникна грешка при качването" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" -msgstr "" +msgstr "Затвори" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Качването е спряно." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Име" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Променено" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" -msgstr "" +msgstr "1 папка" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" -msgstr "" +msgstr "{count} папки" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" -msgstr "" +msgstr "1 файл" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" -msgstr "" +msgstr "{count} файла" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" @@ -253,7 +264,7 @@ msgstr "Ново" #: templates/index.php:10 msgid "Text file" -msgstr "" +msgstr "Текстов файл" #: templates/index.php:12 msgid "Folder" @@ -264,12 +275,12 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 msgid "Cancel upload" -msgstr "" +msgstr "Спри качването" #: templates/index.php:59 msgid "Nothing in here. Upload something!" @@ -279,6 +290,10 @@ msgstr "Няма нищо тук. Качете нещо." msgid "Download" msgstr "Изтегляне" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "Файлът който сте избрали за качване е прекалено голям" diff --git a/l10n/bg_BG/files_encryption.po b/l10n/bg_BG/files_encryption.po index 6faf2d1a518deabe97ec73c2fd6d1f1527c63841..4ec6da246a3540490bd731e7fc8b3535af2b2212 100644 --- a/l10n/bg_BG/files_encryption.po +++ b/l10n/bg_BG/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Криптиране" diff --git a/l10n/bg_BG/files_external.po b/l10n/bg_BG/files_external.po index 656df3768ccdd55f773dad21baf2ac3ac145d7a9..730475e3a93148f949acf934bf38d939836359dc 100644 --- a/l10n/bg_BG/files_external.po +++ b/l10n/bg_BG/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-10 00:04+0100\n" -"PO-Revision-Date: 2013-01-09 20:47+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Stefan Ilivanov \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -77,7 +77,7 @@ msgstr "Опции" #: templates/settings.php:12 msgid "Applicable" -msgstr "" +msgstr "Приложимо" #: templates/settings.php:27 msgid "Add mount point" @@ -116,6 +116,6 @@ msgstr "Позволено е на потребителите да ползва msgid "SSL root certificates" msgstr "SSL основни сертификати" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Импортиране на основен сертификат" diff --git a/l10n/bg_BG/files_trashbin.po b/l10n/bg_BG/files_trashbin.po index f759ccb5bdefcb7b9579fdcfc520d6e1682580e6..dd306b39a6730befdb6b11b7de85ce5c417557c5 100644 --- a/l10n/bg_BG/files_trashbin.po +++ b/l10n/bg_BG/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Stefan Ilivanov , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Невъзможно изтриване на %s завинаги" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Невъзможно възтановяване на %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "извършване на действие по възтановяване" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" +msgstr "изтриване на файла завинаги" + +#: js/trash.js:121 +msgid "Delete permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Име" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Изтрито" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" -msgstr "" +msgstr "1 папка" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" -msgstr "" +msgstr "{count} папки" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" -msgstr "" +msgstr "1 файл" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" -msgstr "" +msgstr "{count} файла" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Няма нищо. Кофата е празна!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Възтановяване" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Изтриване" diff --git a/l10n/bg_BG/files_versions.po b/l10n/bg_BG/files_versions.po index be466434b93a47ae246712f876fb1fd0dc1611c6..c79f0e63842b01f745bf921039e3d2284db24198 100644 --- a/l10n/bg_BG/files_versions.po +++ b/l10n/bg_BG/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "История" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/bg_BG/lib.po b/l10n/bg_BG/lib.po index 5e238d11362d3f766871de481fabd0a47a97a2fd..e61e739b8c1506b101819fd4f4b8abf93eef1c18 100644 --- a/l10n/bg_BG/lib.po +++ b/l10n/bg_BG/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -18,49 +18,49 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Помощ" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Лични" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Настройки" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Потребители" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Приложения" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Админ" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Изтеглянето като ZIP е изключено." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Файловете трябва да се изтеглят един по един." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Назад към файловете" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Избраните файлове са прекалено големи за генерирането на ZIP архив." #: helper.php:228 msgid "couldn't be determined" -msgstr "" +msgstr "не може да се определи" #: json.php:28 msgid "Application is not enabled" @@ -86,6 +86,108 @@ msgstr "Текст" msgid "Images" msgstr "Снимки" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Въведете потребителско име за администратор." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Въведете парола за администратор." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Укажете папка за данни" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s въведете потребителско име за базата с данни." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s въведете име на базата с данни." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "преди секунди" @@ -138,16 +240,16 @@ msgstr "последната година" msgid "years ago" msgstr "последните години" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s е налична. Получете повече информация" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "е актуална" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "проверката за обновления е изключена" diff --git a/l10n/bg_BG/settings.po b/l10n/bg_BG/settings.po index 4cef09976a2a00556519d58c33e8b890a576c074..471c8246b5a6c4936598e844577c6afda4926e22 100644 --- a/l10n/bg_BG/settings.po +++ b/l10n/bg_BG/settings.po @@ -4,14 +4,14 @@ # # Translators: # , 2011. -# Stefan Ilivanov , 2011. +# Stefan Ilivanov , 2011,2013. # Yasen Pramatarov , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -24,22 +24,22 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Възникна проблем с идентификацията" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" #: ajax/creategroup.php:10 msgid "Group already exists" -msgstr "" +msgstr "Групата вече съществува" #: ajax/creategroup.php:19 msgid "Unable to add group" -msgstr "" +msgstr "Невъзможно добавяне на група" #: ajax/enableapp.php:11 msgid "Could not enable app. " @@ -55,15 +55,15 @@ msgstr "" #: ajax/removegroup.php:13 msgid "Unable to delete group" -msgstr "" +msgstr "Невъзможно изтриване на група" #: ajax/removeuser.php:24 msgid "Unable to delete user" -msgstr "" +msgstr "Невъзможно изтриване на потребител" #: ajax/setlanguage.php:15 msgid "Language changed" -msgstr "" +msgstr "Езикът е променен" #: ajax/setlanguage.php:17 ajax/setlanguage.php:20 msgid "Invalid request" @@ -73,17 +73,17 @@ msgstr "Невалидна заявка" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -93,7 +93,7 @@ msgstr "" #: js/apps.js:36 js/apps.js:76 msgid "Disable" -msgstr "" +msgstr "Изключено" #: js/apps.js:36 js/apps.js:64 msgid "Enable" @@ -101,11 +101,11 @@ msgstr "Включено" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Моля почакайте...." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Обновява се..." #: js/apps.js:87 msgid "Error while updating app" @@ -117,162 +117,213 @@ msgstr "Грешка" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Обновено" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." +msgstr "Записване..." + +#: js/users.js:30 +msgid "deleted" +msgstr "изтрито" + +#: js/users.js:30 +msgid "undo" +msgstr "възтановяване" + +#: js/users.js:62 +msgid "Unable to remove user" msgstr "" -#: personal.php:34 personal.php:35 -msgid "__language_name__" +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Групи" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Изтриване" + +#: js/users.js:191 +msgid "add group" msgstr "" -#: templates/apps.php:11 -msgid "More Apps" +#: js/users.js:352 +msgid "A valid username must be provided" msgstr "" -#: templates/apps.php:24 -msgid "Select an App" +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" msgstr "" -#: templates/apps.php:28 -msgid "See application page at apps.owncloud.com" +#: js/users.js:358 +msgid "A valid password must be provided" msgstr "" -#: templates/apps.php:29 -msgid "-licensed by " +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "__language_name__" + +#: templates/admin.php:15 +msgid "Security Warning" msgstr "" -#: templates/apps.php:31 -msgid "Update" -msgstr "Обновяване" +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" -#: templates/help.php:3 -msgid "User Documentation" +#: templates/admin.php:29 +msgid "Setup Warning" msgstr "" -#: templates/help.php:4 -msgid "Administrator Documentation" +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." msgstr "" -#: templates/help.php:6 -msgid "Online Documentation" +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." msgstr "" -#: templates/help.php:7 -msgid "Forum" +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" msgstr "" -#: templates/help.php:9 -msgid "Bugtracker" +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." msgstr "" -#: templates/help.php:11 -msgid "Commercial Support" +#: templates/admin.php:58 +msgid "Locale not working" msgstr "" -#: templates/personal.php:8 +#: templates/admin.php:63 #, php-format -msgid "You have used %s of the available %s" +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." msgstr "" -#: templates/personal.php:12 -msgid "Clients" +#: templates/admin.php:75 +msgid "Internet connection not working" msgstr "" -#: templates/personal.php:13 -msgid "Download Desktop Clients" +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." msgstr "" -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/admin.php:92 +msgid "Cron" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 -msgid "Password" -msgstr "Парола" - -#: templates/personal.php:24 -msgid "Your password was changed" +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." msgstr "" -#: templates/personal.php:25 -msgid "Unable to change your password" +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." msgstr "" -#: templates/personal.php:26 -msgid "Current password" +#: templates/admin.php:128 +msgid "Sharing" msgstr "" -#: templates/personal.php:27 -msgid "New password" +#: templates/admin.php:134 +msgid "Enable Share API" msgstr "" -#: templates/personal.php:28 -msgid "show" +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" msgstr "" -#: templates/personal.php:29 -msgid "Change password" +#: templates/admin.php:142 +msgid "Allow links" msgstr "" -#: templates/personal.php:41 templates/users.php:80 -msgid "Display Name" +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" msgstr "" -#: templates/personal.php:42 -msgid "Your display name was changed" +#: templates/admin.php:150 +msgid "Allow resharing" msgstr "" -#: templates/personal.php:43 -msgid "Unable to change your display name" +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" msgstr "" -#: templates/personal.php:46 -msgid "Change display name" +#: templates/admin.php:158 +msgid "Allow users to share with anyone" msgstr "" -#: templates/personal.php:55 -msgid "Email" -msgstr "E-mail" +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" -#: templates/personal.php:56 -msgid "Your email address" +#: templates/admin.php:168 +msgid "Security" msgstr "" -#: templates/personal.php:57 -msgid "Fill in an email address to enable password recovery" +#: templates/admin.php:181 +msgid "Enforce HTTPS" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 -msgid "Language" +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." msgstr "" -#: templates/personal.php:69 -msgid "Help translate" +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." msgstr "" -#: templates/personal.php:74 -msgid "WebDAV" +#: templates/admin.php:195 +msgid "Log" msgstr "" -#: templates/personal.php:76 -msgid "Use this address to connect to your ownCloud in your file manager" +#: templates/admin.php:196 +msgid "Log level" msgstr "" -#: templates/personal.php:85 +#: templates/admin.php:223 +msgid "More" +msgstr "Още" + +#: templates/admin.php:230 templates/personal.php:102 msgid "Version" -msgstr "" +msgstr "Версия" -#: templates/personal.php:87 +#: templates/admin.php:233 templates/personal.php:105 msgid "" "Developed by the ownCloud community, the AGPL." msgstr "" -#: templates/users.php:21 templates/users.php:79 -msgid "Login Name" +#: templates/apps.php:11 +msgid "Add your App" +msgstr "Добавете Ваше приложение" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "Още приложения" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "Изберете приложение" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Групи" +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" -#: templates/users.php:32 -msgid "Create" +#: templates/apps.php:38 +msgid "Update" +msgstr "Обновяване" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "Потребителска документация" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "Административна документация" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "Документация" + +#: templates/help.php:11 +msgid "Forum" +msgstr "Форум" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "Докладвани грешки" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "Платена поддръжка" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" msgstr "" -#: templates/users.php:35 -msgid "Default Storage" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/users.php:42 templates/users.php:142 -msgid "Unlimited" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Покажи настройките за първоначално зареждане отново" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "Парола" + +#: templates/personal.php:38 +msgid "Your password was changed" msgstr "" -#: templates/users.php:60 templates/users.php:157 -msgid "Other" +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "Промяната на паролата не беше извършена" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "Текуща парола" + +#: templates/personal.php:42 +msgid "New password" +msgstr "Нова парола" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "Промяна на паролата" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "Екранно име" + +#: templates/personal.php:57 +msgid "Your display name was changed" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" +#: templates/personal.php:58 +msgid "Unable to change your display name" msgstr "" -#: templates/users.php:86 -msgid "Storage" +#: templates/personal.php:61 +msgid "Change display name" msgstr "" -#: templates/users.php:97 +#: templates/personal.php:70 +msgid "Email" +msgstr "E-mail" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "Вашия email адрес" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "Език" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "Помогнете с превода" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "WebDAV" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "Потребител" + +#: templates/users.php:32 +msgid "Create" +msgstr "Създаване" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "Хранилище по подразбиране" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "Неограничено" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "Други" + +#: templates/users.php:84 +msgid "Storage" +msgstr "Хранилище" + +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" -msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Изтриване" +msgstr "По подразбиране" diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po index 932ba233880e50498e551db9d06398f403a94b1d..fd4876ac72a7eaa4231fddc16100d1340a8f5836 100644 --- a/l10n/bg_BG/user_ldap.po +++ b/l10n/bg_BG/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/bn_BD/core.po b/l10n/bn_BD/core.po index 962887113893981ad85819ff9d2a474f5238e846..4bac9a5d5fb4884248655187d3c3e7d8d46967cc 100644 --- a/l10n/bn_BD/core.po +++ b/l10n/bn_BD/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "যোগ করার মত কোন ক্যাটেগরি নেই ?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "এই ক্যাটেগরিটি পূর্ব থেকেই বিদ্যমানঃ" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "নভেম্বর" msgid "December" msgstr "ডিসেম্বর" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "নিয়ামকসমূহ" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "সেকেন্ড পূর্বে" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 মিনিট পূর্বে" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} মিনিট পূর্বে" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 ঘন্টা পূর্বে" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} ঘন্টা পূর্বে" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "আজ" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "গতকাল" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} দিন পূর্বে" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "গতমাস" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} মাস পূর্বে" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "মাস পূর্বে" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "গত বছর" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "বছর পূর্বে" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "অবজেক্টের ধরণটি সুনির্দিষ্ট নয়।" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "সমস্যা" @@ -252,15 +253,15 @@ msgstr "অ্যাপের নামটি সুনির্দিষ্ট msgid "The required file {file} is not installed!" msgstr "আবশ্যিক {file} টি সংস্থাপিত নেই !" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "ভাগাভাগি কর" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "ভাগাভাগিকৃত" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "ভাগাভাগি কর" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "ভাগাভাগি করতে সমস্যা দেখা দিয়েছে " @@ -356,23 +357,23 @@ msgstr "মুছে ফেল" msgid "share" msgstr "ভাগাভাগি কর" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "কূটশব্দদ্বারা সুরক্ষিত" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ বাতিল করতে সমস্যা দেখা দিয়েছে" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করতে সমস্যা দেখা দিয়েছে" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "পাঠানো হচ্ছে......" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "ই-মেইল পাঠানো হয়েছে" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud কূটশব্দ পূনঃনির্ধারণ" @@ -468,7 +469,7 @@ msgstr "ক্যাটেগরি সম্পাদনা" msgid "Add" msgstr "যোগ কর" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "নিরাপত্তাজনিত সতর্কতা" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "প্রশাসক একাউন্ট তৈরী করুন" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "সুচারু" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "ডাটা ফোল্ডার " -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "ডাটাবেচ কনফিগার করুন" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "ব্যবহৃত হবে" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "ডাটাবেজ ব্যবহারকারী" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "ডাটাবেজ কূটশব্দ" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "ডাটাবেজের নাম" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "ডাটাবেজ টেবলস্পেস" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "ডাটাবেজ হোস্ট" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "সেটআপ সুসম্পন্ন কর" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "ওয়েব সার্ভিসের নিয়ন্ত্রণ আপনার হাতের মুঠোয়" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "প্রস্থান" diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po index c2ccab5b3380102dc254ce3db4c2517add918a01..48aea946563df4f1936a920c34a42d3c81db6f69 100644 --- a/l10n/bn_BD/files.po +++ b/l10n/bn_BD/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s কে স্থানান্তর করা সম্ভব হলো না" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।" @@ -54,8 +68,8 @@ msgid "Failed to write to disk" msgstr "ডিস্কে লিখতে ব্যর্থ" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "যথেষ্ঠ পরিমাণ স্থান নেই" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -65,51 +79,52 @@ msgstr "ভুল ডিরেক্টরি" msgid "Files" msgstr "ফাইল" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "ভাগাভাগি বাতিল " - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "মুছে ফেল" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "পূনঃনামকরণ" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "মুলতুবি" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} টি বিদ্যমান" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "প্রতিস্থাপন" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "নাম সুপারিশ করুন" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "বাতিল" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} প্রতিস্থাপন করা হয়েছে" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "ক্রিয়া প্রত্যাহার" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} কে {old_name} নামে প্রতিস্থাপন করা হয়েছে" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "আপনার ফাইলটি আপলোড করা সম্ভব হলো না, কেননা এটি হয় একটি ফোল্ডার কিংবা এর আকার ০ বাইট" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "আপলোড করতে সমস্যা " -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "বন্ধ" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "মুলতুবি" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "১টি ফাইল আপলোড করা হচ্ছে" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} টি ফাইল আপলোড করা হচ্ছে" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "আপলোড বাতিল করা হয়েছে।" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL ফাঁকা রাখা যাবে না।" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "নাম" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "আকার" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "পরিবর্তিত" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "১টি ফোল্ডার" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} টি ফোল্ডার" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "১টি ফাইল" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} টি ফাইল" @@ -263,7 +274,7 @@ msgid "From link" msgstr " লিংক থেকে" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "এখানে কিছুই নেই। কিছু আপলো msgid "Download" msgstr "ডাউনলোড" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "ভাগাভাগি বাতিল " + #: templates/index.php:105 msgid "Upload too large" msgstr "আপলোডের আকারটি অনেক বড়" diff --git a/l10n/bn_BD/files_encryption.po b/l10n/bn_BD/files_encryption.po index aa9ec9846229082171f08d7366a6b0d030f455a3..7c8a89fc3b7a199225ab7099eece613a103fe572 100644 --- a/l10n/bn_BD/files_encryption.po +++ b/l10n/bn_BD/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "সংকেতায়ন" diff --git a/l10n/bn_BD/files_external.po b/l10n/bn_BD/files_external.po index fc11b94750f27e4559d84d3a5f906635fce6e5d5..f8a2b4087831300bfab44dc00d0830d245a86b7b 100644 --- a/l10n/bn_BD/files_external.po +++ b/l10n/bn_BD/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-11 00:05+0100\n" -"PO-Revision-Date: 2013-01-10 10:28+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Shubhra Paul \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "দয়া করে সঠিক এবং বৈধ Dropbox app key and msgid "Error configuring Google Drive storage" msgstr "Google Drive সংরক্ষণাগার নির্ধারণ করতে সমস্যা " -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -115,6 +115,6 @@ msgstr "ব্যবহারকারীদেরকে তাদের নি msgid "SSL root certificates" msgstr "SSL রুট সনদপত্র" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "রুট সনদপত্রটি আমদানি করুন" diff --git a/l10n/bn_BD/files_trashbin.po b/l10n/bn_BD/files_trashbin.po index e3052a641a00cbd4bb952e92c1d60c510ee50145..d6a3063e74d923efbefd5b80736d193c7fe9e8cd 100644 --- a/l10n/bn_BD/files_trashbin.po +++ b/l10n/bn_BD/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "রাম" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "১টি ফোল্ডার" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} টি ফোল্ডার" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "১টি ফাইল" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} টি ফাইল" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "মুছে" diff --git a/l10n/bn_BD/files_versions.po b/l10n/bn_BD/files_versions.po index 2af1e4efdd9c35db55cdaa98e63fed3afaf5af18..3c072f781609835c2af596e7df2803ac409ca9e2 100644 --- a/l10n/bn_BD/files_versions.po +++ b/l10n/bn_BD/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "ইতিহাস" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "ফাইল ভার্সন করা" diff --git a/l10n/bn_BD/lib.po b/l10n/bn_BD/lib.po index da90c84c9766ad8100dad6e2cacd0a1b7b1f9f0b..27e8d80e84f0c397e306d16cb9b9cf7453d87188 100644 --- a/l10n/bn_BD/lib.po +++ b/l10n/bn_BD/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "সহায়িকা" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "ব্যক্তিগত" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "নিয়ামকসমূহ" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "ব্যভহারকারী" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "অ্যাপ" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "প্রশাসক" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP ডাউনলোড বন্ধ করা আছে।" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "ফাইলগুলো একে একে ডাউনলোড করা আবশ্যক।" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "ফাইলে ফিরে চল" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "নির্বাচিত ফাইলগুলো এতই বৃহৎ যে জিপ ফাইল তৈরী করা সম্ভব নয়।" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "সেকেন্ড পূর্বে" @@ -137,16 +239,16 @@ msgstr "গত বছর" msgid "years ago" msgstr "বছর পূর্বে" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s এখন সুলভ। আরও জানুন" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "সর্বশেষ" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "পরিবর্ধন পরীক্ষণ করা বন্ধ রাখা হয়েছে" diff --git a/l10n/bn_BD/settings.po b/l10n/bn_BD/settings.po index 946bd8cd254de0034e29ce644d3b478677b636f7..609d01de0bf9aaf096fd8beec865ec65d2c8801d 100644 --- a/l10n/bn_BD/settings.po +++ b/l10n/bn_BD/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "অ্যাপস্টোর থেকে তালিকা লোড করতে সক্ষম নয়" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "অনুমোদন ঘটিত সমস্যা" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "অনুরোধটি যথাযথ নয়" msgid "Admins can't remove themself from the admin group" msgstr "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না " -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "সমস্যা" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "সংরক্ষণ করা হচ্ছে.." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "ক্রিয়া প্রত্যাহার" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "গোষ্ঠীসমূহ" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "গোষ্ঠী প্রশাসক" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "মুছে ফেল" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "নিরাপত্তাজনিত সতর্কতা" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "বেশী" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "ভার্সন" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "তৈলী করেছেন ownCloud সম্প্রদায়, যার উৎস কোডটি AGPL এর অধীনে লাইসেন্সকৃত।" + +#: templates/apps.php:11 msgid "Add your App" msgstr "আপনার অ্যাপটি যোগ করুন" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "আরও অ্যাপ" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "অ্যাপ নির্বাচন করুন" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "apps.owncloud.com এ অ্যাপ্লিকেসন পৃষ্ঠা দেখুন" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-লাইসেন্সধারী " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "পরিবর্ধন" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "ব্যবহারকারী সহায়িকা" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "প্রশাসক সহায়িকা" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "অনলাইন সহায়িকা" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "ফোরাম" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "বাগট্র্যাকার" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "বাণিজ্যিক সাপোর্ট" @@ -178,116 +384,86 @@ msgstr "বাণিজ্যিক সাপোর্ট" msgid "You have used %s of the available %s" msgstr "আপনি ব্যবহার করছেন %s, সুলভ %s এর মধ্যে।" -#: templates/personal.php:12 -msgid "Clients" -msgstr "ক্লায়েন্ট" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "ডেস্কটপ ক্লায়েন্ট ডাউনলোড করুন" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "অ্যান্ড্রয়েড ক্লায়েন্ট ডাউনলোড করুন" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS ক্লায়েন্ট ডাউনলোড করুন" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "প্রথমবার চালানোর যাদুকর পূনরায় প্রদর্শন কর" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "কূটশব্দ" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "আপনার কূটশব্দটি পরিবর্তন করা হয়েছে " -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "আপনার কূটশব্দটি পরিবর্তন করতে সক্ষম নয়" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "বর্তমান কূটশব্দ" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "নতুন কূটশব্দ" -#: templates/personal.php:28 -msgid "show" -msgstr "প্রদর্শন" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "কূটশব্দ পরিবর্তন করুন" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "ই-মেইল " -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "আপনার ই-মেইল ঠিকানা" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "কূটশব্দ পূনরূদ্ধার সক্রিয় করার জন্য ই-মেইল ঠিকানাটি পূরণ করুন" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "ভাষা" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "অনুবাদ করতে সহায়তা করুন" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "আপনার ownCloud এ সংযুক্ত হতে এই ঠিকানাটি আপনার ফাইল ব্যবস্থাপকে ব্যবহার করুন" -#: templates/personal.php:85 -msgid "Version" -msgstr "ভার্সন" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "তৈলী করেছেন ownCloud সম্প্রদায়, যার উৎস কোডটি AGPL এর অধীনে লাইসেন্সকৃত।" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "গোষ্ঠীসমূহ" - #: templates/users.php:32 msgid "Create" msgstr "তৈরী কর" @@ -296,34 +472,26 @@ msgstr "তৈরী কর" msgid "Default Storage" msgstr "পূর্বনির্ধারিত সংরক্ষণাগার" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "অসীম" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "অন্যান্য" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "গোষ্ঠী প্রশাসক" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "সংরক্ষণাগার" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "পূর্বনির্ধারিত" - -#: templates/users.php:165 -msgid "Delete" -msgstr "মুছে ফেল" diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po index 2f79910e8158f8eced6d8d4cccb92ed0e05e1254..b39dcc30cbc3fc44d190cd9d42eaa1176acc8337 100644 --- a/l10n/bn_BD/user_ldap.po +++ b/l10n/bn_BD/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -213,8 +213,8 @@ msgid "Use TLS" msgstr "TLS ব্যবহার কর" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/ca/core.po b/l10n/ca/core.po index 8f10fe8239a4ed1ddd6e58e308f8639aa8d8ddeb..1ec21d10858ec0b824f7d7be77eaf9509ad29ec1 100644 --- a/l10n/ca/core.po +++ b/l10n/ca/core.po @@ -6,13 +6,14 @@ # , 2012. # , 2013. # , 2011-2013. +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 08:40+0000\n" +"Last-Translator: aseques \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,24 +21,24 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "L'usuari %s ha compartit un fitxer amb vós" -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "L'usuari %s ha compartit una carpeta amb vós" -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "L'usuari %s ha compartit el fitxer \"%s\" amb vós. Està disponible per a la descàrrega a: %s" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -53,8 +54,9 @@ msgid "No category to add?" msgstr "No voleu afegir cap categoria?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Aquesta categoria ja existeix:" +#, php-format +msgid "This category already exists: %s" +msgstr "Aquesta categoria ja existeix: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -82,135 +84,135 @@ msgstr "No hi ha categories per eliminar." msgid "Error removing %s from favorites." msgstr "Error en eliminar %s dels preferits." -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "Diumenge" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "Dilluns" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "Dimarts" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "Dimecres" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "Dijous" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "Divendres" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "Dissabte" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "Gener" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "Febrer" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "Març" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "Abril" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "Maig" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "Juny" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "Juliol" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "Agost" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "Setembre" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "Octubre" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "Novembre" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "Desembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Arranjament" -#: js/js.js:760 +#: js/js.js:768 msgid "seconds ago" msgstr "segons enrere" -#: js/js.js:761 +#: js/js.js:769 msgid "1 minute ago" msgstr "fa 1 minut" -#: js/js.js:762 +#: js/js.js:770 msgid "{minutes} minutes ago" msgstr "fa {minutes} minuts" -#: js/js.js:763 +#: js/js.js:771 msgid "1 hour ago" msgstr "fa 1 hora" -#: js/js.js:764 +#: js/js.js:772 msgid "{hours} hours ago" msgstr "fa {hours} hores" -#: js/js.js:765 +#: js/js.js:773 msgid "today" msgstr "avui" -#: js/js.js:766 +#: js/js.js:774 msgid "yesterday" msgstr "ahir" -#: js/js.js:767 +#: js/js.js:775 msgid "{days} days ago" msgstr "fa {days} dies" -#: js/js.js:768 +#: js/js.js:776 msgid "last month" msgstr "el mes passat" -#: js/js.js:769 +#: js/js.js:777 msgid "{months} months ago" msgstr "fa {months} mesos" -#: js/js.js:770 +#: js/js.js:778 msgid "months ago" msgstr "mesos enrere" -#: js/js.js:771 +#: js/js.js:779 msgid "last year" msgstr "l'any passat" -#: js/js.js:772 +#: js/js.js:780 msgid "years ago" msgstr "anys enrere" @@ -240,8 +242,8 @@ msgid "The object type is not specified." msgstr "No s'ha especificat el tipus d'objecte." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Error" @@ -253,15 +255,15 @@ msgstr "No s'ha especificat el nom de l'aplicació." msgid "The required file {file} is not installed!" msgstr "El fitxer requerit {file} no està instal·lat!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Comparteix" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Compartit" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Comparteix" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Error en compartir" @@ -293,7 +295,7 @@ msgstr "Comparteix amb enllaç" msgid "Password protect" msgstr "Protegir amb contrasenya" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 msgid "Password" msgstr "Contrasenya" @@ -357,23 +359,23 @@ msgstr "elimina" msgid "share" msgstr "comparteix" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protegeix amb contrasenya" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Error en eliminar la data d'expiració" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Error en establir la data d'expiració" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Enviant..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "El correu electrónic s'ha enviat" @@ -386,9 +388,9 @@ msgstr "L'actualització ha estat incorrecte. Comuniqueu aquest error a documentation." +msgstr "Per més informació sobre com configurar correctament el servidor, mireu la documentació." + +#: templates/installation.php:37 msgid "Create an admin account" msgstr "Crea un compte d'administrador" -#: templates/installation.php:50 +#: templates/installation.php:55 msgid "Advanced" msgstr "Avançat" -#: templates/installation.php:52 +#: templates/installation.php:57 msgid "Data folder" msgstr "Carpeta de dades" -#: templates/installation.php:59 +#: templates/installation.php:66 msgid "Configure the database" msgstr "Configura la base de dades" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 msgid "will be used" msgstr "s'usarà" -#: templates/installation.php:107 +#: templates/installation.php:129 msgid "Database user" msgstr "Usuari de la base de dades" -#: templates/installation.php:111 +#: templates/installation.php:134 msgid "Database password" msgstr "Contrasenya de la base de dades" -#: templates/installation.php:115 +#: templates/installation.php:139 msgid "Database name" msgstr "Nom de la base de dades" -#: templates/installation.php:123 +#: templates/installation.php:149 msgid "Database tablespace" msgstr "Espai de taula de la base de dades" -#: templates/installation.php:129 +#: templates/installation.php:156 msgid "Database host" msgstr "Ordinador central de la base de dades" -#: templates/installation.php:134 +#: templates/installation.php:162 msgid "Finish setup" msgstr "Acaba la configuració" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "controleu els vostres serveis web" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "Surt" @@ -575,7 +582,7 @@ msgstr "Inici de sessió" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Acreditacions alternatives" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index 78422f41e60776fa6998ce9a1c08d4812843d059..081664ec16ba268b2938fbf952557c2bcb94fa17 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/files.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,6 +24,20 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr " No s'ha pogut moure %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "No es pot canviar el nom del fitxer" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "No s'ha carregat cap fitxer. Error desconegut" @@ -60,7 +74,7 @@ msgid "Failed to write to disk" msgstr "Ha fallat en escriure al disc" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "No hi ha prou espai disponible" #: ajax/upload.php:83 @@ -71,51 +85,52 @@ msgstr "Directori no vàlid." msgid "Files" msgstr "Fitxers" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Deixa de compartir" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Esborra permanentment" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Suprimeix" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Reanomena" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendents" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} ja existeix" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "substitueix" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugereix un nom" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancel·la" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "s'ha substituït {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "desfés" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "s'ha substituït {old_name} per {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "executa d'operació d'esborrar" @@ -141,78 +156,74 @@ msgstr "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden ac msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "S'està preparant la baixada. Pot trigar una estona si els fitxers són grans." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Error en la pujada" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Tanca" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendents" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fitxer pujant" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} fitxers en pujada" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "La pujada s'ha cancel·lat." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "La URL no pot ser buida" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de carpeta no vàlid. L'ús de 'Shared' està reservat per Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Mida" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 carpeta" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} carpetes" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fitxer" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fitxers" @@ -269,8 +280,8 @@ msgid "From link" msgstr "Des d'enllaç" #: templates/index.php:40 -msgid "Trash" -msgstr "Esborra" +msgid "Deleted files" +msgstr "Fitxers esborrats" #: templates/index.php:46 msgid "Cancel upload" @@ -284,6 +295,10 @@ msgstr "Res per aquí. Pugeu alguna cosa!" msgid "Download" msgstr "Baixa" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Deixa de compartir" + #: templates/index.php:105 msgid "Upload too large" msgstr "La pujada és massa gran" diff --git a/l10n/ca/files_encryption.po b/l10n/ca/files_encryption.po index 481b00ceee933a1ad7a3c7c6c41a4ebf86df5589..98f7c39d55d97267260364d1d740c03dbae29787 100644 --- a/l10n/ca/files_encryption.po +++ b/l10n/ca/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 07:20+0000\n" -"Last-Translator: rogerc \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,28 +19,6 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Connecteu-vos al client ownCloud i canvieu la contrasenya d'encriptació per completar la conversió." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "s'ha commutat a l'encriptació per part del client" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Canvia la contrasenya d'encriptació per la d'accés" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Comproveu les contrasenyes i proveu-ho de nou." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "No s'ha pogut canviar la contrasenya d'encriptació de fitxers per la d'accés" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Encriptatge" diff --git a/l10n/ca/files_external.po b/l10n/ca/files_external.po index 6d1515e0ba98f584009961805e7817b3aa11a3b8..f8321df44f6c7b207cc543aa7905afedd9563862 100644 --- a/l10n/ca/files_external.po +++ b/l10n/ca/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-14 00:16+0100\n" -"PO-Revision-Date: 2012-12-13 09:50+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox" msgid "Error configuring Google Drive storage" msgstr "Error en configurar l'emmagatzemament Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Avís: \"smbclient\" no està instal·lat. No es pot muntar la compartició CIFS/SMB. Demaneu a l'administrador del sistema que l'instal·li." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "Usuaris" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Elimina" @@ -112,10 +112,10 @@ msgstr "Habilita l'emmagatzemament extern d'usuari" msgid "Allow users to mount their own external storage" msgstr "Permet als usuaris muntar el seu emmagatzemament extern propi" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Certificats SSL root" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importa certificat root" diff --git a/l10n/ca/files_trashbin.po b/l10n/ca/files_trashbin.po index 2563d256cc73ceae415c3cbb808e273b669327ca..616424f0f79c440a4100b65535ccd614783d8683 100644 --- a/l10n/ca/files_trashbin.po +++ b/l10n/ca/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "No s'ha pogut esborrar permanentment %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "No s'ha pogut restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "executa l'operació de restauració" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "esborra el fitxer permanentment" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Esborra permanentment" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nom" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Eliminat" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 carpeta" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} carpetes" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fitxer" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} fitxers" @@ -57,3 +71,7 @@ msgstr "La paperera està buida!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Recupera" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Esborra" diff --git a/l10n/ca/files_versions.po b/l10n/ca/files_versions.po index 0db50601e4c71c660a8574315a0bda62cd523863..43021a3304d59e3145437551a121521a8219842f 100644 --- a/l10n/ca/files_versions.po +++ b/l10n/ca/files_versions.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 15:40+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "No s'ha pogut revertir: %s" + +#: history.php:40 +msgid "success" +msgstr "èxit" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "El fitxer %s s'ha revertit a la versió %s" + +#: history.php:49 +msgid "failure" +msgstr "fallada" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "El fitxer %s no s'ha pogut revertir a la versió %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "No hi ha versións antigues disponibles" + +#: history.php:73 +msgid "No path specified" +msgstr "No heu especificat el camí" + #: js/versions.js:16 msgid "History" msgstr "Historial" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Reverteix un fitxer a una versió anterior fent clic en el seu botó de reverteix" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Fitxers de Versions" diff --git a/l10n/ca/lib.po b/l10n/ca/lib.po index 965da96ee3144d01868ef0d9d31b91299136d182..c25edd4be16ce8fcb3053c65cab890ac14a60e11 100644 --- a/l10n/ca/lib.po +++ b/l10n/ca/lib.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 09:24+0000\n" -"Last-Translator: rogerc \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +19,43 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ajuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Configuració" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usuaris" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicacions" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administració" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "La baixada en ZIP està desactivada." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Els fitxers s'han de baixar d'un en un." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Torna a Fitxers" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Els fitxers seleccionats son massa grans per generar un fitxer zip." @@ -86,6 +87,108 @@ msgstr "Text" msgid "Images" msgstr "Imatges" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Establiu un nom d'usuari per l'administrador." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Establiu una contrasenya per l'administrador." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especifiqueu una carpeta de dades." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s escriviu el nom d'usuari de la base de dades." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s escriviu el nom de la base de dades." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s no podeu usar punts en el nom de la base de dades" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s establiu l'ordinador central de la base de dades." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nom d'usuari i/o contrasenya PostgreSQL no vàlids" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Heu d'escriure un compte existent o el d'administrador." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nom d'usuari i/o contrasenya Oracle no vàlids" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nom d'usuari i/o contrasenya MySQL no vàlids" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Error DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "L'ordre en conflicte és: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "L'usuari MySQL '%s'@'localhost' ja existeix." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Elimina aquest usuari de MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "L'usuari MySQL '%s'@'%%' ja existeix" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Elimina aquest usuari de MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Comproveu les guies d'instal·lació." + #: template.php:113 msgid "seconds ago" msgstr "segons enrere" @@ -138,16 +241,16 @@ msgstr "l'any passat" msgid "years ago" msgstr "fa anys" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s està disponible. Obtén més informació" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "actualitzat" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "la comprovació d'actualitzacions està desactivada" diff --git a/l10n/ca/settings.po b/l10n/ca/settings.po index 4f2bbf05a06d1012a318189f235f4abfaf3df963..4b97f91f2f282563b15d319822d68e564bcbe440 100644 --- a/l10n/ca/settings.po +++ b/l10n/ca/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -27,14 +27,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "No s'ha pogut carregar la llista des de l'App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Error d'autenticació" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "No s'ha pogut canviar el nom a mostrar" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -76,17 +76,17 @@ msgstr "Sol.licitud no vàlida" msgid "Admins can't remove themself from the admin group" msgstr "Els administradors no es poden eliminar del grup admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "No es pot afegir l'usuari al grup %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "No es pot eliminar l'usuari del grup %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "No s'ha pogut actualitzar l'aplicació." @@ -122,59 +122,265 @@ msgstr "Error" msgid "Updated" msgstr "Actualitzada" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "S'està desant..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "esborrat" + +#: js/users.js:30 +msgid "undo" +msgstr "desfés" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "No s'ha pogut eliminar l'usuari" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grups" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grup Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Suprimeix" + +#: js/users.js:191 +msgid "add group" +msgstr "afegeix grup" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Heu de facilitar un nom d'usuari vàlid" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Error en crear l'usuari" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Heu de facilitar una contrasenya vàlida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Català" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Avís de seguretat" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "La carpeta de dades i els fitxers provablement són accessibles des d'internet. El fitxer .htaccess que proporciona ownCloud no funciona. Us recomanem que configureu el vostre servidor web de manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de la carpeta arrel del servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Avís de configuració" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Comproveu les guies d'instal·lació." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "No s'ha trobat el mòdul 'fileinfo'" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Locale no funciona" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "La connexió a internet no funciona" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Aquest servidor ownCloud no té cap connexió a internet que funcioni. Això significa que algunes de les característiques com el muntatge d'emmagatzemament externs, les notificacions quant a actualitzacions o la instal·lació d'aplicacions de tercers no funcionarà. L'accés remot a fitxers i l'enviament de correus electrònics podria tampoc no funcionar. Us suggerim que habiliteu la connexió a internet per aquest servidor si voleu gaudir de totes les possibilitats d'ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Executa una tasca per cada paquet carregat" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php està registrat en un servei webcron. Feu la crida a cron.php a l'arrel d'ownCloud cada minut a través de http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Usa un servei cron del sistema. Feu la crida al fitxer cron.php a través d'un cronjob del sistema cada minut." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Compartir" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Habilita l'API de compartir" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permet que les aplicacions utilitzin l'API de compartir" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permet enllaços" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permet als usuaris compartir elements amb el públic amb enllaços" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permet compartir de nou" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permet als usuaris compartir de nou elements ja compartits amb ells" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permet compartir amb qualsevol" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permet als usuaris compartir només amb els usuaris del seu grup" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Seguretat" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Força HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Força als clients la connexió amb ownCloud via una connexió encriptada." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Connecteu aquesta instància onwCloud via HTTPS per habilitar o deshabilitar el forçament SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Registre" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nivell de registre" + +#: templates/admin.php:223 +msgid "More" +msgstr "Més" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versió" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desenvolupat per la comunitat ownCloud, el codi font té llicència AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Afegiu la vostra aplicació" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Més aplicacions" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Seleccioneu una aplicació" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Mireu la pàgina d'aplicacions a apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-propietat de " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualitza" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentació d'usuari" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentació d'administrador" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentació en línia" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fòrum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Seguiment d'errors" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Suport comercial" @@ -183,116 +389,86 @@ msgstr "Suport comercial" msgid "You have used %s of the available %s" msgstr "Heu utilitzat %s d'un total disponible de %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clients" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Baixa clients d'escriptori" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr " Baixa el client per Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Baixa el client per iOS" +msgid "Get the apps to sync your files" +msgstr "Obtén les aplicacions per sincronitzar fitxers" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Torna a mostrar l'assistent de primera execució" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Contrasenya" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "La seva contrasenya s'ha canviat" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "No s'ha pogut canviar la contrasenya" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Contrasenya actual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Contrasenya nova" -#: templates/personal.php:28 -msgid "show" -msgstr "mostra" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Canvia la contrasenya" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nom a mostrar" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "El vostre nom a mostrar ha canviat" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "No s'ha pogut canviar el vostre nom a mostrar" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Canvia el nom a mostrar" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Correu electrònic" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Correu electrònic" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Ompliu el correu electrònic per activar la recuperació de contrasenya" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ajudeu-nos amb la traducció" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Useu aquesta adreça per connectar amb ownCloud des del gestor de fitxers" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versió" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desenvolupat per la comunitat ownCloud, el codi font té llicència AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nom d'accés" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grups" - #: templates/users.php:32 msgid "Create" msgstr "Crea" @@ -301,34 +477,26 @@ msgstr "Crea" msgid "Default Storage" msgstr "Emmagatzemament per defecte" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Il·limitat" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Un altre" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grup Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Emmagatzemament" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "canvia el nom a mostrar" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "estableix nova contrasenya" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Per defecte" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Suprimeix" diff --git a/l10n/ca/user_ldap.po b/l10n/ca/user_ldap.po index 09de26a1cc2e74d2be1c1acf7b0dcca1d1cae955..98ca278100a2935c8c294b5da9f8b7c745153a12 100644 --- a/l10n/ca/user_ldap.po +++ b/l10n/ca/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 08:50+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 12:20+0000\n" "Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Usa TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "No ho useu en connexions SSL, fallarà." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "No ho useu adicionalment per a conexions LDAPS, fallarà." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po index 91324803c16c55164c7e3c913aab0d01cc748bf8..b8c1d4424b37e0a4bdd0bb919891316613bb4534 100644 --- a/l10n/cs_CZ/core.po +++ b/l10n/cs_CZ/core.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -54,8 +54,9 @@ msgid "No category to add?" msgstr "Žádná kategorie k přidání?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Tato kategorie již existuje: " +#, php-format +msgid "This category already exists: %s" +msgstr "Kategorie již existuje: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -159,59 +160,59 @@ msgstr "Listopad" msgid "December" msgstr "Prosinec" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Nastavení" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "před pár vteřinami" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "před minutou" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "před {minutes} minutami" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "před hodinou" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "před {hours} hodinami" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "dnes" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "včera" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "před {days} dny" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "minulý mesíc" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "před {months} měsíci" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "před měsíci" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "minulý rok" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "před lety" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "Není určen typ objektu." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Chyba" @@ -254,15 +255,15 @@ msgstr "Není určen název aplikace." msgid "The required file {file} is not installed!" msgstr "Požadovaný soubor {file} není nainstalován." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Sdílet" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Sdílené" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Sdílet" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Chyba při sdílení" @@ -358,23 +359,23 @@ msgstr "smazat" msgid "share" msgstr "sdílet" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Chráněno heslem" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Chyba při odstraňování data vypršení platnosti" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Chyba při nastavení data vypršení platnosti" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Odesílám..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-mail odeslán" @@ -389,7 +390,7 @@ msgstr "Aktualizace neproběhla úspěšně. Nahlaste prosím problém do documentation." +msgstr "Pro informace jak správně nastavit váš server se podívejte do dokumentace." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Vytvořit účet správce" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Pokročilé" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Složka s daty" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Nastavit databázi" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "bude použito" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Uživatel databáze" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Heslo databáze" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Název databáze" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tabulkový prostor databáze" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Hostitel databáze" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Dokončit nastavení" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "webové služby pod Vaší kontrolou" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Odhlásit se" @@ -576,7 +581,7 @@ msgstr "Přihlásit" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternativní přihlášení" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po index 09eccd464404323ae6040acce507b1fa7be303a2..5ec7e84e4f33e17a2ab3014cf869d60caf176fae 100644 --- a/l10n/cs_CZ/files.po +++ b/l10n/cs_CZ/files.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,20 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Nelze přesunout %s - existuje soubor se stejným názvem" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nelze přesunout %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nelze přejmenovat soubor" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Soubor nebyl odeslán. Neznámá chyba" @@ -56,8 +70,8 @@ msgid "Failed to write to disk" msgstr "Zápis na disk selhal" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nedostatek dostupného místa" +msgid "Not enough storage available" +msgstr "Nedostatek dostupného úložného prostoru" #: ajax/upload.php:83 msgid "Invalid directory." @@ -67,51 +81,52 @@ msgstr "Neplatný adresář" msgid "Files" msgstr "Soubory" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Zrušit sdílení" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Trvale odstranit" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Smazat" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Přejmenovat" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Čekající" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} již existuje" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "nahradit" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "navrhnout název" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "zrušit" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "nahrazeno {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "zpět" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "nahrazeno {new_name} s {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "provést smazání" @@ -137,78 +152,74 @@ msgstr "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubo msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Vaše úložiště je téměř plné ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše soubory ke stažení se připravují. Pokud jsou velké může to chvíli trvat." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Chyba odesílání" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zavřít" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Čekající" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "odesílá se 1 soubor" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "odesílám {count} souborů" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Odesílání zrušeno." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL nemůže být prázdná" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neplatný název složky. Použití 'Shared' je rezervováno pro vnitřní potřeby Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Název" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Velikost" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Změněno" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 složka" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} složky" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 soubor" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} soubory" @@ -265,8 +276,8 @@ msgid "From link" msgstr "Z odkazu" #: templates/index.php:40 -msgid "Trash" -msgstr "Koš" +msgid "Deleted files" +msgstr "Odstraněné soubory" #: templates/index.php:46 msgid "Cancel upload" @@ -280,6 +291,10 @@ msgstr "Žádný obsah. Nahrajte něco." msgid "Download" msgstr "Stáhnout" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Zrušit sdílení" + #: templates/index.php:105 msgid "Upload too large" msgstr "Odeslaný soubor je příliš velký" diff --git a/l10n/cs_CZ/files_encryption.po b/l10n/cs_CZ/files_encryption.po index ea06c00d305bc6263d0497bfab3bb7dc3121617c..566eff0e84ab5771fa773761edcb96b4f8fb35ff 100644 --- a/l10n/cs_CZ/files_encryption.po +++ b/l10n/cs_CZ/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 09:51+0000\n" -"Last-Translator: Tomáš Chvátal \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,28 +19,6 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Prosím přejděte na svého klienta ownCloud a nastavte šifrovací heslo pro dokončení konverze." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "přepnuto na šifrování na straně klienta" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Změnit šifrovací heslo na přihlašovací" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Zkontrolujte, prosím, své heslo a zkuste to znovu." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Nelze změnit šifrovací heslo na přihlašovací." - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Šifrování" diff --git a/l10n/cs_CZ/files_external.po b/l10n/cs_CZ/files_external.po index 240ba178d3b5a2b0a86240f2012d272fff52793c..288ea865c540fdea7e7d2acdd331cf586d9caacc 100644 --- a/l10n/cs_CZ/files_external.po +++ b/l10n/cs_CZ/files_external.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-14 00:16+0100\n" -"PO-Revision-Date: 2012-12-13 08:56+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -45,13 +45,13 @@ msgstr "Zadejte, prosím, platný klíč a bezpečnostní frázi aplikace Dropbo msgid "Error configuring Google Drive storage" msgstr "Chyba při nastavení úložiště Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Varování: není nainstalován program \"smbclient\". Není možné připojení oddílů CIFS/SMB. Prosím požádejte svého správce systému ať jej nainstaluje." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -103,7 +103,7 @@ msgid "Users" msgstr "Uživatelé" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Smazat" @@ -115,10 +115,10 @@ msgstr "Zapnout externí uživatelské úložiště" msgid "Allow users to mount their own external storage" msgstr "Povolit uživatelům připojení jejich vlastních externích úložišť" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Kořenové certifikáty SSL" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importovat kořenového certifikátu" diff --git a/l10n/cs_CZ/files_trashbin.po b/l10n/cs_CZ/files_trashbin.po index 11b7352f6581f1ece113b64e389ae53362f1b813..49cec94198c76609fb07a4fd9cb44a30a164b3f7 100644 --- a/l10n/cs_CZ/files_trashbin.po +++ b/l10n/cs_CZ/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Nelze trvale odstranit %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Nelze obnovit %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "provést obnovu" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "trvale odstranit soubor" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Trvale odstranit" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Název" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Smazáno" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 složka" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} složky" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 soubor" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} soubory" @@ -57,3 +71,7 @@ msgstr "Žádný obsah. Váš koš je prázdný." #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Obnovit" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Smazat" diff --git a/l10n/cs_CZ/files_versions.po b/l10n/cs_CZ/files_versions.po index 3e62a18ee409eca29eb2d971c5e8dbe5806206c2..928ac501c8a54cf8b7082e5a484ecbbf4e6a3481 100644 --- a/l10n/cs_CZ/files_versions.po +++ b/l10n/cs_CZ/files_versions.po @@ -4,14 +4,14 @@ # # Translators: # Martin , 2012. -# Tomáš Chvátal , 2012. +# Tomáš Chvátal , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 06:40+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +19,45 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Nelze navrátit: %s" + +#: history.php:40 +msgid "success" +msgstr "úspěch" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Soubor %s byl navrácen na verzi %s" + +#: history.php:49 +msgid "failure" +msgstr "sehlhání" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Soubor %s nemohl být navrácen na verzi %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nejsou dostupné žádné starší verze" + +#: history.php:73 +msgid "No path specified" +msgstr "Nezadána cesta" + #: js/versions.js:16 msgid "History" msgstr "Historie" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Navraťte soubor do předchozí verze kliknutím na tlačítko navrátit" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Verzování souborů" diff --git a/l10n/cs_CZ/lib.po b/l10n/cs_CZ/lib.po index 55cc3d0f58c6b02c9dcaacc05bc1c7fdc5f3e403..33ef9b4c2f874433339baf52dbb24a88681d4620 100644 --- a/l10n/cs_CZ/lib.po +++ b/l10n/cs_CZ/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 11:01+0000\n" -"Last-Translator: Tomáš Chvátal \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,43 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Nápověda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Osobní" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Nastavení" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Uživatelé" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplikace" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administrace" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Stahování ZIPu je vypnuto." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Soubory musí být stahovány jednotlivě." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Zpět k souborům" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Vybrané soubory jsou příliš velké pro vytvoření zip souboru." @@ -87,6 +87,108 @@ msgstr "Text" msgid "Images" msgstr "Obrázky" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Zadejte uživatelské jméno správce." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Zadejte heslo správce." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Určete složku dat." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "Zadejte uživatelské jméno %s databáze." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "Zadejte název databáze pro %s databáze." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "V názvu databáze %s nesmíte používat tečky." + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "Zadejte název počítače s databází %s." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Uživatelské jméno, či heslo PostgreSQL není platné" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Musíte zadat existující účet, či správce." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Uživatelské jméno, či heslo Oracle není platné" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Uživatelské jméno, či heslo MySQL není platné" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Chyba DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Podezřelý příkaz byl: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Uživatel '%s'@'localhost' již v MySQL existuje." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Zahodit uživatele z MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Uživatel '%s'@'%%' již v MySQL existuje" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Zahodit uživatele z MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Podezřelý příkaz byl: \"%s\", jméno: %s, heslo: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Váš webový server není správně nastaven pro umožnění synchronizace, protože rozhraní WebDAV je rozbité." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Zkonzultujte, prosím, průvodce instalací." + #: template.php:113 msgid "seconds ago" msgstr "před vteřinami" @@ -139,16 +241,16 @@ msgstr "loni" msgid "years ago" msgstr "před lety" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s je dostupná. Získat více informací" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "aktuální" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "kontrola aktualizací je vypnuta" diff --git a/l10n/cs_CZ/settings.po b/l10n/cs_CZ/settings.po index 88caa49b136ad6e337d8853e9c4b02b675361575..b12b6430baac0a0c96b4b8b21c7bfe8a816ca214 100644 --- a/l10n/cs_CZ/settings.po +++ b/l10n/cs_CZ/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -27,14 +27,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nelze načíst seznam z App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Chyba ověření" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Nelze změnit zobrazované jméno" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -76,17 +76,17 @@ msgstr "Neplatný požadavek" msgid "Admins can't remove themself from the admin group" msgstr "Správci se nemohou odebrat sami ze skupiny správců" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Nelze přidat uživatele do skupiny %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Nelze odstranit uživatele ze skupiny %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Nelze aktualizovat aplikaci." @@ -122,59 +122,265 @@ msgstr "Chyba" msgid "Updated" msgstr "Aktualizováno" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Ukládám..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "smazáno" + +#: js/users.js:30 +msgid "undo" +msgstr "zpět" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Nelze odebrat uživatele" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Skupiny" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Správa skupiny" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Smazat" + +#: js/users.js:191 +msgid "add group" +msgstr "přidat skupinu" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Musíte zadat platné uživatelské jméno" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Chyba při vytváření užiatele" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Musíte zadat platné heslo" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Česky" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Bezpečnostní upozornění" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Váš adresář dat a všechny Vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess, který je poskytován ownCloud, nefunguje. Důrazně Vám doporučujeme nastavit váš webový server tak, aby nebyl adresář dat přístupný, nebo přesunout adresář dat mimo kořenovou složku dokumentů webového serveru." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Upozornění nastavení" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Váš webový server není správně nastaven pro umožnění synchronizace, protože rozhraní WebDAV je rozbité." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Zkonzultujte, prosím, průvodce instalací." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Schází modul 'fileinfo'" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Schází modul PHP 'fileinfo'. Doporučujeme jej povolit pro nejlepší výsledky detekce typů MIME." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Locale nefunguje" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Spojení s internetem nefujguje" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Server ownCloud nemá funkční spojení s internetem. Některé moduly jako externí úložiště, oznámení o dostupných aktualizacích, nebo instalace aplikací třetích stran nefungují. Přístup k souborům z jiných míst a odesílání oznamovacích e-mailů také nemusí fungovat. Pokud si přejete využívat všech vlastností ownCloud, doporučujeme povolit internetové spojení pro tento server." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Spustit jednu úlohu s každou načtenou stránkou" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php je registrován u služby webcron. Zavolá stránku cron.php v kořenovém adresáři owncloud každou minutu skrze http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Použít systémovou službu cron. Zavolat soubor cron.php ze složky owncloud pomocí systémové úlohy cron každou minutu." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Sdílení" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Povolit API sdílení" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Povolit aplikacím používat API sdílení" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Povolit odkazy" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Povolit uživatelům sdílet položky s veřejností pomocí odkazů" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Povolit znovu-sdílení" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Povolit uživatelům znovu sdílet položky, které jsou pro ně sdíleny" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Povolit uživatelům sdílet s kýmkoliv" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Povolit uživatelům sdílet pouze s uživateli v jejich skupinách" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Zabezpečení" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Vynutit HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Vynutí připojování klientů ownCloud skrze šifrované spojení." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Připojte se, prosím, k této instanci ownCloud skrze HTTPS pro povolení, nebo zakažte vynucení SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Záznam" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Úroveň záznamu" + +#: templates/admin.php:223 +msgid "More" +msgstr "Více" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Verze" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Vyvinuto komunitou ownCloud, zdrojový kód je licencován pod AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Přidat Vaší aplikaci" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Více aplikací" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Vyberte aplikaci" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Více na stránce s aplikacemi na apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licencováno " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Aktualizovat" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Uživatelská dokumentace" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Dokumentace správce" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online dokumentace" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fórum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Placená podpora" @@ -183,116 +389,86 @@ msgstr "Placená podpora" msgid "You have used %s of the available %s" msgstr "Používáte %s z %s dostupných" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienti" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Stáhnout klienty pro počítač" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Stáhnout klienta pro android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Stáhnout klienta pro iOS" +msgid "Get the apps to sync your files" +msgstr "Získat aplikace pro synchronizaci vašich souborů" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Znovu zobrazit průvodce prvním spuštěním" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Heslo" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Vaše heslo bylo změněno" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Vaše heslo nelze změnit" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Současné heslo" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nové heslo" -#: templates/personal.php:28 -msgid "show" -msgstr "zobrazit" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Změnit heslo" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Zobrazované jméno" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Vaše zobrazované jméno bylo změněno" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Nelze změnit vaše zobrazované jméno" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Změnit zobrazované jméno" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Vaše e-mailová adresa" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Pro povolení změny hesla vyplňte adresu e-mailu" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Jazyk" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Pomoci s překladem" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Použijte tuto adresu pro připojení k vašemu ownCloud skrze správce souborů" -#: templates/personal.php:85 -msgid "Version" -msgstr "Verze" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Vyvinuto komunitou ownCloud, zdrojový kód je licencován pod AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Přihlašovací jméno" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Skupiny" - #: templates/users.php:32 msgid "Create" msgstr "Vytvořit" @@ -301,34 +477,26 @@ msgstr "Vytvořit" msgid "Default Storage" msgstr "Výchozí úložiště" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Neomezeně" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Jiná" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Správa skupiny" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Úložiště" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "změnit zobrazované jméno" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "nastavit nové heslo" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Výchozí" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Smazat" diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po index 9ef32071e27b1ca65e4a05f19829de69ee0ec925..8e0892a688bc4a38abca90d64d4fcf1e08dcf03a 100644 --- a/l10n/cs_CZ/user_ldap.po +++ b/l10n/cs_CZ/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:05+0100\n" -"PO-Revision-Date: 2013-02-03 07:40+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 06:40+0000\n" "Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Použít TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Nepoužívejte pro připojení pomocí SSL, připojení selže." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Nepoužívejte pro spojení LDAP, selže." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/da/core.po b/l10n/da/core.po index 1b44a2e8cdf987541ac717611aeb3183ee113f4d..78d2ab1b2a7c043b3734b88e580011e7591bc4f0 100644 --- a/l10n/da/core.po +++ b/l10n/da/core.po @@ -4,6 +4,7 @@ # # Translators: # , 2012. +# Frederik Lassen , 2013. # , 2011, 2012. # Morten Juhl-Johansen Zölde-Fejér , 2011-2013. # Ole Holm Frandsen , 2012. @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Frederik Lassen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,8 +60,9 @@ msgid "No category to add?" msgstr "Ingen kategori at tilføje?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Denne kategori eksisterer allerede: " +#, php-format +msgid "This category already exists: %s" +msgstr "Kategorien eksisterer allerede: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -164,59 +166,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Indstillinger" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekunder siden" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minut siden" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minutter siden" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 time siden" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} timer siden" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "i dag" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "i går" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dage siden" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "sidste måned" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} måneder siden" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "måneder siden" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "sidste år" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "år siden" @@ -246,8 +248,8 @@ msgid "The object type is not specified." msgstr "Objekttypen er ikke angivet." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fejl" @@ -259,15 +261,15 @@ msgstr "Den app navn er ikke angivet." msgid "The required file {file} is not installed!" msgstr "Den krævede fil {file} er ikke installeret!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Delt" + +#: js/share.js:93 msgid "Share" msgstr "Del" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Fejl under deling" @@ -363,23 +365,23 @@ msgstr "slet" msgid "share" msgstr "del" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Beskyttet med adgangskode" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Fejl ved fjernelse af udløbsdato" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Fejl under sætning af udløbsdato" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sender ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-mail afsendt" @@ -394,7 +396,7 @@ msgstr "Opdateringen blev ikke udført korrekt. Rapporter venligst problemet til msgid "The update was successful. Redirecting you to ownCloud now." msgstr "Opdateringen blev udført korrekt. Du bliver nu viderestillet til ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Nulstil ownCloud kodeord" @@ -475,7 +477,7 @@ msgstr "Rediger kategorier" msgid "Add" msgstr "Tilføj" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Sikkerhedsadvarsel" @@ -485,71 +487,75 @@ msgid "" "OpenSSL extension." msgstr "Ingen sikker tilfældighedsgenerator til tal er tilgængelig. Aktiver venligst OpenSSL udvidelsen." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Uden en sikker tilfældighedsgenerator til tal kan en angriber måske gætte dit gendan kodeord og overtage din konto" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Dine data mappe og filer er sandsynligvis tilgængelige fra internettet fordi .htaccess filen ikke virker." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen som ownCloud leverer virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver på en måske så data mappen ikke længere er tilgængelig eller at du flytter data mappen uden for webserverens dokument rod. " +"For information how to properly configure your server, please see the documentation." +msgstr "For at vide mere om hvordan du konfigurerer din server ordentligt, se venligst dokumentationen." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Opret en administratorkonto" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avanceret" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datamappe" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurer databasen" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vil blive brugt" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Databasebruger" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Databasekodeord" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Navn på database" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Database tabelplads" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Databasehost" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Afslut opsætning" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Webtjenester under din kontrol" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Log ud" @@ -581,7 +587,7 @@ msgstr "Log ind" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternative logins" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/da/files.po b/l10n/da/files.po index 9477b306d4f49c24e2dff656e9ebf63b50a2b0d3..ccddf0d9c478f7a5dc27dc0811754785a034cc8d 100644 --- a/l10n/da/files.po +++ b/l10n/da/files.po @@ -4,6 +4,7 @@ # # Translators: # , 2012. +# Frederik Lassen , 2013. # Morten Juhl-Johansen Zölde-Fejér , 2011-2013. # Ole Holm Frandsen , 2012. # , 2012. @@ -15,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -25,6 +26,20 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Kunne ikke flytte %s - der findes allerede en fil med dette navn" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Kunne ikke flytte %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Kunne ikke omdøbe fil" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil blev uploadet. Ukendt fejl." @@ -61,8 +76,8 @@ msgid "Failed to write to disk" msgstr "Fejl ved skrivning til disk." #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "" +msgid "Not enough storage available" +msgstr "Der er ikke nok plads til rådlighed" #: ajax/upload.php:83 msgid "Invalid directory." @@ -72,53 +87,54 @@ msgstr "Ugyldig mappe." msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Fjern deling" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Slet permanent" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slet" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Omdøb" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Afventer" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} eksisterer allerede" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "erstat" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "fortryd" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "erstattede {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "fortryd" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "erstattede {new_name} med {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "udfør slet operation" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -142,78 +158,74 @@ msgstr "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dit download forberedes. Dette kan tage lidt tid ved større filer." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kunne ikke uploade din fil, da det enten er en mappe eller er tom" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Fejl ved upload" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Luk" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Afventer" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fil uploades" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} filer uploades" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Upload afbrudt." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URLen kan ikke være tom." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ugyldigt mappenavn. Brug af \"Shared\" er forbeholdt Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Navn" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Størrelse" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Ændret" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fil" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} filer" @@ -270,7 +282,7 @@ msgid "From link" msgstr "Fra link" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -285,6 +297,10 @@ msgstr "Her er tomt. Upload noget!" msgid "Download" msgstr "Download" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Fjern deling" + #: templates/index.php:105 msgid "Upload too large" msgstr "Upload for stor" @@ -305,4 +321,4 @@ msgstr "Indlæser" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Opgraderer filsystems cachen..." diff --git a/l10n/da/files_encryption.po b/l10n/da/files_encryption.po index 2a28a291a50d6307e2be452eea6dd4e5c2d19c1b..416d8486d5ca123c5477df62a6004c40e50f085b 100644 --- a/l10n/da/files_encryption.po +++ b/l10n/da/files_encryption.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Frederik Lassen , 2013. # Morten Juhl-Johansen Zölde-Fejér , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: Frederik Lassen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +20,21 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Skift venligst til din ownCloud-klient og skift krypteringskoden for at fuldføre konverteringen." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "skiftet til kryptering på klientsiden" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Udskift krypteringskode til login-adgangskode" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Check adgangskoder og forsøg igen." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Kunne ikke udskifte krypteringskode med login-adgangskode" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Kryptering" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Fil kryptering aktiveret." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "De følgende filtyper vil ikke blive krypteret:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Ekskluder de følgende fil typer fra kryptering:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/da/files_external.po b/l10n/da/files_external.po index d21b07f05e633714568f4f160126506e31559630..3771fc373df8e27f028365d6a67441dc0de476d3 100644 --- a/l10n/da/files_external.po +++ b/l10n/da/files_external.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-24 00:10+0100\n" -"PO-Revision-Date: 2012-12-23 21:47+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: cronner \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -44,13 +44,13 @@ msgstr "Angiv venligst en valid Dropbox app nøgle og hemmelighed" msgid "Error configuring Google Drive storage" msgstr "Fejl ved konfiguration af Google Drive plads" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr " Advarsel: \"smbclient\" ikke er installeret. Montering af CIFS / SMB delinger er ikke muligt. Spørg din systemadministrator om at installere det." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -118,6 +118,6 @@ msgstr "Tillad brugere at montere deres egne eksterne opbevaring" msgid "SSL root certificates" msgstr "SSL-rodcertifikater" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importer rodcertifikat" diff --git a/l10n/da/files_trashbin.po b/l10n/da/files_trashbin.po index 6f1c6e6b4638a6d69cc825f749407c56f2b0d348..0c0c7a71eb369998b493864416dc7b5c88208d3c 100644 --- a/l10n/da/files_trashbin.po +++ b/l10n/da/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Frederik Lassen , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Kunne ikke slette %s permanent" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Kunne ikke gendanne %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "udfør gendannelsesoperation" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "slet fil permanent" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Slet permanent" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Navn" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Slettet" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mappe" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mapper" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fil" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} filer" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Intet at se her. Din papirkurv er tom!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Gendan" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Slet" diff --git a/l10n/da/files_versions.po b/l10n/da/files_versions.po index 847d3bda8aae6e450e04d65f74af96f914ad4b2a..d0be28135be2ab8df458d3c976ab877525a6de8a 100644 --- a/l10n/da/files_versions.po +++ b/l10n/da/files_versions.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Frederik Lassen , 2013. # Morten Juhl-Johansen Zölde-Fejér , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: Frederik Lassen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Kunne ikke genskabe: %s" + +#: history.php:40 +msgid "success" +msgstr "success" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Filen %s blev genskabt til version: %s" + +#: history.php:49 +msgid "failure" +msgstr "fejl" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Filen %s blev genskabt til version: %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Ingen gamle version tilgængelige" + +#: history.php:73 +msgid "No path specified" +msgstr "Ingen sti specificeret" + #: js/versions.js:16 msgid "History" msgstr "Historik" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Genskab en fil til en tidligere version ved at klikke på denne genskab knap." + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionering af filer" diff --git a/l10n/da/lib.po b/l10n/da/lib.po index 5596da61c317db3bfc8e0f2d0e7aaa3e1f57be28..e541159bed1cda96943158e917902e0b4d6afd81 100644 --- a/l10n/da/lib.po +++ b/l10n/da/lib.po @@ -4,15 +4,16 @@ # # Translators: # , 2012. +# Frederik Lassen , 2013. # Morten Juhl-Johansen Zölde-Fejér , 2012-2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 11:52+0000\n" -"Last-Translator: Morten Juhl-Johansen Zölde-Fejér \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,47 +21,47 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hjælp" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personlig" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Indstillinger" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Brugere" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP-download er slået fra." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Filer skal downloades en for en." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Tilbage til Filer" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "De markerede filer er for store til at generere en ZIP-fil." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "kunne ikke fastslås" @@ -88,6 +89,108 @@ msgstr "SMS" msgid "Images" msgstr "Billeder" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Angiv et admin brugernavn." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Angiv et admin kodeord." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Specificer en data mappe." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s indtast database brugernavnet." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s indtast database navnet." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s du må ikke bruge punktummer i databasenavnet." + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s sæt database værten." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL brugernavn og/eller kodeord er ikke gyldigt." + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Du bliver nødt til at indtaste en eksisterende bruger eller en administrator." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle brugernavn og/eller kodeord er ikke gyldigt." + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL brugernavn og/eller kodeord er ikke gyldigt." + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Databasefejl: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Fejlende kommando var: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL brugeren '%s'@'localhost' eksisterer allerede." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Slet denne bruger fra MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL brugeren '%s'@'%%' eksisterer allerede." + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Slet denne bruger fra MySQL" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Fejlende kommando var: \"%s\", navn: %s, password: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Din webserver er endnu ikke sat op til at tillade fil synkronisering fordi WebDAV grænsefladen virker ødelagt." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Dobbelttjek venligst installations vejledningerne." + #: template.php:113 msgid "seconds ago" msgstr "sekunder siden" @@ -140,16 +243,16 @@ msgstr "Sidste år" msgid "years ago" msgstr "år siden" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s er tilgængelig. Få mere information" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "opdateret" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "Check for opdateringer er deaktiveret" diff --git a/l10n/da/settings.po b/l10n/da/settings.po index b2be1f63796a8e7ff3724338fe1db6fa0d2a7e73..a70828aa5eaf761503fa7137af00c4d3890a0041 100644 --- a/l10n/da/settings.po +++ b/l10n/da/settings.po @@ -4,6 +4,7 @@ # # Translators: # , 2012. +# Frederik Lassen , 2013. # , 2012. # , 2011. # Morten Juhl-Johansen Zölde-Fejér , 2011-2012. @@ -17,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -31,14 +32,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Kunne ikke indlæse listen fra App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Adgangsfejl" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Kunne ikke skifte skærmnavn" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -80,23 +81,23 @@ msgstr "Ugyldig forespørgsel" msgid "Admins can't remove themself from the admin group" msgstr "Administratorer kan ikke fjerne dem selv fra admin gruppen" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Brugeren kan ikke tilføjes til gruppen %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Brugeren kan ikke fjernes fra gruppen %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Kunne ikke opdatere app'en." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Opdatér til {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -108,15 +109,15 @@ msgstr "Aktiver" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Vent venligst..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Opdaterer...." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Der opstod en fejl under app opgraderingen" #: js/apps.js:87 msgid "Error" @@ -124,61 +125,267 @@ msgstr "Fejl" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Opdateret" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Gemmer..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "Slettet" + +#: js/users.js:30 +msgid "undo" +msgstr "fortryd" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupper" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppe Administrator" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Slet" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Dansk" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sikkerhedsadvarsel" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen som ownCloud leverer virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver på en måske så data mappen ikke længere er tilgængelig eller at du flytter data mappen uden for webserverens dokument rod. " + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Din webserver er endnu ikke sat op til at tillade fil synkronisering fordi WebDAV grænsefladen virker ødelagt." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Dobbelttjek venligst installations vejledningerne." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mere" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Udviklet af ownClouds community, og kildekoden er underlagt licensen AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Tilføj din App" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Flere Apps" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Vælg en App" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Se applikationens side på apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenseret af " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Opdater" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Brugerdokumentation" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administrator Dokumentation" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online dokumentation" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kommerciel support" @@ -187,115 +394,85 @@ msgstr "Kommerciel support" msgid "You have used %s of the available %s" msgstr "Du har brugt %s af den tilgængelige %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienter" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Hent Desktop Klienter" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Hent Android Klient" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Hent iOS Klient" +msgid "Get the apps to sync your files" +msgstr "Hent applikationerne for at synkronisere dine filer" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Vis Første Kørsel Guiden igen" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Kodeord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Din adgangskode blev ændret" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Ude af stand til at ændre dit kodeord" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Nuværende adgangskode" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Ny adgangskode" -#: templates/personal.php:28 -msgid "show" -msgstr "vis" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Skift kodeord" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Skærmnavn" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Dit skærmnavn blev ændret" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Kunne ikke skifte dit skærmnavn" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Skift skærmnavn" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Din emailadresse" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Indtast en emailadresse for at kunne få påmindelse om adgangskode" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Sprog" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hjælp med oversættelsen" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Brug denne adresse til at oprette forbindelse til din ownCloud i din filstyring" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Udviklet af ownClouds community, og kildekoden er underlagt licensen AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupper" +msgstr "Loginnavn" #: templates/users.php:32 msgid "Create" @@ -305,34 +482,26 @@ msgstr "Ny" msgid "Default Storage" msgstr "Standard opbevaring" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ubegrænset" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Andet" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppe Administrator" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Opbevaring" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "skift skærmnavn" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "skift kodeord" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Standard" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Slet" diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po index 63c885ecaa7dd69d05774972fd5d2e61a964bb1b..31ec98eaba9d59c1440dc16d9d9e77ca9fec55f7 100644 --- a/l10n/da/user_ldap.po +++ b/l10n/da/user_ldap.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -218,8 +218,8 @@ msgid "Use TLS" msgstr "Brug TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Brug ikke til SSL forbindelser, da den vil fejle." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/de/core.po b/l10n/de/core.po index f8626030e17c976b4f62e08a3391a8653f5f11d7..7439a612da66ed035fee8fb432abc83e76daf2cc 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -19,14 +19,15 @@ # Susi <>, 2012. # , 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Marcel Kühlhorn \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -36,26 +37,26 @@ msgstr "" #: ajax/share.php:85 #, php-format msgid "User %s shared a file with you" -msgstr "Der Nutzer %s hat eine Datei für Dich freigegeben" +msgstr "Der Nutzer %s hat eine Datei mit Dir geteilt" #: ajax/share.php:87 #, php-format msgid "User %s shared a folder with you" -msgstr "%s hat ein Verzeichnis für Dich freigegeben" +msgstr "%s hat ein Verzeichnis mit Dir geteilt" #: ajax/share.php:89 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "%s hat eine Datei \"%s\" für Dich freigegeben. Sie ist zum Download hier ferfügbar: %s" +msgstr "%s hat die Datei \"%s\" mit Dir geteilt. Sie ist hier zum Download verfügbar: %s" #: ajax/share.php:91 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "%s hat eine Verzeichnis \"%s\" für Dich freigegeben. Es ist zum Download hier ferfügbar: %s" +msgstr "%s hat den Ordner \"%s\" mit Dir geteilt. Er ist hier zum Download verfügbar: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -66,8 +67,9 @@ msgid "No category to add?" msgstr "Keine Kategorie hinzuzufügen?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Kategorie existiert bereits:" +#, php-format +msgid "This category already exists: %s" +msgstr "Die Kategorie '%s' existiert bereits." #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -171,59 +173,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Einstellungen" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "Gerade eben" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "vor einer Minute" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "Vor {minutes} Minuten" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Vor einer Stunde" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Vor {hours} Stunden" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "Heute" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "Gestern" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "Vor {days} Tag(en)" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "Letzten Monat" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Vor {months} Monaten" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "Vor Monaten" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "Letztes Jahr" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "Vor Jahren" @@ -253,8 +255,8 @@ msgid "The object type is not specified." msgstr "Der Objekttyp ist nicht angegeben." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fehler" @@ -266,21 +268,21 @@ msgstr "Der App-Name ist nicht angegeben." msgid "The required file {file} is not installed!" msgstr "Die benötigte Datei {file} ist nicht installiert." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Freigeben" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" -msgstr "Freigegeben" +msgstr "Geteilt" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Teilen" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" -msgstr "Fehler beim Freigeben" +msgstr "Fehler beim Teilen" #: js/share.js:152 msgid "Error while unsharing" -msgstr "Fehler beim Aufheben der Freigabe" +msgstr "Fehler beim Aufheben der Teilung" #: js/share.js:159 msgid "Error while changing permissions" @@ -288,19 +290,19 @@ msgstr "Fehler beim Ändern der Rechte" #: js/share.js:168 msgid "Shared with you and the group {group} by {owner}" -msgstr "{owner} hat dies für Dich und die Gruppe {group} freigegeben" +msgstr "{owner} hat dies mit Dir und der Gruppe {group} geteilt" #: js/share.js:170 msgid "Shared with you by {owner}" -msgstr "{owner} hat dies für Dich freigegeben" +msgstr "{owner} hat dies mit Dir geteilt" #: js/share.js:175 msgid "Share with" -msgstr "Freigeben für" +msgstr "Teilen mit" #: js/share.js:180 msgid "Share with link" -msgstr "Über einen Link freigeben" +msgstr "Über einen Link freigegeben" #: js/share.js:183 msgid "Password protect" @@ -328,7 +330,7 @@ msgstr "Ablaufdatum" #: js/share.js:227 msgid "Share via email:" -msgstr "Über eine E-Mail freigeben:" +msgstr "Über eine E-Mail teilen:" #: js/share.js:229 msgid "No people found" @@ -368,25 +370,25 @@ msgstr "löschen" #: js/share.js:339 msgid "share" -msgstr "freigeben" +msgstr "teilen" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Durch ein Passwort geschützt" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Fehler beim entfernen des Ablaufdatums" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Fehler beim Setzen des Ablaufdatums" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sende ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-Mail wurde verschickt" @@ -401,7 +403,7 @@ msgstr "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die documentation." +msgstr "Bitte lesen Sie die Dokumentation für Informationen, wie Sie Ihren Server konfigurieren." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Administrator-Konto anlegen" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Fortgeschritten" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datenverzeichnis" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Datenbank einrichten" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "wird verwendet" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Datenbank-Benutzer" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Datenbank-Passwort" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Datenbank-Name" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Datenbank-Tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Datenbank-Host" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Installation abschließen" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Web-Services unter Ihrer Kontrolle" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Abmelden" @@ -588,7 +594,7 @@ msgstr "Einloggen" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternative Logins" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/de/files.po b/l10n/de/files.po index 7cf13d9caa24e8ab62130c1f348f8bac9c6956b3..845953894a20f376313da18f3970ab608375b536 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -28,16 +28,30 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s konnte nicht verschoben werden - eine Datei mit diesem Namen existiert bereits." + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s konnte nicht verschoben werden" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Die Datei konnte nicht umbenannt werden" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -74,7 +88,7 @@ msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "Nicht genug Speicherplatz verfügbar" #: ajax/upload.php:83 @@ -85,51 +99,52 @@ msgstr "Ungültiges Verzeichnis." msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Nicht mehr freigeben" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Permanent löschen" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Löschen" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ausstehend" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "Name vorschlagen" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} wurde ersetzt" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} ersetzt durch {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "Löschvorgang ausführen" @@ -155,78 +170,74 @@ msgstr "Ihr Speicherplatz ist voll, Dateien können nicht mehr aktualisiert oder msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ihr Speicherplatz ist fast aufgebraucht ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dein Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Fehler beim Upload" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Schließen" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ausstehend" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "Eine Datei wird hoch geladen" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} Dateien werden hochgeladen" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Die URL darf nicht leer sein." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten." -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Name" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Größe" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Bearbeitet" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 Datei" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} Dateien" @@ -283,8 +294,8 @@ msgid "From link" msgstr "Von einem Link" #: templates/index.php:40 -msgid "Trash" -msgstr "Papierkorb" +msgid "Deleted files" +msgstr "Gelöschte Dateien" #: templates/index.php:46 msgid "Cancel upload" @@ -298,6 +309,10 @@ msgstr "Alles leer. Lade etwas hoch!" msgid "Download" msgstr "Herunterladen" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Nicht mehr freigeben" + #: templates/index.php:105 msgid "Upload too large" msgstr "Upload zu groß" diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po index 858ca4d69230a94a5dbd15da8654eb46b96a4ede..3cfd6711a27e2bee724937260e9138e094dcfb28 100644 --- a/l10n/de/files_encryption.po +++ b/l10n/de/files_encryption.po @@ -9,53 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-18 00:05+0100\n" +"PO-Revision-Date: 2013-02-17 14:12+0000\n" +"Last-Translator: Marcel Kühlhorn \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Bitte wechseln Sie nun zum ownCloud Client und ändern Sie ihr Verschlüsselungspasswort um die Konvertierung abzuschließen." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Zur Clientseitigen Verschlüsselung gewechselt" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden." - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Verschlüsselung" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Dateiverschlüsselung ist aktiviert" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Die folgenden Dateitypen werden nicht verschlüsselt:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Schließe die folgenden Dateitypen von der Verschlüsselung aus:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/de/files_external.po b/l10n/de/files_external.po index c8d7b8f8e41c5b40be46b1a0c182449e35a56690..afa4bd90b6d0759bbd8b00f3ca06210bbb8c9fe5 100644 --- a/l10n/de/files_external.po +++ b/l10n/de/files_external.po @@ -12,10 +12,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-23 00:09+0100\n" -"PO-Revision-Date: 2012-12-22 13:57+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Mirodin \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -46,13 +46,13 @@ msgstr "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein." msgid "Error configuring Google Drive storage" msgstr "Fehler beim Einrichten von Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Warnung: \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitte Deinen System-Administrator, dies zu installieren." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -120,6 +120,6 @@ msgstr "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" msgid "SSL root certificates" msgstr "SSL-Root-Zertifikate" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Root-Zertifikate importieren" diff --git a/l10n/de/files_trashbin.po b/l10n/de/files_trashbin.po index 6950494d0294d12c065b4a13d7f0fa52d6b25771..4d4dac598fbc0dc4ccec351044648831286c6674 100644 --- a/l10n/de/files_trashbin.po +++ b/l10n/de/files_trashbin.po @@ -4,50 +4,66 @@ # # Translators: # I Robot , 2013. +# Marcel Kühlhorn , 2013. +# Tristan , 2013. # , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Konnte %s nicht dauerhaft löschen" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Konnte %s nicht wiederherstellen" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "Wiederherstellung ausführen" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Datei dauerhaft löschen" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Permanent löschen" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Name" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "gelöscht" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 Ordner" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} Ordner" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 Datei" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} Dateien" @@ -58,3 +74,7 @@ msgstr "Nichts zu löschen, der Papierkorb ist leer!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Wiederherstellen" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Löschen" diff --git a/l10n/de/files_versions.po b/l10n/de/files_versions.po index a3e251c142ca53964db0e58021fa6000f3cd90ee..51c809db1bd30dade6b87d4810925901c1360375 100644 --- a/l10n/de/files_versions.po +++ b/l10n/de/files_versions.po @@ -6,26 +6,62 @@ # , 2012. # I Robot , 2012. # , 2012. +# Marcel Kühlhorn , 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-18 00:05+0100\n" +"PO-Revision-Date: 2013-02-17 14:20+0000\n" +"Last-Translator: Marcel Kühlhorn \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Konnte %s nicht zurücksetzen" + +#: history.php:40 +msgid "success" +msgstr "Erfolgreich" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Datei %s wurde auf Version %s zurückgesetzt" + +#: history.php:49 +msgid "failure" +msgstr "Fehlgeschlagen" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Datei %s konnte nicht auf Version %s zurückgesetzt werden" + +#: history.php:68 +msgid "No old versions available" +msgstr "Keine älteren Versionen verfügbar" + +#: history.php:73 +msgid "No path specified" +msgstr "Kein Pfad angegeben" + #: js/versions.js:16 msgid "History" msgstr "Historie" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Setze eine Datei durch klicken auf den Zurücksetzen Button zurück" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Dateiversionierung" diff --git a/l10n/de/lib.po b/l10n/de/lib.po index d27f2e0504b04502f77658dfaf70b9e29df1fbf2..765b0a42e12f3c41b0016010f4e3877b0257deea 100644 --- a/l10n/de/lib.po +++ b/l10n/de/lib.po @@ -4,69 +4,71 @@ # # Translators: # , 2012. +# I Robot , 2013. # I Robot , 2012. # Jan-Christoph Borchardt , 2012. # Marcel Kühlhorn , 2012-2013. # Phi Lieb <>, 2012. # , 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-21 00:04+0100\n" -"PO-Revision-Date: 2013-01-20 03:39+0000\n" -"Last-Translator: Marcel Kühlhorn \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hilfe" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Persönlich" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Einstellungen" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Benutzer" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administrator" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Der ZIP-Download ist deaktiviert." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Die Dateien müssen einzeln heruntergeladen werden." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Zurück zu \"Dateien\"" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" -msgstr "Konnte nicht festgestellt werden" +msgstr "konnte nicht festgestellt werden" #: json.php:28 msgid "Application is not enabled" @@ -92,6 +94,108 @@ msgstr "Text" msgid "Images" msgstr "Bilder" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Setze Administrator Benutzername." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Setze Administrator Passwort" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Datei-Verzeichnis angeben." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s gib den Datenbank-Benutzernamen an." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s gib den Datenbank-Namen an." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s Der Datenbank-Name darf keine Punkte enthalten" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s setze den Datenbank-Host" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL Benutzername und/oder Passwort ungültig" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle Benutzername und/oder Passwort ungültig" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL Benutzername und/oder Passwort ungültig" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DB Fehler: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Fehlerhafter Befehl war: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL Benutzer '%s'@'localhost' existiert bereits." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Lösche diesen Benutzer von MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL Benutzer '%s'@'%%' existiert bereits" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Lösche diesen Benutzer aus MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Bitte prüfe die Instalationsanleitungen." + #: template.php:113 msgid "seconds ago" msgstr "Gerade eben" @@ -144,16 +248,16 @@ msgstr "Letztes Jahr" msgid "years ago" msgstr "Vor Jahren" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s ist verfügbar. Weitere Informationen" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "aktuell" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "Die Update-Überprüfung ist ausgeschaltet" diff --git a/l10n/de/settings.po b/l10n/de/settings.po index 701892688ca0390dc0550340ad002a32eaa99daa..ddaa9c83cce747599f8e44052f2028f3e3901541 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -12,7 +12,7 @@ # Jan T , 2012. # , 2012. # , 2012. -# Marcel Kühlhorn , 2012. +# Marcel Kühlhorn , 2012-2013. # , 2012. # , 2012. # , 2012. @@ -26,10 +26,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -40,14 +40,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Die Liste der Anwendungen im Store konnte nicht geladen werden." -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Fehler bei der Anmeldung" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Das Ändern des Anzeigenamens ist nicht möglich" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -89,23 +89,23 @@ msgstr "Ungültige Anfrage" msgid "Admins can't remove themself from the admin group" msgstr "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen." -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Die App konnte nicht geupdated werden." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Update zu {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -117,11 +117,11 @@ msgstr "Aktivieren" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Bitte warten..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Update..." #: js/apps.js:87 msgid "Error while updating app" @@ -133,61 +133,267 @@ msgstr "Fehler" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Geupdated" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Speichern..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "gelöscht" + +#: js/users.js:30 +msgid "undo" +msgstr "rückgängig machen" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Benutzer konnte nicht entfernt werden." + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruppen" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppenadministrator" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Löschen" + +#: js/users.js:191 +msgid "add group" +msgstr "Gruppe hinzufügen" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Es muss ein gültiger Benutzername angegeben werden" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Beim anlegen des Benutzers ist ein Fehler aufgetreten" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Es muss ein gültiges Passwort angegeben werden" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Deutsch (Persönlich)" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sicherheitswarnung" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Dein Datenverzeichnis und Deine Datein sind vielleicht vom Internet aus erreichbar. Die .htaccess Datei, die ownCloud verwendet, arbeitet nicht richtig. Wir schlagen Dir dringend vor, dass Du Deinen Webserver so konfigurierst, dass das Datenverzeichnis nicht länger erreichbar ist oder, dass Du Dein Datenverzeichnis aus dem Dokumenten-root des Webservers bewegst." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Einrichtungswarnung" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Bitte prüfen Sie die Instalationsanleitungen." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Modul 'fileinfo' fehlt " + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen dieses Modul zu aktivieren um die besten Resultate bei der Erkennung der Dateitypen zu erreichen." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Ländereinstellung funktioniert nicht" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Keine Netzwerkverbindung" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren wenn Du alle Funktionen von ownCloud nutzen möchtest." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Führe eine Aufgabe mit jeder geladenen Seite aus" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php ist an einem Webcron-Service registriert. Die cron.php Seite wird einmal pro Minute über http abgerufen." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Nutze den Cron Systemdienst. Rufe die Datei cron.php im owncloud Ordner einmal pro Minute über einen Cronjob auf." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Teilen" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Aktiviere Sharing-API" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Erlaube Apps die Nutzung der Share-API" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Erlaube Links" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Erlaube Benutzern Inhalte über öffentliche Links zu teilen" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Erlaube erneutes teilen" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Erlaube Benutzern mit ihnen geteilte Inhalte erneut zu teilen" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Erlaube Benutzern mit jedem zu teilen" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Erlaube Benutzern nur mit Benutzern ihrer Gruppe zu teilen" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Sicherheit" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Erzwinge HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Erzwingt die Verwendung einer verschlüsselten Verbindung" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Bitte verbinden Sie sich über eine HTTPS Verbindung mit diesem ownCloud Server um diese Einstellung zu ändern" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Loglevel" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mehr" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Entwickelt von der ownCloud-Community, der Quellcode ist unter der AGPL lizenziert." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Füge Deine Anwendung hinzu" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Weitere Anwendungen" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Wähle eine Anwendung aus" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Weitere Anwendungen findest Du auf apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-lizenziert von " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Update durchführen" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Dokumentation für Benutzer" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Dokumentation für Administratoren" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online-Dokumentation" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kommerzieller Support" @@ -196,116 +402,86 @@ msgstr "Kommerzieller Support" msgid "You have used %s of the available %s" msgstr "Du verwendest %s der verfügbaren %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clients" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Desktop-Client herunterladen" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Android-Client herunterladen" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS-Client herunterladen" +msgid "Get the apps to sync your files" +msgstr "Lade die Apps zur Synchronisierung Deiner Daten herunter" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Erstinstallation erneut durchführen" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Passwort" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Dein Passwort wurde geändert." -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Passwort konnte nicht geändert werden" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Aktuelles Passwort" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Neues Passwort" -#: templates/personal.php:28 -msgid "show" -msgstr "zeigen" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Passwort ändern" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Anzeigename" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Dein Anzeigename wurde geändert" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Das Ändern deines Anzeigenamens ist nicht möglich" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Anzeigenamen ändern" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-Mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Deine E-Mail-Adresse" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Trage eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren." -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Sprache" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hilf bei der Übersetzung" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Verwende diese Adresse, um Deinen Dateimanager mit Deiner ownCloud zu verbinden" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Entwickelt von der ownCloud-Community, der Quellcode ist unter der AGPL lizenziert." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Loginname" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruppen" - #: templates/users.php:32 msgid "Create" msgstr "Anlegen" @@ -314,34 +490,26 @@ msgstr "Anlegen" msgid "Default Storage" msgstr "Standard-Speicher" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Unbegrenzt" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Andere" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppenadministrator" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Speicher" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "Anzeigenamen ändern" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "Neues Passwort setzen" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Standard" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Löschen" diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po index ff8dbae3048d680f64fa27adbc8e0971c4cf0036..5bab82f9cbfe1d51ed90e39deaa1509169af9681 100644 --- a/l10n/de/user_ldap.po +++ b/l10n/de/user_ldap.po @@ -12,14 +12,15 @@ # Phi Lieb <>, 2012. # Susi <>, 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 22:10+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -28,23 +29,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Löschen der Serverkonfiguration fehlgeschlagen" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Die Konfiguration war erfolgreich, die Verbindung konnte hergestellt werden!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Die Konfiguration ist ungültig, bitte sehen Sie für weitere Details im ownCloud Log nach" #: js/settings.js:66 msgid "Deletion failed" @@ -52,7 +53,7 @@ msgstr "Löschen fehlgeschlagen" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Einstellungen von letzter Konfiguration übernehmen?" #: js/settings.js:83 msgid "Keep settings?" @@ -60,23 +61,23 @@ msgstr "Einstellungen beibehalten?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Serverkonfiguration konnte nicht hinzugefügt werden." #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Verbindungstest erfolgreich" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Verbindungstest fehlgeschlagen" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Wollen Sie die aktuelle Serverkonfiguration wirklich löschen?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Löschung bestätigen" #: templates/settings.php:8 msgid "" @@ -89,230 +90,230 @@ msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkom msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren." +msgstr "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Serverkonfiguration" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Serverkonfiguration hinzufügen" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Host" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "Ein Base DN pro Zeile" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Passwort" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Lasse die Felder von DN und Passwort für anonymen Zugang leer." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwende %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Verbindungseinstellungen" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Konfiguration aktiv" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Konfiguration wird übersprungen wenn deaktiviert" -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Port" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Backup Host (Kopie)" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Backup Port" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Hauptserver deaktivieren" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Benutze es nicht zusammen mit LDAPS Verbindungen, es wird fehlschlagen." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Schalte die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Ordnereinstellungen" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Feld für den Anzeigenamen des Benutzers" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Basis-Benutzerbaum" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "Ein Benutzer Base DN pro Zeile" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Benutzersucheigenschaften" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Optional; eine Eigenschaft pro Zeile" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Feld für den Anzeigenamen der Gruppe" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Basis-Gruppenbaum" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "Ein Gruppen Base DN pro Zeile" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Gruppensucheigenschaften" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Assoziation zwischen Gruppe und Benutzer" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Spezielle Eigenschaften" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "in Bytes" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Hilfe" diff --git a/l10n/de/user_webdavauth.po b/l10n/de/user_webdavauth.po index 3bc6180a309a29f1d25279403adaaa6fa5ea83fa..d2653f16859cdda6d2cbb70cb80e18a285696976 100644 --- a/l10n/de/user_webdavauth.po +++ b/l10n/de/user_webdavauth.po @@ -4,16 +4,17 @@ # # Translators: # , 2012. +# Marcel Kühlhorn , 2013. # , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 00:30+0000\n" -"Last-Translator: AndryXY \n" -"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 22:10+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -28,9 +29,9 @@ msgstr "WebDAV Authentifikation" msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "ownCloud wird die Benutzer-Anmeldedaten an diese URL schicken. Dieses Plugin prüft die Anmeldedaten auf ihre Gültigkeit und interpretiert die HTTP Statusfehler 401 und 403 als ungültige, sowie alle Anderen als gültige Anmeldedaten." +msgstr "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten und alle anderen Antworten als gültige Daten interpretieren." diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index 5f59dc9aaf3bcd2455cd6fa5dc33642aa67dc129..c0688e3ecc43d50089327468261f6412c5542a17 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/core.po @@ -17,17 +17,20 @@ # , 2012. # , 2012. # Phi Lieb <>, 2012. +# , 2013. # , 2013. +# Susi <>, 2013. # , 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Marcel Kühlhorn \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -37,26 +40,26 @@ msgstr "" #: ajax/share.php:85 #, php-format msgid "User %s shared a file with you" -msgstr "Der Nutzer %s hat eine Datei für Sie freigegeben" +msgstr "Der Nutzer %s hat eine Datei mit Ihnen geteilt" #: ajax/share.php:87 #, php-format msgid "User %s shared a folder with you" -msgstr "%s hat ein Verzeichnis für Sie freigegeben" +msgstr "%s hat einen Ordner mit Ihnen geteilt" #: ajax/share.php:89 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "%s hat eine Datei \"%s\" für Sie freigegeben. Sie ist zum Download hier ferfügbar: %s" +msgstr "%s hat die Datei \"%s\" mit Ihnen geteilt. Sie ist hier zum Download verfügbar: %s" #: ajax/share.php:91 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "%s hat eine Verzeichnis \"%s\" für Sie freigegeben. Es ist zum Download hier ferfügbar: %s" +msgstr "%s hat den Ordner \"%s\" mit Ihnen geteilt. Er ist hier zum Download verfügbar: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -67,8 +70,9 @@ msgid "No category to add?" msgstr "Keine Kategorie hinzuzufügen?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Kategorie existiert bereits:" +#, php-format +msgid "This category already exists: %s" +msgstr "Die Kategorie '%s' existiert bereits." #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -172,59 +176,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Einstellungen" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "Gerade eben" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "Vor 1 Minute" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "Vor {minutes} Minuten" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Vor einer Stunde" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Vor {hours} Stunden" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "Heute" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "Gestern" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "Vor {days} Tag(en)" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "Letzten Monat" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Vor {months} Monaten" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "Vor Monaten" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "Letztes Jahr" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "Vor Jahren" @@ -254,8 +258,8 @@ msgid "The object type is not specified." msgstr "Der Objekttyp ist nicht angegeben." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fehler" @@ -267,21 +271,21 @@ msgstr "Der App-Name ist nicht angegeben." msgid "The required file {file} is not installed!" msgstr "Die benötigte Datei {file} ist nicht installiert." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Freigeben" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" -msgstr "Freigegeben" +msgstr "Geteilt" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Teilen" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" -msgstr "Fehler bei der Freigabe" +msgstr "Fehler beim Teilen" #: js/share.js:152 msgid "Error while unsharing" -msgstr "Fehler bei der Aufhebung der Freigabe" +msgstr "Fehler bei der Aufhebung der Teilung" #: js/share.js:159 msgid "Error while changing permissions" @@ -289,19 +293,19 @@ msgstr "Fehler bei der Änderung der Rechte" #: js/share.js:168 msgid "Shared with you and the group {group} by {owner}" -msgstr "Durch {owner} für Sie und die Gruppe {group} freigegeben." +msgstr "Von {owner} mit Ihnen und der Gruppe {group} geteilt." #: js/share.js:170 msgid "Shared with you by {owner}" -msgstr "Durch {owner} für Sie freigegeben." +msgstr "Von {owner} mit Ihnen geteilt." #: js/share.js:175 msgid "Share with" -msgstr "Freigeben für" +msgstr "Teilen mit" #: js/share.js:180 msgid "Share with link" -msgstr "Über einen Link freigeben" +msgstr "Über einen Link teilen" #: js/share.js:183 msgid "Password protect" @@ -329,7 +333,7 @@ msgstr "Ablaufdatum" #: js/share.js:227 msgid "Share via email:" -msgstr "Mittels einer E-Mail freigeben:" +msgstr "Mittels einer E-Mail teilen:" #: js/share.js:229 msgid "No people found" @@ -369,25 +373,25 @@ msgstr "löschen" #: js/share.js:339 msgid "share" -msgstr "freigeben" +msgstr "teilen" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Durch ein Passwort geschützt" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Fehler beim Entfernen des Ablaufdatums" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Fehler beim Setzen des Ablaufdatums" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sende ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Email gesendet" @@ -396,13 +400,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Gemeinschaft." +msgstr "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Community." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." msgstr "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud-Passwort zurücksetzen" @@ -483,7 +487,7 @@ msgstr "Kategorien bearbeiten" msgid "Add" msgstr "Hinzufügen" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Sicherheitshinweis" @@ -493,71 +497,75 @@ msgid "" "OpenSSL extension." msgstr "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktivieren Sie die PHP-Erweiterung für OpenSSL." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage, die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Ihr Konto zu übernehmen." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar, weil die .htaccess-Datei nicht funktioniert." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich über das Internet erreichbar. Die von ownCloud bereitgestellte .htaccess Datei funktioniert nicht. Wir empfehlen Ihnen dringend, Ihren Webserver so zu konfigurieren, dass das Datenverzeichnis nicht mehr über das Internet erreichbar ist. Alternativ können Sie auch das Datenverzeichnis aus dem Dokumentenverzeichnis des Webservers verschieben." +"For information how to properly configure your server, please see the documentation." +msgstr "Bitte lesen Sie die Dokumentation für Informationen, wie Sie Ihren Server konfigurieren." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Administrator-Konto anlegen" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Fortgeschritten" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datenverzeichnis" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Datenbank einrichten" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "wird verwendet" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Datenbank-Benutzer" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Datenbank-Passwort" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Datenbank-Name" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Datenbank-Tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Datenbank-Host" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Installation abschließen" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Web-Services unter Ihrer Kontrolle" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Abmelden" @@ -589,7 +597,7 @@ msgstr "Einloggen" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternative Logins" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 20ad664318225d172dfc25d3a67007a067f35a1d..770efa3649221e4c189523c916c8a71037d2b75d 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -21,24 +21,42 @@ # , 2012. # Phi Lieb <>, 2012. # Phillip Schichtel , 2013. +# , 2013. +# , 2013. # , 2013. +# Susi <>, 2013. # , 2012. # Thomas Müller <>, 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-23 00:04+0100\n" +"PO-Revision-Date: 2013-02-22 23:00+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Konnte %s nicht verschieben" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Konnte Datei nicht umbenennen" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -58,27 +76,27 @@ msgid "" "the HTML form" msgstr "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Die Datei wurde nur teilweise hochgeladen." -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Es wurde keine Datei hochgeladen." -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Der temporäre Ordner fehlt." -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Fehler beim Schreiben auf die Festplatte" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nicht genügend Speicherplatz verfügbar" +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "Nicht genug Speicher vorhanden." -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Ungültiges Verzeichnis." @@ -86,53 +104,54 @@ msgstr "Ungültiges Verzeichnis." msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Nicht mehr freigeben" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Entgültig löschen" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Löschen" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ausstehend" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "Name vorschlagen" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} wurde ersetzt" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} wurde ersetzt durch {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "Führe das Löschen aus" +msgstr "führe das Löschen aus" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,78 +175,74 @@ msgstr "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert ode msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ihr Speicher ist fast voll ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Fehler beim Upload" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Schließen" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ausstehend" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 Datei wird hochgeladen" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} Dateien wurden hochgeladen" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Die URL darf nicht leer sein." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Name" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Größe" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Bearbeitet" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 Datei" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} Dateien" @@ -284,8 +299,8 @@ msgid "From link" msgstr "Von einem Link" #: templates/index.php:40 -msgid "Trash" -msgstr "Abfall" +msgid "Deleted files" +msgstr "Gelöschte Dateien" #: templates/index.php:46 msgid "Cancel upload" @@ -299,6 +314,10 @@ msgstr "Alles leer. Bitte laden Sie etwas hoch!" msgid "Download" msgstr "Herunterladen" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Nicht mehr freigeben" + #: templates/index.php:105 msgid "Upload too large" msgstr "Der Upload ist zu groß" @@ -319,4 +338,4 @@ msgstr "Scanne" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "Aktualisiere den Dateisystem-Cache" +msgstr "Aktualisiere den Dateisystem-Cache..." diff --git a/l10n/de_DE/files_encryption.po b/l10n/de_DE/files_encryption.po index 8d49245d9f5597250bafb524345b28bf3a5d6f53..f69dc4f485301ac1d8e8e3a3634055d9fd324212 100644 --- a/l10n/de_DE/files_encryption.po +++ b/l10n/de_DE/files_encryption.po @@ -8,57 +8,36 @@ # , 2012. # Marc-Andre Husyk , 2013. # Marcel Kühlhorn , 2013. +# Susi <>, 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-17 00:24+0100\n" +"PO-Revision-Date: 2013-02-16 23:00+0000\n" +"Last-Translator: Marcel Kühlhorn \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Bitte wechseln Sie nun zum ownCloud Client und ändern Sie ihr Verschlüsselungspasswort um die Konvertierung abzuschließen." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Zur Clientseitigen Verschlüsselung gewechselt" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden." - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Verschlüsselung" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Datei-Verschlüsselung ist aktiviert" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Die folgenden Dateitypen werden nicht verschlüsselt:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Die folgenden Dateitypen von der Verschlüsselung ausnehmen:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/de_DE/files_external.po b/l10n/de_DE/files_external.po index 6567207b38743332595fab2ea2dfeb11e3832ace..d3157565c0127c53b9b81244967b7c45b11a2cb6 100644 --- a/l10n/de_DE/files_external.po +++ b/l10n/de_DE/files_external.po @@ -12,10 +12,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-23 00:09+0100\n" -"PO-Revision-Date: 2012-12-22 13:57+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Mirodin \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -46,13 +46,13 @@ msgstr "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein." msgid "Error configuring Google Drive storage" msgstr "Fehler beim Einrichten von Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Warnung: \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitten Sie Ihren Systemadministrator, dies zu installieren." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -120,6 +120,6 @@ msgstr "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" msgid "SSL root certificates" msgstr "SSL-Root-Zertifikate" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Root-Zertifikate importieren" diff --git a/l10n/de_DE/files_trashbin.po b/l10n/de_DE/files_trashbin.po index 46d04db9deba20a1af1d7326bcd1b23286f8b840..c07b5d37fdd800d40aefe467f2bc513bfac925f3 100644 --- a/l10n/de_DE/files_trashbin.po +++ b/l10n/de_DE/files_trashbin.po @@ -3,51 +3,70 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Andreas Tangemann , 2013. # I Robot , 2013. +# Marcel Kühlhorn , 2013. # Phillip Schichtel , 2013. +# , 2013. +# Susi <>, 2013. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-23 00:04+0100\n" +"PO-Revision-Date: 2013-02-22 23:00+0000\n" +"Last-Translator: a.tangemann \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Konnte %s nicht dauerhaft löschen" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Konnte %s nicht wiederherstellen" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "Führe die Wiederherstellung aus" +msgstr "Wiederherstellung ausführen" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Datei dauerhaft löschen" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Endgültig löschen" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Name" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Gelöscht" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 Ordner" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} Ordner" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 Datei" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} Dateien" @@ -58,3 +77,7 @@ msgstr "Nichts zu löschen, Ihr Papierkorb ist leer!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Wiederherstellen" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Löschen" diff --git a/l10n/de_DE/files_versions.po b/l10n/de_DE/files_versions.po index bef0ee6b762dd1a12306d53b8a568eb029144a36..e28090ad6213e9d4d7505ca7ac858774798f4a87 100644 --- a/l10n/de_DE/files_versions.po +++ b/l10n/de_DE/files_versions.po @@ -6,26 +6,65 @@ # , 2012. # I Robot , 2012. # , 2012. +# Marcel Kühlhorn , 2013. +# , 2013. # , 2012. +# , 2013. +# , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 22:16+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Konnte %s nicht zurücksetzen" + +#: history.php:40 +msgid "success" +msgstr "Erfolgreich" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Die Datei %s wurde zur Version %s zurückgesetzt" + +#: history.php:49 +msgid "failure" +msgstr "Fehlgeschlagen" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Die Datei %s konnte nicht zur Version %s zurückgesetzt werden" + +#: history.php:68 +msgid "No old versions available" +msgstr "Keine älteren Versionen verfügbar" + +#: history.php:73 +msgid "No path specified" +msgstr "Kein Pfad angegeben" + #: js/versions.js:16 msgid "History" msgstr "Historie" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Setze eine Datei durch Klicken auf den Zurücksetzen-Button auf eine frühere Version zurück" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Dateiversionierung" diff --git a/l10n/de_DE/lib.po b/l10n/de_DE/lib.po index 851e152e2d5e56c7d3e9140b109e949c1216e414..c5371cd76d1a8419d82e42a0ec4100c07f1d38bf 100644 --- a/l10n/de_DE/lib.po +++ b/l10n/de_DE/lib.po @@ -6,62 +6,65 @@ # Andreas Tangemann , 2013. # , 2012. # , 2012. +# I Robot , 2013. # Jan-Christoph Borchardt , 2012. -# Marcel Kühlhorn , 2012. +# Marcel Kühlhorn , 2012-2013. # Phi Lieb <>, 2012. +# , 2013. # , 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:16+0000\n" -"Last-Translator: a.tangemann \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hilfe" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Persönlich" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Einstellungen" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Benutzer" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administrator" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Der ZIP-Download ist deaktiviert." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Die Dateien müssen einzeln heruntergeladen werden." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Zurück zu \"Dateien\"" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen." @@ -93,6 +96,108 @@ msgstr "Text" msgid "Images" msgstr "Bilder" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Setze Administrator Benutzername." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Setze Administrator Passwort" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Datei-Verzeichnis angeben" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s geben Sie den Datenbank-Benutzernamen an." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s geben Sie den Datenbank-Namen an." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s Der Datenbank-Name darf keine Punkte enthalten" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s setze den Datenbank-Host" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL Benutzername und/oder Passwort ungültig" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle Benutzername und/oder Passwort ungültig" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL Benutzername und/oder Passwort ungültig" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DB Fehler: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Fehlerhafter Befehl war: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL Benutzer '%s'@'localhost' existiert bereits." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Lösche diesen Benutzer aus MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL Benutzer '%s'@'%%' existiert bereits" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Lösche diesen Benutzer aus MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ihr Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Bitte prüfen Sie die Instalationsanleitungen." + #: template.php:113 msgid "seconds ago" msgstr "Gerade eben" @@ -145,16 +250,16 @@ msgstr "Letztes Jahr" msgid "years ago" msgstr "Vor Jahren" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s ist verfügbar. Weitere Informationen" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "aktuell" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "Die Update-Überprüfung ist ausgeschaltet" diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po index 980889f592818d4140a2963fe49ec7e9c4bfc1ca..09a52207dadc61c442d7fafccc822460eda01676 100644 --- a/l10n/de_DE/settings.po +++ b/l10n/de_DE/settings.po @@ -13,13 +13,15 @@ # Lukas Reschke , 2013. # , 2012. # , 2012. -# Marcel Kühlhorn , 2012. +# Marcel Kühlhorn , 2012-2013. # , 2012. # , 2012. # Phi Lieb <>, 2012. # Phillip Schichtel , 2013. +# , 2013. # , 2012. # , 2013. +# Susi <>, 2013. # , 2012. # , 2012. # , 2012. @@ -28,10 +30,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -42,14 +44,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Die Liste der Anwendungen im Store konnte nicht geladen werden." -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Fehler bei der Anmeldung" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Das Ändern des Anzeigenamens ist nicht möglich" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -91,17 +93,17 @@ msgstr "Ungültige Anfrage" msgid "Admins can't remove themself from the admin group" msgstr "Administratoren können sich nicht selbst aus der admin-Gruppe löschen" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Die App konnte nicht geupdated werden." @@ -135,61 +137,267 @@ msgstr "Fehler" #: js/apps.js:90 msgid "Updated" -msgstr "Geupdated" +msgstr "Aktualisiert" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Speichern..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "gelöscht" + +#: js/users.js:30 +msgid "undo" +msgstr "rückgängig machen" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Benutzer konnte nicht entfernt werden." + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruppen" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppenadministrator" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Löschen" + +#: js/users.js:191 +msgid "add group" +msgstr "Gruppe hinzufügen" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Es muss ein gültiger Benutzername angegeben werden" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Beim Erstellen des Benutzers ist ein Fehler aufgetreten" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Es muss ein gültiges Passwort angegeben werden" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Deutsch (Förmlich: Sie)" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sicherheitshinweis" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich über das Internet erreichbar. Die von ownCloud bereitgestellte .htaccess Datei funktioniert nicht. Wir empfehlen Ihnen dringend, Ihren Webserver so zu konfigurieren, dass das Datenverzeichnis nicht mehr über das Internet erreichbar ist. Alternativ können Sie auch das Datenverzeichnis aus dem Dokumentenverzeichnis des Webservers verschieben." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Einrichtungswarnung" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ihr Web-Server ist noch nicht konfiguriert noch nicht für Datei-Synchronisation bereit weil die WebDAV-Schnittstelle vermutlich defekt ist." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Bitte prüfen Sie die Instalationsanleitungen." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Das Modul 'fileinfo' fehlt" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Lokalisierung funktioniert nicht" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Keine Netzwerkverbindung" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Dieser ownCloud Server hat keine funktionierende Internetverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren wenn Sie alle Funktionen von ownCloud nutzen wollen." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Führe eine Aufgabe bei jedem Laden der Seite aus" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php ist bei einem Webcron-Service registriert. Die cron.php Seite im ownCloud Wurzelverzeichniss wird einmal pro Minute über http abgerufen." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Nutzen Sie den Cron Systemdienst. Rufen Sie die Datei cron.php im ownCloud Ordner einmal pro Minute über einen Cronjob auf." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Teilen" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Share-API aktivieren" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Erlaube es Anwendungen, die Share-API zu benutzen" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Links erlauben" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Erlaube es Benutzern, Items per öffentlichem Link zu teilen" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Erlaube weiterverteilen" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Erlaubt Nutzern mit ihnen geteilte Inhalte erneut zu teilen" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Erlaube Nutzern mit jedem zu teilen" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Erlaube Nutzern nur mit Nutzern in ihrer Gruppe zu teilen" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Sicherheit" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "HTTPS erzwingen" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Zwingt die Clients, sich über eine verschlüsselte Verbindung mit ownCloud zu verbinden." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Bitte verbinden Sie sich mit dieser ownCloud-Instanz per HTTPS um SSL-Erzwingung zu aktivieren oder deaktivieren." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Log-Level" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mehr" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Entwickelt von der ownCloud-Community. Der Quellcode ist unter der AGPL lizenziert." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Fügen Sie Ihre Anwendung hinzu" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Weitere Anwendungen" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Wählen Sie eine Anwendung aus" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Weitere Anwendungen finden Sie auf apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-lizenziert von " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Update durchführen" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Dokumentation für Benutzer" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Dokumentation für Administratoren" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online-Dokumentation" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kommerzieller Support" @@ -198,116 +406,86 @@ msgstr "Kommerzieller Support" msgid "You have used %s of the available %s" msgstr "Sie verwenden %s der verfügbaren %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clients" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Desktop-Client herunterladen" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Android-Client herunterladen" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS-Client herunterladen" +msgid "Get the apps to sync your files" +msgstr "Installieren Sie die Anwendungen um Ihre Dateien zu synchronisieren" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Zeige den Einrichtungsassistenten erneut" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Passwort" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ihr Passwort wurde geändert." -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Das Passwort konnte nicht geändert werden" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Aktuelles Passwort" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Neues Passwort" -#: templates/personal.php:28 -msgid "show" -msgstr "zeigen" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Passwort ändern" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Anzeigename" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Ihr Anzeigename wurde geändert" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Das Ändern Ihres Anzeigenamens ist nicht möglich" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Anzeigenamen ändern" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-Mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Ihre E-Mail-Adresse" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Bitte tragen Sie eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren." -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Sprache" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Helfen Sie bei der Übersetzung" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Verwenden Sie diese Adresse, um Ihren Dateimanager mit Ihrer ownCloud zu verbinden" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Entwickelt von der ownCloud-Community. Der Quellcode ist unter der AGPL lizenziert." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Loginname" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruppen" - #: templates/users.php:32 msgid "Create" msgstr "Anlegen" @@ -316,34 +494,26 @@ msgstr "Anlegen" msgid "Default Storage" msgstr "Standard-Speicher" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Unbegrenzt" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Andere" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppenadministrator" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Speicher" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "Anzeigenamen ändern" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "Neues Passwort setzen" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Standard" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Löschen" diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po index 663cfdb1af7773954e352c3f7470906458d53690..ad21db5c687e541bce4b214d0d3c683b5969ee62 100644 --- a/l10n/de_DE/user_ldap.po +++ b/l10n/de_DE/user_ldap.po @@ -10,18 +10,20 @@ # Maurice Preuß <>, 2012. # , 2012. # Phi Lieb <>, 2012. +# , 2013. # , 2013. # Susi <>, 2013. # , 2012. # , 2012. +# Tristan , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 13:50+0000\n" -"Last-Translator: Susi <>\n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 22:20+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -32,21 +34,21 @@ msgstr "" msgid "Failed to delete the server configuration" msgstr "Das Löschen der Server-Konfiguration schlug fehl" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "Die Konfiguration ist valide und eine Verbindung konnte hergestellt werden!" +msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate." +msgstr "Die Konfiguration ist gültig, aber das Herstellen der Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen." +msgstr "Die Konfiguration ist ungültig. Weitere Details können Sie im ownCloud-Log nachlesen." #: js/settings.js:66 msgid "Deletion failed" @@ -54,7 +56,7 @@ msgstr "Löschen fehlgeschlagen" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?" +msgstr "Sollen die Einstellungen der letzten Serverkonfiguration übernommen werden?" #: js/settings.js:83 msgid "Keep settings?" @@ -62,19 +64,19 @@ msgstr "Einstellungen behalten?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "Das Hinzufügen der Server-Konfiguration schlug fehl" +msgstr "Das Hinzufügen der Serverkonfiguration schlug fehl" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "Verbindungs-Test erfolgreich" +msgstr "Verbindungstest erfolgreich" #: js/settings.js:126 msgid "Connection test failed" -msgstr "Verbindungs-Test fehlgeschlagen" +msgstr "Verbindungstest fehlgeschlagen" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "Möchten Sie wirklich die Server-Konfiguration löschen?" +msgstr "Möchten Sie die Serverkonfiguration wirklich löschen?" #: js/settings.js:137 msgid "Confirm Deletion" @@ -95,226 +97,226 @@ msgstr "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Ba #: templates/settings.php:15 msgid "Server configuration" -msgstr "Server-Konfiguration" +msgstr "Serverkonfiguration" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "Server-Konfiguration hinzufügen" +msgstr "Serverkonfiguration hinzufügen" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Host" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "Ein Base DN pro Zeile" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lassen Sie DN und Passwort leer." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Passwort" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Lassen Sie die Felder von DN und Passwort für anonymen Zugang leer." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwenden Sie %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "Verbindungs-Einstellungen" +msgstr "Verbindungseinstellungen" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" msgstr "Konfiguration aktiv" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." msgstr "Wenn nicht angehakt, wird diese Konfiguration übersprungen." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Port" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "Back-Up (Replikation) Host" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein." +msgstr "Geben Sie einen optionalen Backup Host an. Es muss ein Replikat des Haupt- LDAP/AD Servers sein." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "Back-Up (Replikation) Port" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" msgstr "Hauptserver deaktivieren" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden." +msgstr "Wenn eingeschaltet wird sich die ownCloud nur mit dem Replikat-Server verbinden." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Verwenden Sie dies nicht für SSL-Verbindungen, es wird fehlschlagen." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Schalten Sie die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "Verzeichnis-Einstellungen" +msgstr "Verzeichniseinstellungen" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Feld für den Anzeigenamen des Benutzers" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Basis-Benutzerbaum" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "Ein Benutzer Base DN pro Zeile" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" msgstr "Benutzer-Suche Eigenschaften" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "Optional; Ein Attribut pro Zeile" +msgstr "Optional; ein Attribut pro Zeile" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Feld für den Anzeigenamen der Gruppe" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Basis-Gruppenbaum" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "Ein Gruppen Base DN pro Zeile" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" msgstr "Gruppen-Suche Eigenschaften" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Assoziation zwischen Gruppe und Benutzer" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "besondere Eigenschaften" +msgstr "Besondere Eigenschaften" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "in Bytes" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Hilfe" diff --git a/l10n/de_DE/user_webdavauth.po b/l10n/de_DE/user_webdavauth.po index 2d01d1e91e15c6ebeb00418eb1bbdc399297f748..d9d63ec77e59d1bb84286bbcab9587b39a1a9231 100644 --- a/l10n/de_DE/user_webdavauth.po +++ b/l10n/de_DE/user_webdavauth.po @@ -4,16 +4,17 @@ # # Translators: # , 2012-2013. +# Marcel Kühlhorn , 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-16 00:19+0100\n" -"PO-Revision-Date: 2013-01-15 22:23+0000\n" -"Last-Translator: a.tangemann \n" -"Language-Team: German (Germany) (http://www.transifex.com/projects/p/owncloud/language/de_DE/)\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 22:13+0000\n" +"Last-Translator: Mirodin \n" +"Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -28,9 +29,9 @@ msgstr "WebDAV Authentifizierung" msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten." +msgstr "ownCloud sendet die Benutzerdaten an diese URL. Dieses Plugin prüft die Antwort und wird die Statuscodes 401 und 403 als ungültige Daten und alle anderen Antworten als gültige Daten interpretieren." diff --git a/l10n/el/core.po b/l10n/el/core.po index ed6c06853fd5d11a0719b4680ab47c24b23cc7bb..b3849cc5963f133650a42ccd9ee3cd9cfe03934e 100644 --- a/l10n/el/core.po +++ b/l10n/el/core.po @@ -4,8 +4,9 @@ # # Translators: # axil Pι , 2012. -# Dimitris M. , 2012. +# Dimitris M. , 2012-2013. # Efstathios Iosifidis , 2012. +# Efstathios Iosifidis , 2013. # Efstathios Iosifidis , 2012. # Marios Bekatoros <>, 2012. # , 2011. @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,8 +59,9 @@ msgid "No category to add?" msgstr "Δεν έχετε κατηγορία να προσθέσετε;" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Αυτή η κατηγορία υπάρχει ήδη:" +#, php-format +msgid "This category already exists: %s" +msgstr "Αυτή η κατηγορία υπάρχει ήδη: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -163,59 +165,59 @@ msgstr "Νοέμβριος" msgid "December" msgstr "Δεκέμβριος" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ρυθμίσεις" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "δευτερόλεπτα πριν" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 λεπτό πριν" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} λεπτά πριν" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 ώρα πριν" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} ώρες πριν" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "σήμερα" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "χτες" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} ημέρες πριν" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "τελευταίο μήνα" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} μήνες πριν" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "μήνες πριν" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "τελευταίο χρόνο" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "χρόνια πριν" @@ -245,8 +247,8 @@ msgid "The object type is not specified." msgstr "Δεν καθορίστηκε ο τύπος του αντικειμένου." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Σφάλμα" @@ -258,15 +260,15 @@ msgstr "Δεν καθορίστηκε το όνομα της εφαρμογής. msgid "The required file {file} is not installed!" msgstr "Το απαιτούμενο αρχείο {file} δεν εγκαταστάθηκε!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Κοινόχρηστα" + +#: js/share.js:93 msgid "Share" msgstr "Διαμοιρασμός" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Σφάλμα κατά τον διαμοιρασμό" @@ -362,23 +364,23 @@ msgstr "διαγραφή" msgid "share" msgstr "διαμοιρασμός" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Προστασία με συνθηματικό" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Σφάλμα κατά την διαγραφή της ημ. λήξης" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Σφάλμα κατά τον ορισμό ημ. λήξης" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Αποστολή..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Το Email απεστάλη " @@ -387,13 +389,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Η ενημέρωση ήταν ανεπιτυχής. Παρακαλώ στείλτε αναφορά στην κοινότητα ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Επαναφορά συνθηματικού ownCloud" @@ -474,7 +476,7 @@ msgstr "Επεξεργασία κατηγοριών" msgid "Add" msgstr "Προσθήκη" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Προειδοποίηση Ασφαλείας" @@ -484,71 +486,75 @@ msgid "" "OpenSSL extension." msgstr "Δεν είναι διαθέσιμο το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, παρακαλώ ενεργοποιήστε το πρόσθετο της PHP, OpenSSL." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Χωρίς το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, μπορεί να διαρρεύσει ο λογαριασμός σας από επιθέσεις στο διαδίκτυο." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Ο κατάλογος δεδομένων και τα αρχεία σας είναι πιθανό προσβάσιμα από το internet γιατί δεν δουλεύει το αρχείο .htaccess." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Ο κατάλογος data και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess που παρέχει το ownCloud δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος data να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο data έξω από τον κατάλογο του διακομιστή." +"For information how to properly configure your server, please see the documentation." +msgstr "Για πληροφορίες σχετικά με την σωστή ρύθμιση του διακομιστή σας, δείτε στην τεκμηρίωση." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Δημιουργήστε έναν λογαριασμό διαχειριστή" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Για προχωρημένους" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Φάκελος δεδομένων" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Ρύθμιση της βάσης δεδομένων" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "θα χρησιμοποιηθούν" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Χρήστης της βάσης δεδομένων" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Συνθηματικό βάσης δεδομένων" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Όνομα βάσης δεδομένων" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Κενά Πινάκων Βάσης Δεδομένων" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Διακομιστής βάσης δεδομένων" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Ολοκλήρωση εγκατάστασης" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Υπηρεσίες web υπό τον έλεγχό σας" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Αποσύνδεση" @@ -580,7 +586,7 @@ msgstr "Είσοδος" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Εναλλακτικές Συνδέσεις" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/el/files.po b/l10n/el/files.po index ee4f5f3cf1db89a380e22c5dc7a46ebc954c6bf1..ae831d47862d951ed7ac590af2f334232e66193f 100644 --- a/l10n/el/files.po +++ b/l10n/el/files.po @@ -3,7 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Dimitris M. , 2012. +# Dimitris M. , 2012-2013. # Efstathios Iosifidis , 2012-2013. # Efstathios Iosifidis , 2013. # Efstathios Iosifidis , 2012. @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 17:46+0000\n" +"Last-Translator: Dimitris M. \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,6 +25,20 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Αδυναμία μετακίνησης του %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Αδυναμία μετονομασίας αρχείου" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα" @@ -44,27 +58,27 @@ msgid "" "the HTML form" msgstr "Το αρχείο υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"MAX_FILE_SIZE\" που έχει οριστεί στην HTML φόρμα" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Το αρχείο εστάλει μόνο εν μέρει" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Κανένα αρχείο δεν στάλθηκε" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Λείπει ο προσωρινός φάκελος" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Αποτυχία εγγραφής στο δίσκο" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Δεν υπάρχει αρκετός διαθέσιμος χώρος" +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Μη έγκυρος φάκελος." @@ -72,53 +86,54 @@ msgstr "Μη έγκυρος φάκελος." msgid "Files" msgstr "Αρχεία" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Διακοπή κοινής χρήσης" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Μόνιμη διαγραφή" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Διαγραφή" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Μετονομασία" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Εκκρεμεί" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} υπάρχει ήδη" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "αντικατέστησε" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "συνιστώμενο όνομα" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "ακύρωση" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} αντικαταστάθηκε" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "αναίρεση" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "αντικαταστάθηκε το {new_name} με {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "εκτέλεση διαδικασία διαγραφής" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -142,50 +157,46 @@ msgstr "Ο αποθηκευτικός σας χώρος είναι γεμάτο msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Σφάλμα Αποστολής" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Κλείσιμο" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Εκκρεμεί" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 αρχείο ανεβαίνει" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} αρχεία ανεβαίνουν" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Η αποστολή ακυρώθηκε." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Η URL δεν πρέπει να είναι κενή." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Μη έγκυρο όνομα φακέλου. Η χρήση του 'Κοινόχρηστος' χρησιμοποιείται από ο Owncloud" @@ -270,8 +281,8 @@ msgid "From link" msgstr "Από σύνδεσμο" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Διαγραμμένα αρχεία" #: templates/index.php:46 msgid "Cancel upload" @@ -279,12 +290,16 @@ msgstr "Ακύρωση αποστολής" #: templates/index.php:59 msgid "Nothing in here. Upload something!" -msgstr "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!" +msgstr "Δεν υπάρχει τίποτα εδώ. Μεταφορτώστε κάτι!" #: templates/index.php:73 msgid "Download" msgstr "Λήψη" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Διακοπή κοινής χρήσης" + #: templates/index.php:105 msgid "Upload too large" msgstr "Πολύ μεγάλο αρχείο προς αποστολή" @@ -305,4 +320,4 @@ msgstr "Τρέχουσα αναζήτηση " #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Αναβάθμιση μνήμης cache του συστήματος αρχείων..." diff --git a/l10n/el/files_encryption.po b/l10n/el/files_encryption.po index fe96e9ba8afbd80ffea19e25d73ee0aac0b1ae09..7196402db423993479cc1d90a1195bcb8ba24ea6 100644 --- a/l10n/el/files_encryption.po +++ b/l10n/el/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Dimitris M. , 2013. # Efstathios Iosifidis , 2012. # Efstathios Iosifidis , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -19,43 +20,21 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Αλλαγή συνθηματικού κρυπτογράφησης στο συνθηματικό εισόδου " - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Παρακαλώ ελέγξτε το συνθηματικό σας και προσπαθήστε ξανά." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Αδυναμία αλλαγής συνθηματικού κρυπτογράφησης αρχείων στο συνθηματικό εισόδου σας" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Κρυπτογράφηση" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Η κρυπτογράφηση αρχείων είναι ενεργή." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Οι παρακάτω τύποι αρχείων δεν θα κρυπτογραφηθούν:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Εξαίρεση των παρακάτω τύπων αρχείων από την κρυπτογράφηση:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/el/files_external.po b/l10n/el/files_external.po index f72135ae53ad26279f9db284b493b6118457889a..4f5d78808b0e312139e6cfb2c408ea30f8fa1d4c 100644 --- a/l10n/el/files_external.po +++ b/l10n/el/files_external.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-22 00:24+0100\n" -"PO-Revision-Date: 2012-12-21 13:41+0000\n" -"Last-Translator: Efstathios Iosifidis \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -47,13 +47,13 @@ msgstr "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox κα msgid "Error configuring Google Drive storage" msgstr "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive " -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Προσοχή: Ο \"smbclient\" δεν εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση CIFS/SMB. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -121,6 +121,6 @@ msgstr "Να επιτρέπεται στους χρήστες να προσαρ msgid "SSL root certificates" msgstr "Πιστοποιητικά SSL root" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Εισαγωγή Πιστοποιητικού Root" diff --git a/l10n/el/files_trashbin.po b/l10n/el/files_trashbin.po index 21fb46b9862fffe58134be52e460e6831aad4df8..3976247d3e6444a2eb4119db322965927c51b6ed 100644 --- a/l10n/el/files_trashbin.po +++ b/l10n/el/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Dimitris M. , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Αδύνατη η μόνιμη διαγραφή του %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Αδυναμία επαναφοράς %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "εκτέλεση λειτουργία επαναφοράς" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "μόνιμη διαγραφή αρχείου" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Μόνιμη διαγραφή" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Όνομα" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Διαγράφηκε" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 φάκελος" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} φάκελοι" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 αρχείο" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} αρχεία" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Επαναφορά" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Διαγραφή" diff --git a/l10n/el/files_versions.po b/l10n/el/files_versions.po index 3812c4bda0dff0ad4cd283c85e286926b9b58b56..0f2316b7ab764b41106c06c2774e605fa50dc9e6 100644 --- a/l10n/el/files_versions.po +++ b/l10n/el/files_versions.po @@ -3,16 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Dimitris M. , 2012. +# Dimitris M. , 2012-2013. # Efstathios Iosifidis , 2012. # Nisok Kosin , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 14:20+0000\n" +"Last-Translator: Dimitris M. \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,10 +20,45 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Αδυναμία επαναφοράς του: %s" + +#: history.php:40 +msgid "success" +msgstr "επιτυχία" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Το αρχείο %s επαναφέρθηκε στην έκδοση %s" + +#: history.php:49 +msgid "failure" +msgstr "αποτυχία" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Το αρχείο %s δεν είναι δυνατό να επαναφερθεί στην έκδοση %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Μη διαθέσιμες παλιές εκδόσεις" + +#: history.php:73 +msgid "No path specified" +msgstr "Δεν καθορίστηκε διαδρομή" + #: js/versions.js:16 msgid "History" msgstr "Ιστορικό" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Επαναφορά ενός αρχείου σε προηγούμενη έκδοση πατώντας στο κουμπί επαναφοράς" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Εκδόσεις Αρχείων" diff --git a/l10n/el/lib.po b/l10n/el/lib.po index 27ef72f2eb270ab79cea929ff5151fb9ed92c98a..c7a31d5a585ab51272f8f9ce00e6429189e1117c 100644 --- a/l10n/el/lib.po +++ b/l10n/el/lib.po @@ -3,15 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Dimitris M. , 2013. +# Efstathios Iosifidis , 2013. # Efstathios Iosifidis , 2012. # , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 20:39+0000\n" -"Last-Translator: xneo1 \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +21,43 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Βοήθεια" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Προσωπικά" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ρυθμίσεις" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Χρήστες" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Εφαρμογές" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Διαχειριστής" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Η λήψη ZIP απενεργοποιήθηκε." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Τα αρχεία πρέπει να ληφθούν ένα-ένα." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Πίσω στα Αρχεία" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Τα επιλεγμένα αρχεία είναι μεγάλα ώστε να δημιουργηθεί αρχείο zip." @@ -87,6 +89,108 @@ msgstr "Κείμενο" msgid "Images" msgstr "Εικόνες" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Εισάγετε όνομα χρήστη διαχειριστή." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Εισάγετε συνθηματικό διαχειριστή." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Καθορίστε τον φάκελο δεδομένων." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s εισάγετε το όνομα της βάσης δεδομένων." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Μη έγκυρος χρήστης και/ή συνθηματικό της MySQL" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Σφάλμα Βάσης Δεδομένων: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Απόρριψη αυτού του χρήστη από την MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Ο χρήστης '%s'@'%%' της MySQL υπάρχει ήδη" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Απόρριψη αυτού του χρήστη από την MySQL" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Ελέγξτε ξανά τις οδηγίες εγκατάστασης." + #: template.php:113 msgid "seconds ago" msgstr "δευτερόλεπτα πριν" @@ -139,16 +243,16 @@ msgstr "τον προηγούμενο χρόνο" msgid "years ago" msgstr "χρόνια πριν" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" -msgstr "%s είναι διαθέσιμα. Δείτε περισσότερες πληροφορίες" +msgstr "%s είναι διαθέσιμο. Δείτε περισσότερες πληροφορίες" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ενημερωμένο" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "ο έλεγχος ενημερώσεων είναι απενεργοποιημένος" diff --git a/l10n/el/settings.po b/l10n/el/settings.po index c6c5dfb10f04503431fa9c8f81d9237ddd87e98d..57cd5917caf6d19c39f9a56bade153365ce6d198 100644 --- a/l10n/el/settings.po +++ b/l10n/el/settings.po @@ -3,8 +3,9 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Dimitris M. , 2012. +# Dimitris M. , 2012-2013. # Efstathios Iosifidis , 2012. +# Efstathios Iosifidis , 2013. # Efstathios Iosifidis , 2012. # , 2012. # , 2012. @@ -19,8 +20,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -33,14 +34,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Σφάλμα στην φόρτωση της λίστας από το App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Σφάλμα πιστοποίησης" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Δεν είναι δυνατή η αλλαγή του ονόματος εμφάνισης" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -82,23 +83,23 @@ msgstr "Μη έγκυρο αίτημα" msgid "Admins can't remove themself from the admin group" msgstr "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Αδυναμία προσθήκη χρήστη στην ομάδα %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Αδυναμία ενημέρωσης εφαρμογής" #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Ενημέρωση σε {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -110,15 +111,15 @@ msgstr "Ενεργοποίηση" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Παρακαλώ περιμένετε..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Ενημέρωση..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Σφάλμα κατά την ενημέρωση της εφαρμογής" #: js/apps.js:87 msgid "Error" @@ -126,61 +127,267 @@ msgstr "Σφάλμα" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Ενημερώθηκε" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Αποθήκευση..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "διαγράφηκε" + +#: js/users.js:30 +msgid "undo" +msgstr "αναίρεση" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Αδυναμία αφαίρεση χρήστη" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Ομάδες" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Ομάδα Διαχειριστών" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Διαγραφή" + +#: js/users.js:191 +msgid "add group" +msgstr "προσθήκη ομάδας" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Πρέπει να δοθεί έγκυρο όνομα χρήστη" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Σφάλμα δημιουργίας χρήστη" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Πρέπει να δοθεί έγκυρο συνθηματικό" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__όνομα_γλώσσας__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Προειδοποίηση Ασφαλείας" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Ο κατάλογος data και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess που παρέχει το ownCloud δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος data να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο data έξω από τον κατάλογο του διακομιστή." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Ρύθμιση Προειδοποίησης" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Ελέγξτε ξανά τις οδηγίες εγκατάστασης." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Η μετάφραση δεν δουλεύει" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Η σύνδεση στο διαδίκτυο δεν δουλεύει" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Εκτέλεση μιας διεργασίας με κάθε σελίδα που φορτώνεται" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "Το cron.php είναι καταχωρημένο στην υπηρεσία webcron. Να καλείται μια φορά το λεπτό η σελίδα cron.php από τον root του owncloud μέσω http" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Χρήση υπηρεσίας συστήματος cron. Να καλείται μια φορά το λεπτό, το αρχείο cron.php από τον φάκελο του owncloud μέσω του cronjob του συστήματος." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Διαμοιρασμός" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Ενεργοποίηση API Διαμοιρασμού" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Να επιτρέπεται στις εφαρμογές να χρησιμοποιούν το API Διαμοιρασμού" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Να επιτρέπονται σύνδεσμοι" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Να επιτρέπεται στους χρήστες να διαμοιράζουν δημόσια με συνδέσμους" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Να επιτρέπεται ο επαναδιαμοιρασμός" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Να επιτρέπεται στους χρήστες να διαμοιράζουν ότι τους έχει διαμοιραστεί" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Να επιτρέπεται ο διαμοιρασμός με οποιονδήποτε" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Να επιτρέπεται στους χρήστες ο διαμοιρασμός μόνο με χρήστες της ίδιας ομάδας" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Ασφάλεια" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Επιβολή χρήσης HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Επιβολή στους πελάτες να συνδεθούν στο ownCloud μέσω μιας κρυπτογραφημένης σύνδεσης." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Καταγραφές" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Επίπεδο καταγραφής" + +#: templates/admin.php:223 +msgid "More" +msgstr "Περισσότερα" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Έκδοση" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Αναπτύχθηκε από την κοινότητα ownCloud, ο πηγαίος κώδικας είναι υπό άδεια χρήσης AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Πρόσθεστε τη Δικιά σας Εφαρμογή" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Περισσότερες Εφαρμογές" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Επιλέξτε μια Εφαρμογή" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Δείτε την σελίδα εφαρμογών στο apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-άδεια από " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Ενημέρωση" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Τεκμηρίωση Χρήστη" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Τεκμηρίωση Διαχειριστή" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Τεκμηρίωση στο Διαδίκτυο" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Φόρουμ" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Εμπορική Υποστήριξη" @@ -189,115 +396,85 @@ msgstr "Εμπορική Υποστήριξη" msgid "You have used %s of the available %s" msgstr "Χρησιμοποιήσατε %s από διαθέσιμα %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Πελάτες" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Λήψη Προγραμμάτων για Σταθερούς Υπολογιστές" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Λήψη Προγράμματος Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Λήψη Προγράμματος iOS" +msgid "Get the apps to sync your files" +msgstr "Λήψη της εφαρμογής για συγχρονισμό των αρχείων σας" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Προβολή Πρώτης Εκτέλεσης Οδηγού πάλι" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Συνθηματικό" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Το συνθηματικό σας έχει αλλάξει" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Τρέχων συνθηματικό" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Νέο συνθηματικό" -#: templates/personal.php:28 -msgid "show" -msgstr "εμφάνιση" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Αλλαγή συνθηματικού" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Όνομα εμφάνισης" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Το όνομα εμφάνισής σας άλλαξε" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Δεν ήταν δυνατή η αλλαγή του ονόματος εμφάνισής σας" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Αλλαγή ονόματος εμφάνισης" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Η διεύθυνση ηλεκτρονικού ταχυδρομείου σας" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Συμπληρώστε μια διεύθυνση ηλεκτρονικού ταχυδρομείου για να ενεργοποιηθεί η ανάκτηση συνθηματικού" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Γλώσσα" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Βοηθήστε στη μετάφραση" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Χρήση αυτής της διεύθυνσης για σύνδεση στο ownCloud με τον διαχειριστή αρχείων σας" -#: templates/personal.php:85 -msgid "Version" -msgstr "Έκδοση" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Αναπτύχθηκε από την κοινότητα ownCloud, ο πηγαίος κώδικας είναι υπό άδεια χρήσης AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Ομάδες" +msgstr "Όνομα Σύνδεσης" #: templates/users.php:32 msgid "Create" @@ -307,34 +484,26 @@ msgstr "Δημιουργία" msgid "Default Storage" msgstr "Προκαθορισμένη Αποθήκευση " -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Απεριόριστο" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Άλλα" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Ομάδα Διαχειριστών" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Αποθήκευση" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "αλλαγή ονόματος εμφάνισης" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "επιλογή νέου κωδικού" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Προκαθορισμένο" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Διαγραφή" diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po index 0bc933973eabb38f947fb2a426e155eeb8790c86..2f51712882eeb530b7e8691f63ff3794aa79a7bc 100644 --- a/l10n/el/user_ldap.po +++ b/l10n/el/user_ldap.po @@ -6,15 +6,16 @@ # , 2012. # Dimitris M. , 2012. # Efstathios Iosifidis , 2012. +# Efstathios Iosifidis , 2013. # Konstantinos Tzanidis , 2012. # Marios Bekatoros <>, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-18 00:05+0100\n" +"PO-Revision-Date: 2013-02-17 13:00+0000\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,23 +25,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Αποτυχία διαγραφής ρυθμίσεων διακομιστή" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Μη έγκυρες ρυθμίσεις. Παρακαλώ ελέγξτε τις καταγραφές του ownCloud για περισσότερες λεπτομέρειες." #: js/settings.js:66 msgid "Deletion failed" @@ -52,27 +53,27 @@ msgstr "" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Διατήρηση ρυθμίσεων;" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Αδυναμία προσθήκης ρυθμίσεων διακομιστή" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Επιτυχημένη δοκιμαστική σύνδεση" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Αποτυχημένη δοκιμαστική σύνδεσης." #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Επιβεβαίωση Διαγραφής" #: templates/settings.php:8 msgid "" @@ -85,230 +86,230 @@ msgstr "Προσοχή: Οι εφαρμογές user_ldap και user_web msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Προσοχή: Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Ρυθμίσεις Διακομιστή" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Προσθήκη Ρυθμίσεων Διακομιστή" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Διακομιστής" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "User DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Συνθηματικό" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "User Login Filter" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την προσπάθεια σύνδεσης χρήστη. %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. " -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "χρησιμοποιήστε τη μεταβλητή %%uid, π.χ. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "User List Filter" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση επαφών." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=άτομο\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Group Filter" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\"." -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Ρυθμίσεις Σύνδεσης" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Θύρα" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Χρήση TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Δεν προτείνεται, χρήση μόνο για δοκιμές." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Ρυθμίσεις Καταλόγου" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Πεδίο Ονόματος Χρήστη" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud." -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Base User Tree" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Group Display Name Field" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud." -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Base Group Tree" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Group-Member association" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" msgstr "" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "σε bytes" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Βοήθεια" diff --git a/l10n/eo/core.po b/l10n/eo/core.po index 49f2fac8a7f444bf71686d291e808ff21d0b0789..e53e6244654f75dd03e5890df6f739c8729182c0 100644 --- a/l10n/eo/core.po +++ b/l10n/eo/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "Ĉu neniu kategorio estas aldonota?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ĉi tiu kategorio jam ekzistas: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "Novembro" msgid "December" msgstr "Decembro" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Agordo" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekundoj antaŭe" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "antaŭ 1 minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "antaŭ {minutes} minutoj" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "antaŭ 1 horo" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "antaŭ {hours} horoj" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hodiaŭ" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "hieraŭ" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "antaŭ {days} tagoj" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "lastamonate" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "antaŭ {months} monatoj" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "monatoj antaŭe" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "lastajare" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "jaroj antaŭe" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "Ne indikiĝis tipo de la objekto." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Eraro" @@ -253,15 +254,15 @@ msgstr "Ne indikiĝis nomo de la aplikaĵo." msgid "The required file {file} is not installed!" msgstr "La necesa dosiero {file} ne instaliĝis!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Kunhavigi" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Kunhavigi" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Eraro dum kunhavigo" @@ -357,23 +358,23 @@ msgstr "forigi" msgid "share" msgstr "kunhavigi" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protektita per pasvorto" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Eraro dum malagordado de limdato" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Eraro dum agordado de limdato" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sendante..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "La retpoŝtaĵo sendiĝis" @@ -388,7 +389,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "La pasvorto de ownCloud restariĝis." @@ -469,7 +470,7 @@ msgstr "Redakti kategoriojn" msgid "Add" msgstr "Aldoni" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Sekureca averto" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "Ne disponeblas sekura generilo de hazardaj numeroj; bonvolu kapabligi la OpenSSL-kromaĵon por PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Krei administran konton" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Progresinta" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datuma dosierujo" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Agordi la datumbazon" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "estos uzata" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Datumbaza uzanto" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Datumbaza pasvorto" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Datumbaza nomo" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Datumbaza tabelospaco" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Datumbaza gastigo" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Fini la instalon" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "TTT-servoj sub via kontrolo" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Elsaluti" diff --git a/l10n/eo/files.po b/l10n/eo/files.po index aa88fa9c85e52b2942a597e57fc898cde4887a17..e1072165f6a8083a8e12155f7364c4e438df734c 100644 --- a/l10n/eo/files.po +++ b/l10n/eo/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Ne eblis movi %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Ne eblis alinomigi dosieron" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Neniu dosiero alŝutiĝis. Nekonata eraro." @@ -56,8 +70,8 @@ msgid "Failed to write to disk" msgstr "Malsukcesis skribo al disko" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Ne haveblas sufiĉa spaco" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -67,51 +81,52 @@ msgstr "Nevalida dosierujo." msgid "Files" msgstr "Dosieroj" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Malkunhavigi" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Forigi" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Alinomigi" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Traktotaj" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} jam ekzistas" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "anstataŭigi" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugesti nomon" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "nuligi" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "anstataŭiĝis {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "malfari" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "anstataŭiĝis {new_name} per {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,78 +152,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Via elŝuto pretiĝatas. Ĉi tio povas daŭri iom da tempo se la dosieroj grandas." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Alŝuta eraro" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Fermi" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Traktotaj" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 dosiero estas alŝutata" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} dosieroj alŝutatas" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "La alŝuto nuliĝis." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL ne povas esti malplena." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nevalida dosierujnomo. Uzo de “Shared” rezervatas de Owncloud." -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nomo" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Grando" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modifita" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 dosierujo" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dosierujoj" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 dosiero" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} dosierujoj" @@ -265,7 +276,7 @@ msgid "From link" msgstr "El ligilo" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Nenio estas ĉi tie. Alŝutu ion!" msgid "Download" msgstr "Elŝuti" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Malkunhavigi" + #: templates/index.php:105 msgid "Upload too large" msgstr "Elŝuto tro larĝa" diff --git a/l10n/eo/files_encryption.po b/l10n/eo/files_encryption.po index 77ddc820b56e3c568699679ad0dfd2a31ec7718d..1a1260fd41311b86a4b74a259f1d11121d5be038 100644 --- a/l10n/eo/files_encryption.po +++ b/l10n/eo/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Ĉifrado" diff --git a/l10n/eo/files_external.po b/l10n/eo/files_external.po index 5d494ccfa3452d5a5d3bb988309a02155ab5a46d..42a437996503d3e33a5883bf1523de38463c9055 100644 --- a/l10n/eo/files_external.po +++ b/l10n/eo/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Bonvolu provizi ŝlosilon de la aplikaĵo Dropbox validan kaj sekretan." msgid "Error configuring Google Drive storage" msgstr "Eraro dum agordado de la memorservo Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "Uzantoj" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Forigi" @@ -112,10 +112,10 @@ msgstr "Kapabligi malenan memorilon de uzanto" msgid "Allow users to mount their own external storage" msgstr "Permesi al uzantoj surmeti siajn proprajn malenajn memorilojn" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Radikaj SSL-atestoj" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Enporti radikan ateston" diff --git a/l10n/eo/files_trashbin.po b/l10n/eo/files_trashbin.po index 6a61ee22d0e902481dc1750fe1162ea5910733c3..54c8bebce857e8c47f157dc17e4a9cfe9c24d631 100644 --- a/l10n/eo/files_trashbin.po +++ b/l10n/eo/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nomo" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 dosierujo" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} dosierujoj" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 dosiero" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} dosierujoj" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Restaŭri" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Forigi" diff --git a/l10n/eo/files_versions.po b/l10n/eo/files_versions.po index 53a59b49120e6dca3d64074a9ed8cc20a3beb0b6..6e7f83b9ade5682a1bb026c51661a461e9883dc3 100644 --- a/l10n/eo/files_versions.po +++ b/l10n/eo/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Historio" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Dosiereldonigo" diff --git a/l10n/eo/lib.po b/l10n/eo/lib.po index 05fd08aa22b7866c6752498b23f77f3d5d258be7..f996e6cedaef96cdc639b5f9245244d8d979a98b 100644 --- a/l10n/eo/lib.po +++ b/l10n/eo/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Helpo" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Persona" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Agordo" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Uzantoj" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplikaĵoj" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administranto" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP-elŝuto estas malkapabligita." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Dosieroj devas elŝutiĝi unuope." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Reen al la dosieroj" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "La elektitaj dosieroj tro grandas por genero de ZIP-dosiero." @@ -86,6 +86,108 @@ msgstr "Teksto" msgid "Images" msgstr "Bildoj" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "sekundojn antaŭe" @@ -138,16 +240,16 @@ msgstr "lasta jaro" msgid "years ago" msgstr "jarojn antaŭe" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s haveblas. Ekhavu pli da informo" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ĝisdata" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "ĝisdateckontrolo estas malkapabligita" diff --git a/l10n/eo/settings.po b/l10n/eo/settings.po index d48c43e7b6f745c1da46385e250e041d64dbe961..84327bf8760d4e267f38dc0bd1f61870fee53ab3 100644 --- a/l10n/eo/settings.po +++ b/l10n/eo/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Ne eblis ŝargi liston el aplikaĵovendejo" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Aŭtentiga eraro" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "Nevalida peto" msgid "Admins can't remove themself from the admin group" msgstr "Administrantoj ne povas forigi sin mem el la administra grupo." -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Ne eblis aldoni la uzanton al la grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Ne eblis forigi la uzantan el la grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -119,59 +119,265 @@ msgstr "Eraro" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Konservante..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "forigita" + +#: js/users.js:30 +msgid "undo" +msgstr "malfari" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupoj" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupadministranto" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Forigi" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Esperanto" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sekureca averto" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Pli" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Eldono" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Ellaborita de la komunumo de ownCloud, la fontokodo publikas laŭ la permesilo AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Aldonu vian aplikaĵon" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Pli da aplikaĵoj" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Elekti aplikaĵon" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Vidu la paĝon pri aplikaĵoj ĉe apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-permesilhavigita de " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Ĝisdatigi" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Dokumentaro por uzantoj" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Dokumentaro por administrantoj" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Reta dokumentaro" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forumo" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Cimoraportejo" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Komerca subteno" @@ -180,116 +386,86 @@ msgstr "Komerca subteno" msgid "You have used %s of the available %s" msgstr "Vi uzas %s el la haveblaj %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klientoj" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Elŝuti labortablajn klientojn" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Elŝuti Android-klienton" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Elŝuti iOS-klienton" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Pasvorto" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Via pasvorto ŝanĝiĝis" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Ne eblis ŝanĝi vian pasvorton" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Nuna pasvorto" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nova pasvorto" -#: templates/personal.php:28 -msgid "show" -msgstr "montri" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Ŝanĝi la pasvorton" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Retpoŝto" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Via retpoŝta adreso" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Enigu retpoŝtadreson por kapabligi pasvortan restaŭron" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Lingvo" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Helpu traduki" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Uzu ĉi tiun adreson por konekti al via ownCloud vian dosieradministrilon" -#: templates/personal.php:85 -msgid "Version" -msgstr "Eldono" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Ellaborita de la komunumo de ownCloud, la fontokodo publikas laŭ la permesilo AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupoj" - #: templates/users.php:32 msgid "Create" msgstr "Krei" @@ -298,34 +474,26 @@ msgstr "Krei" msgid "Default Storage" msgstr "Defaŭlta konservejo" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Senlima" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Alia" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupadministranto" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Konservejo" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Defaŭlta" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Forigi" diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po index 9bdab74d0f3821b758a58f634d6fb0df6457f8c4..ac325f3f01d367730bd9f5b5b60333764ea25e51 100644 --- a/l10n/eo/user_ldap.po +++ b/l10n/eo/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Uzi TLS-on" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/es/core.po b/l10n/es/core.po index e3de803c85c975c497b9ca21e36544a909448c1d..4c2b388f90ad4d6942fc88c6615e6cc4247d4a2c 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -6,6 +6,7 @@ # Felix Liberio , 2013. # , 2012. # Javier Llorente , 2012. +# , 2013. # , 2011-2013. # , 2012. # oSiNaReF <>, 2012. @@ -15,13 +16,14 @@ # Rubén Trujillo , 2012. # , 2011-2012. # , 2012. +# Vladimir Martinez Sierra , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: juanman \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -62,8 +64,9 @@ msgid "No category to add?" msgstr "¿Ninguna categoría para añadir?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Esta categoría ya existe: " +#, php-format +msgid "This category already exists: %s" +msgstr "Esta categoria ya existe: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -167,59 +170,59 @@ msgstr "Noviembre" msgid "December" msgstr "Diciembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ajustes" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "hace segundos" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "hace 1 minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "hace {minutes} minutos" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Hace 1 hora" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Hace {hours} horas" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hoy" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ayer" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "hace {days} días" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "mes pasado" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Hace {months} meses" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "hace meses" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "año pasado" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "hace años" @@ -249,8 +252,8 @@ msgid "The object type is not specified." msgstr "El tipo de objeto no se ha especificado." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fallo" @@ -262,15 +265,15 @@ msgstr "El nombre de la app no se ha especificado." msgid "The required file {file} is not installed!" msgstr "El fichero {file} requerido, no está instalado." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Compartir" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Compartido" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Compartir" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Error compartiendo" @@ -366,23 +369,23 @@ msgstr "eliminar" msgid "share" msgstr "compartir" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protegido por contraseña" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Error al eliminar la fecha de caducidad" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Error estableciendo fecha de caducidad" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Enviando..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Correo electrónico enviado" @@ -397,7 +400,7 @@ msgstr "La actualización ha fracasado. Por favor, informe este problema a la documentation." +msgstr "Para información sobre cómo configurar adecuadamente su servidor, por favor vea la documentación." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crea una cuenta de administrador" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avanzado" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Directorio de almacenamiento" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurar la base de datos" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "se utilizarán" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Usuario de la base de datos" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Contraseña de la base de datos" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nombre de la base de datos" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Espacio de tablas de la base de datos" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Host de la base de datos" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Completar la instalación" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servicios web bajo tu control" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Salir" @@ -584,7 +591,7 @@ msgstr "Entrar" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Nombre de usuarios alternativos" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/es/files.po b/l10n/es/files.po index 6cb15f2931589cc66e0f68d44837715e4dc7c2c2..db0324697d140471ccbf715c1b1699be8215f748 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -7,8 +7,10 @@ # Agustin Ferrario , 2013. # , 2012. # Javier Llorente , 2012. +# , 2013. # , 2012-2013. # , 2013. +# Ricardo A. Hermosilla Carrillo , 2013. # Rubén Trujillo , 2012. # , 2011-2012. # , 2012. @@ -17,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2013-02-25 14:57+0000\n" +"Last-Translator: Ricardo Hermosilla \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,6 +29,20 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "No se puede mover %s - Ya existe un archivo con ese nombre" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "No se puede mover %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "No se puede renombrar el archivo" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Fallo no se subió el fichero" @@ -46,27 +62,27 @@ msgid "" "the HTML form" msgstr "El archivo que intentas subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "El archivo que intentas subir solo se subió parcialmente" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "No se ha subido ningún archivo" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Falta un directorio temporal" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "La escritura en disco ha fallado" -#: ajax/upload.php:52 -msgid "Not enough space available" +#: ajax/upload.php:51 +msgid "Not enough storage available" msgstr "No hay suficiente espacio disponible" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Directorio invalido." @@ -74,51 +90,52 @@ msgstr "Directorio invalido." msgid "Files" msgstr "Archivos" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Dejar de compartir" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Eliminar permanentemente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eliminar" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Renombrar" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendiente" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "reemplazado {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "deshacer" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "Eliminar" @@ -144,50 +161,46 @@ msgstr "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizado msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Su almacenamiento esta lleno en un ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Error al subir el archivo" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "cerrrar" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendiente" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "subiendo 1 archivo" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "Subiendo {count} archivos" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Subida cancelada." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud" @@ -272,8 +285,8 @@ msgid "From link" msgstr "Desde el enlace" #: templates/index.php:40 -msgid "Trash" -msgstr "Basura" +msgid "Deleted files" +msgstr "Archivos eliminados" #: templates/index.php:46 msgid "Cancel upload" @@ -287,6 +300,10 @@ msgstr "Aquí no hay nada. ¡Sube algo!" msgid "Download" msgstr "Descargar" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Dejar de compartir" + #: templates/index.php:105 msgid "Upload too large" msgstr "El archivo es demasiado grande" diff --git a/l10n/es/files_encryption.po b/l10n/es/files_encryption.po index b7d69adaf0207de57f4aae9cc2b00c7aa068d573..f4c68c14f4c90f4cb7598baa6b5431dfc640ada0 100644 --- a/l10n/es/files_encryption.po +++ b/l10n/es/files_encryption.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-05 23:10+0000\n" -"Last-Translator: msvladimir \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,28 +21,6 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Por favor, cambie su cliente de ownCloud y cambie su clave de cifrado para completar la conversión." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Cambiar a cifrado del lado del cliente" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Cambie la clave de cifrado para su contraseña de inicio de sesión" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Por favor revise su contraseña e intentelo de nuevo." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Cifrado" diff --git a/l10n/es/files_external.po b/l10n/es/files_external.po index 6d0ea098b1b5b7810ebc66c3532341a128f83ee7..b25998742c93e44b5b4446ecc77caea7ea798bab 100644 --- a/l10n/es/files_external.po +++ b/l10n/es/files_external.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:44+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Agustin Ferrario \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -45,13 +45,13 @@ msgstr "Por favor , proporcione un secreto y una contraseña válida de la app D msgid "Error configuring Google Drive storage" msgstr "Error configurando el almacenamiento de Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Advertencia: El cliente smb (smbclient) no se encuentra instalado. El montado de archivos o ficheros CIFS/SMB no es posible. Por favor pida al administrador de su sistema que lo instale." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -103,7 +103,7 @@ msgid "Users" msgstr "Usuarios" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Eliiminar" @@ -115,10 +115,10 @@ msgstr "Habilitar almacenamiento de usuario externo" msgid "Allow users to mount their own external storage" msgstr "Permitir a los usuarios montar su propio almacenamiento externo" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Raíz de certificados SSL " -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importar certificado raíz" diff --git a/l10n/es/files_trashbin.po b/l10n/es/files_trashbin.po index e0804a6ea50be0ce95a73e5e1125da3da7a2bc63..25c844232576f866e3beb3fd411f6b84d7ec6891 100644 --- a/l10n/es/files_trashbin.po +++ b/l10n/es/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "No se puede eliminar %s permanentemente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "No se puede restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "Restaurar" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Eliminar archivo permanentemente" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Eliminar permanentemente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nombre" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Eliminado" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 carpeta" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} carpetas" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 archivo" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} archivos" @@ -57,3 +71,7 @@ msgstr "Nada aqui. La papelera esta vacia!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Recuperar" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Eliminar" diff --git a/l10n/es/files_versions.po b/l10n/es/files_versions.po index 41ca2e67dad95be3051cb49025f51c8e7f9d6916..279601b80deebcd4f8e7db6a98915b284c696cfb 100644 --- a/l10n/es/files_versions.po +++ b/l10n/es/files_versions.po @@ -7,13 +7,14 @@ # , 2012. # Rubén Trujillo , 2012. # , 2012. +# Vladimir Martinez Sierra , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 00:40+0000\n" +"Last-Translator: msvladimir \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,10 +22,45 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "No se puede revertir: %s" + +#: history.php:40 +msgid "success" +msgstr "exitoso" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "El archivo %s fue revertido a la version %s" + +#: history.php:49 +msgid "failure" +msgstr "fallo" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "El archivo %s no puede ser revertido a la version %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "No hay versiones antiguas disponibles" + +#: history.php:73 +msgid "No path specified" +msgstr "Ruta no especificada" + #: js/versions.js:16 msgid "History" msgstr "Historial" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Revertir un archivo a una versión anterior haciendo clic en el boton de revertir" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionado de archivos" diff --git a/l10n/es/lib.po b/l10n/es/lib.po index 38c6ee28554826597d9f614fe53b7ed9fd9abc72..1ac3d80f8e1eeb5092c3d0331fbe2dd0bc86a5a4 100644 --- a/l10n/es/lib.po +++ b/l10n/es/lib.po @@ -4,17 +4,19 @@ # # Translators: # Agustin Ferrario , 2013. +# , 2013. # , 2012. # Raul Fernandez Garcia , 2012. +# Ricardo A. Hermosilla Carrillo , 2013. # Rubén Trujillo , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-21 00:04+0100\n" -"PO-Revision-Date: 2013-01-20 02:14+0000\n" -"Last-Translator: Agustin Ferrario \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,47 +24,47 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ayuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ajustes" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usuarios" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicaciones" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administración" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "La descarga en ZIP está desactivada." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Los archivos deben ser descargados uno por uno." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Volver a Archivos" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "no pudo ser determinado" @@ -90,6 +92,108 @@ msgstr "Texto" msgid "Images" msgstr "Imágenes" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Configurar un nombre de usuario del administrador" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Configurar la contraseña del administrador." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especificar la carpeta de datos." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s ingresar el usuario de la base de datos." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s ingresar el nombre de la base de datos" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s no se puede utilizar puntos en el nombre de la base de datos" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s ingresar el host de la base de datos." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Usuario y/o contraseña de PostgreSQL no válidos" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Tiene que ingresar una cuenta existente o la del administrador." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Usuario y/o contraseña de Oracle no válidos" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Usuario y/o contraseña de MySQL no válidos" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Error BD: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Comando infractor: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Usuario MySQL '%s'@'localhost' ya existe." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Eliminar este usuario de MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Usuario MySQL '%s'@'%%' ya existe" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Eliminar este usuario de MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Comando infractor: \"%s\", nombre: %s, contraseña: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Su servidor web aún no está configurado adecuadamente para permitir sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, vuelva a comprobar las guías de instalación." + #: template.php:113 msgid "seconds ago" msgstr "hace segundos" @@ -142,16 +246,16 @@ msgstr "este año" msgid "years ago" msgstr "hace años" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s está disponible. Obtén más información" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "actualizado" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "comprobar actualizaciones está desactivado" diff --git a/l10n/es/settings.po b/l10n/es/settings.po index 6c498f9b5f844566d5afa5c1825d9248d2fe0d3f..ca38b4d89495d3f17377014010ffabe978ee7e27 100644 --- a/l10n/es/settings.po +++ b/l10n/es/settings.po @@ -4,13 +4,16 @@ # # Translators: # Art O. Pal , 2012. +# Daniel Manterola , 2013. # , 2012. # Javier Llorente , 2012. # , 2011-2012. # , 2011. # oSiNaReF <>, 2012. +# , 2013. # , 2012. # Raul Fernandez Garcia , 2012. +# Ricardo A. Hermosilla Carrillo , 2013. # , 2012. # , 2011. # Rubén Trujillo , 2012. @@ -20,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -34,14 +37,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Imposible cargar la lista desde el App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Error de autenticación" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Incapaz de cambiar el nombre" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -83,17 +86,17 @@ msgstr "Solicitud no válida" msgid "Admins can't remove themself from the admin group" msgstr "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Imposible añadir el usuario al grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Imposible eliminar al usuario del grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "No se puedo actualizar la aplicacion." @@ -129,59 +132,265 @@ msgstr "Error" msgid "Updated" msgstr "Actualizado" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Guardando..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "borrado" + +#: js/users.js:30 +msgid "undo" +msgstr "deshacer" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "No se puede quitar el usuario" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupo admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Eliminar" + +#: js/users.js:191 +msgid "add group" +msgstr "Añadir Grupo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Se debe usar un nombre de usuario valido" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Error al crear usuario" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Se debe usar una contraseña valida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Castellano" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Advertencia de seguridad" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Su directorio de datos y sus archivos son probablemente accesibles desde internet. El archivo .htaccess que ownCloud provee no está funcionando. Sugerimos fuertemente que configure su servidor web de manera que el directorio de datos ya no esté accesible o mueva el directorio de datos fuera del documento raíz de su servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Advertencia de Configuración" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Su servidor web aún no está configurado adecuadamente para permitir sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, vuelva a comprobar las guías de instalación." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Modulo 'fileinfo' perdido" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "El modulo PHP 'fileinfo' no se encuentra. Sugerimos habilitar este modulo para tener mejorres resultados con la detección mime-type" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Configuración regional no está funcionando" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "La conexion a internet no esta funcionando" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Este servidor ownCloud no tiene conexion de internet. Esto quiere decir que algunas caracteristicas como montar almacenamiento externo, notificaciones sobre actualizaciones o la instalacion de apps de terceros no funcionaran. Es posible que no pueda acceder remotamente a los archivos ni enviar notificaciones por correo. Sugerimos habilitar la conexión a internet para este servidor si quiere tener todas las caracteristicas de ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Ejecutar una tarea con cada página cargada" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php es un sistema webcron registrado. Llame a la página cron.php en la raíz de owncloud una vez por minuto sobre http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Utilizar el servicio con del sistema. Llame al archivo cron.php en la carpeta de owncloud vía un sistema conjob una vez por minuto." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Compartiendo" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Activar API de Compartición" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permitir a las aplicaciones a que usen la API de Compartición" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permitir enlaces" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permitir a los usuarios compartir elementos al público con enlaces" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permitir re-compartición" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permitir a los usuarios compartir elementos ya compartidos con ellos mismos" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permitir a los usuarios compartir con todos" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permitir a los usuarios compartir sólo con los usuarios en sus grupos" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Seguridad" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forzar HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Forzar la conexión de los clientes a ownCloud con una conexión encriptada." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Por favor, conecte esta instancia de ownCloud vía HTTPS para activar o desactivar la aplicación SSL" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Historial" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nivel de Historial" + +#: templates/admin.php:223 +msgid "More" +msgstr "Más" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desarrollado por la comunidad ownCloud, el código fuente está bajo licencia AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Añade tu aplicación" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Más aplicaciones" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Seleccionar una aplicación" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Echa un vistazo a la web de aplicaciones apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenciado por " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualizar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentación del usuario" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentación del adminsitrador" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentación en linea" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Foro" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Rastreador de Bugs" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Soporte Comercial" @@ -190,116 +399,86 @@ msgstr "Soporte Comercial" msgid "You have used %s of the available %s" msgstr "Ha usado %s de %s disponibles" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Descargar clientes de escritorio" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Descargar cliente para android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Descargar cliente para iOS" +msgid "Get the apps to sync your files" +msgstr "Obtener las apps para sincronizar sus archivos" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Mostrar asistente para iniciar otra vez" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Contraseña" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Su contraseña ha sido cambiada" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "No se ha podido cambiar tu contraseña" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Contraseña actual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nueva contraseña:" -#: templates/personal.php:28 -msgid "show" -msgstr "mostrar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Cambiar contraseña" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nombre a mostrar" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Su nombre fue cambiado" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Incapaz de cambiar su nombre" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Cambiar nombre" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Correo electrónico" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Tu dirección de correo" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Escribe una dirección de correo electrónico para restablecer la contraseña" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ayúdanos a traducir" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Use esta dirección para conectarse a su cuenta de ownCloud en el administrador de archivos" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desarrollado por la comunidad ownCloud, el código fuente está bajo licencia AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nombre de usuario" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupos" - #: templates/users.php:32 msgid "Create" msgstr "Crear" @@ -308,34 +487,26 @@ msgstr "Crear" msgid "Default Storage" msgstr "Almacenamiento Predeterminado" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ilimitado" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Otro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupo admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Alamacenamiento" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "Cambiar nombre a mostrar" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "Configurar nueva contraseña" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Predeterminado" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Eliminar" diff --git a/l10n/es/user_ldap.po b/l10n/es/user_ldap.po index 24933229447ac6448376543722f8335c6418c718..139d0cb69b8ea8dd3ef1be1e0b915d941f033513 100644 --- a/l10n/es/user_ldap.po +++ b/l10n/es/user_ldap.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-05 23:10+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 00:30+0000\n" "Last-Translator: msvladimir \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -221,8 +221,8 @@ msgid "Use TLS" msgstr "Usar TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "No usarlo para SSL, habrá error." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "No usar adicionalmente para conecciones LDAPS, estas fallaran" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po index 2fab6ec64a44bd48c1875d426a58b7243c9c5fcd..7a12fa0ee597f7ece6bdc8b03a8a4fa06c284be1 100644 --- a/l10n/es_AR/core.po +++ b/l10n/es_AR/core.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "¿Ninguna categoría para añadir?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Esta categoría ya existe: " +#, php-format +msgid "This category already exists: %s" +msgstr "Esta categoría ya existe: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "Noviembre" msgid "December" msgstr "Diciembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ajustes" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "hace 1 minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "hace {minutes} minutos" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Hace 1 hora" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} horas atrás" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hoy" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ayer" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "hace {days} días" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "el mes pasado" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} meses atrás" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "meses atrás" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "el año pasado" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "años atrás" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "El tipo de objeto no esta especificado. " #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Error" @@ -253,15 +254,15 @@ msgstr "El nombre de la aplicación no esta especificado." msgid "The required file {file} is not installed!" msgstr "¡El archivo requerido {file} no está instalado!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Compartir" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Compartido" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Compartir" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Error al compartir" @@ -357,23 +358,23 @@ msgstr "borrar" msgid "share" msgstr "compartir" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protegido por contraseña" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Error al remover la fecha de caducidad" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Error al asignar fecha de vencimiento" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Enviando..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Email enviado" @@ -388,7 +389,7 @@ msgstr "La actualización no pudo ser completada. Por favor, reportá el inconve msgid "The update was successful. Redirecting you to ownCloud now." msgstr "La actualización fue exitosa. Estás siendo redirigido a ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Restablecer contraseña de ownCloud" @@ -469,7 +470,7 @@ msgstr "Editar categorías" msgid "Add" msgstr "Agregar" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Advertencia de seguridad" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "No hay disponible ningún generador de números aleatorios seguro. Por favor habilitá la extensión OpenSSL de PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Sin un generador de números aleatorios seguro un atacante podría predecir los tokens de reinicio de tu contraseña y tomar control de tu cuenta." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Tu directorio de datos y tus archivos probablemente son accesibles a través de internet, ya que el archivo .htaccess no está funcionando." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess provisto por ownCloud no está funcionando. Te sugerimos que configures tu servidor web de manera que el directorio de datos ya no esté accesible, o que muevas el directorio de datos afuera del directorio raíz de tu servidor web." +"For information how to properly configure your server, please see the documentation." +msgstr "Para información sobre cómo configurar adecuadamente tu servidor, por favor mirá la documentación." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crear una cuenta de administrador" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avanzado" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Directorio de almacenamiento" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurar la base de datos" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "se utilizarán" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Usuario de la base de datos" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Contraseña de la base de datos" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nombre de la base de datos" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Espacio de tablas de la base de datos" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Host de la base de datos" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Completar la instalación" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servicios web sobre los que tenés control" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Cerrar la sesión" @@ -575,7 +580,7 @@ msgstr "Entrar" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Nombre alternativos de usuarios" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po index 73b58d8834c85f1876d0535510823ca1f1b9f81c..4cd4573e1e086ac3a8bcc3549e79dde0cb439adc 100644 --- a/l10n/es_AR/files.po +++ b/l10n/es_AR/files.po @@ -6,13 +6,14 @@ # Agustin Ferrario , 2012-2013. # CJTess , 2013. # , 2012-2013. +# Javier Victor Mariano Bruno , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: Javier Victor Mariano Bruno \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +21,20 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "No se pudo mover %s - Un archivo con este nombre ya existe" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "No se pudo mover %s " + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "No fue posible cambiar el nombre al archivo" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "El archivo no fue subido. Error desconocido" @@ -56,8 +71,8 @@ msgid "Failed to write to disk" msgstr "Error al escribir en el disco" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "No hay suficiente espacio disponible" +msgid "Not enough storage available" +msgstr "No hay suficiente capacidad de almacenamiento" #: ajax/upload.php:83 msgid "Invalid directory." @@ -67,51 +82,52 @@ msgstr "Directorio invalido." msgid "Files" msgstr "Archivos" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Dejar de compartir" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Borrar de manera permanente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Borrar" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Cambiar nombre" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendiente" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "reemplazado {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "deshacer" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "Eliminar" @@ -137,78 +153,74 @@ msgstr "El almacenamiento está lleno, los archivos no se pueden seguir actualiz msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "El almacenamiento está casi lleno ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Error al subir el archivo" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Cerrar" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendiente" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "Subiendo 1 archivo" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "Subiendo {count} archivos" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "La subida fue cancelada" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nombre de carpeta inválido. El uso de 'Shared' está reservado por ownCloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nombre" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaño" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 directorio" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} directorios" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 archivo" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} archivos" @@ -265,8 +277,8 @@ msgid "From link" msgstr "Desde enlace" #: templates/index.php:40 -msgid "Trash" -msgstr "Papelera" +msgid "Deleted files" +msgstr "Archivos Borrados" #: templates/index.php:46 msgid "Cancel upload" @@ -280,6 +292,10 @@ msgstr "No hay nada. ¡Subí contenido!" msgid "Download" msgstr "Descargar" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Dejar de compartir" + #: templates/index.php:105 msgid "Upload too large" msgstr "El archivo es demasiado grande" diff --git a/l10n/es_AR/files_encryption.po b/l10n/es_AR/files_encryption.po index 0e80127a880150510b9e0b58d045691651c7139c..be26d5b095f5445f8de2e27d9d62bd4567540af0 100644 --- a/l10n/es_AR/files_encryption.po +++ b/l10n/es_AR/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 00:20+0100\n" +"PO-Revision-Date: 2013-02-11 16:00+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,21 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Por favor, cambiá uu cliente de ownCloud y cambiá tu clave de encriptado para completar la conversión." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Cambiado a encriptación por parte del cliente" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Cambiá la clave de encriptado para tu contraseña de inicio de sesión" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Por favor, revisá tu contraseña e intentalo de nuevo." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Encriptación" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "La encriptación de archivos no está habilitada" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Los siguientes tipos de archivos no serán encriptados" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Excluir los siguientes tipos de archivos de encriptación:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/es_AR/files_external.po b/l10n/es_AR/files_external.po index 591c481a64819f78977758c199a18df643f66e43..d26da0e0826f2ce5088002bbcc575d3ceb87552f 100644 --- a/l10n/es_AR/files_external.po +++ b/l10n/es_AR/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:47+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Agustin Ferrario \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Por favor, proporcioná un secreto y una contraseña válida para la apl msgid "Error configuring Google Drive storage" msgstr "Error al configurar el almacenamiento de Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Advertencia: El cliente smb (smbclient) no se encuentra instalado. El montado de archivos o ficheros CIFS/SMB no es posible. Por favor pida al administrador de su sistema que lo instale." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Usuarios" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Borrar" @@ -113,10 +113,10 @@ msgstr "Habilitar almacenamiento de usuario externo" msgid "Allow users to mount their own external storage" msgstr "Permitir a los usuarios montar su propio almacenamiento externo" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "certificados SSL raíz" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importar certificado raíz" diff --git a/l10n/es_AR/files_trashbin.po b/l10n/es_AR/files_trashbin.po index 2048ce0e543905d82f8345d52d7f8a4f4b1e8596..a539d4424ec9dfe2cd334d22a270143440f459b5 100644 --- a/l10n/es_AR/files_trashbin.po +++ b/l10n/es_AR/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# CJTess , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "No fue posible borrar %s de manera permanente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "No se pudo restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "Restaurar" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Borrar archivo de manera permanente" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Borrar de manera permanente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nombre" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Borrado" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 directorio" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} directorios" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 archivo" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} archivos" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "No hay nada acá. ¡La papelera está vacía!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Recuperar" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Borrar" diff --git a/l10n/es_AR/files_versions.po b/l10n/es_AR/files_versions.po index 6ab1eed54d33eebfe2d256c491ad934fde971480..849cd6a3ecad569c50580c66ffb88957f196fb2d 100644 --- a/l10n/es_AR/files_versions.po +++ b/l10n/es_AR/files_versions.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# CJTess , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 00:20+0100\n" +"PO-Revision-Date: 2013-02-11 15:50+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "No se pudo revertir: %s " + +#: history.php:40 +msgid "success" +msgstr "Éxito" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "El archivo %s fue revertido a la versión %s" + +#: history.php:49 +msgid "failure" +msgstr "error" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "El archivo %s no pudo ser revertido a la versión %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "No hay versiones antiguas disponibles" + +#: history.php:73 +msgid "No path specified" +msgstr "Ruta de acceso no especificada" + #: js/versions.js:16 msgid "History" msgstr "Historia" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Revertí un archivo a una versión anterior haciendo click en su botón de \"revertir\"" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionado de archivos" diff --git a/l10n/es_AR/lib.po b/l10n/es_AR/lib.po index 0b6fd72855b184ecc55e129cb2ec507a28da96a8..2e3420c72a0d9c0c1f128d1e45fa00042a123c32 100644 --- a/l10n/es_AR/lib.po +++ b/l10n/es_AR/lib.po @@ -4,14 +4,16 @@ # # Translators: # Agustin Ferrario , 2013. +# CJTess , 2013. # , 2012. +# Javier Victor Mariano Bruno , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-21 00:04+0100\n" -"PO-Revision-Date: 2013-01-20 03:00+0000\n" -"Last-Translator: Agustin Ferrario \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +21,47 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ayuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ajustes" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usuarios" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicaciones" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administración" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "La descarga en ZIP está desactivada." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Los archivos deben ser descargados de a uno." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Volver a archivos" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "no pudo ser determinado" @@ -87,6 +89,108 @@ msgstr "Texto" msgid "Images" msgstr "Imágenes" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Configurar un nombre de administrador" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Configurar una palabra clave de administrador" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especificar un directorio de datos" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s Entre el Usuario de la Base de Datos" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s Entre el Nombre de la Base de Datos" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s no puede usar puntos en el nombre de la Base de Datos" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s Especifique la dirección de la Base de Datos" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nombre de usuario o contraseña de PostgradeSQL no válido." + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Debe ingresar una cuenta existente o el administrador" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "El nombre de usuario y contraseña no son válidos" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Usuario y/o contraseña MySQL no válido" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Error DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "El comando no comprendido es: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Usuario MySQL '%s'@'localhost' ya existente" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Borrar este usuario de MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Usuario MySQL '%s'@'%%' ya existente" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Borrar este usuario de MySQL" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\"" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, comprobá nuevamente la guía de instalación." + #: template.php:113 msgid "seconds ago" msgstr "hace unos segundos" @@ -139,16 +243,16 @@ msgstr "este año" msgid "years ago" msgstr "hace años" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s está disponible. Conseguí más información" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "actualizado" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "comprobar actualizaciones está desactivado" diff --git a/l10n/es_AR/settings.po b/l10n/es_AR/settings.po index a9d2e183b6e3fdf3f31220e869d5823918a0f91a..253f1f7fc3fa425104c21a77499a682c0ceb9af6 100644 --- a/l10n/es_AR/settings.po +++ b/l10n/es_AR/settings.po @@ -6,12 +6,13 @@ # Agustin Ferrario , 2012. # CJTess , 2013. # , 2012. +# Javier Victor Mariano Bruno , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -24,14 +25,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Imposible cargar la lista desde el App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Error al autenticar" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "No fue posible cambiar el nombre mostrado" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,23 +74,23 @@ msgstr "Solicitud no válida" msgid "Admins can't remove themself from the admin group" msgstr "Los administradores no se pueden quitar a ellos mismos del grupo administrador. " -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "No fue posible añadir el usuario al grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "No es posible eliminar al usuario del grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "No se pudo actualizar la aplicación." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Actualizado a {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -101,15 +102,15 @@ msgstr "Activar" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Por favor, esperá...." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Actualizando...." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Error al actualizar" #: js/apps.js:87 msgid "Error" @@ -117,61 +118,267 @@ msgstr "Error" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Actualizado" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Guardando..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "borrado" + +#: js/users.js:30 +msgid "undo" +msgstr "deshacer" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Imposible remover usuario" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupo Administrador" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Borrar" + +#: js/users.js:191 +msgid "add group" +msgstr "Agregar grupo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Debe ingresar un nombre de usuario válido" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Error creando usuario" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Debe ingresar una contraseña válida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Castellano (Argentina)" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Advertencia de seguridad" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess provisto por ownCloud no está funcionando. Te sugerimos que configures tu servidor web de manera que el directorio de datos ya no esté accesible, o que muevas el directorio de datos afuera del directorio raíz de tu servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Alerta de Configuración" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, comprobá nuevamente la guía de instalación." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Modulo 'fileinfo' no existe" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "El modulo PHP 'fileinfo' no existe. Es muy recomendable que active este modulo para obtener mejores resultados con la detección mime-type" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "\"Locale\" no está funcionando" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "La conexión a Internet no esta funcionando. " + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Este servidor ownCloud no tiene una conexión a internet que funcione. Esto significa que alguno de sus servicios como montar dispositivos externos, notificaciones de actualizaciones o instalar aplicaciones de otros desarrolladores no funcionan. Acceder a archivos remotos y mandar e-mails puede ser que tampoco funcione. Te sugerimos que actives una conexión a internet si querés estas características de ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Ejecute una tarea con cada pagina cargada." + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php está registrado como un servicio webcron. Llamar la página cron.php en la raíz de ownCloud una vez al minuto sobre http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Usa el servicio de sistema cron. Llama al archivo cron.php en la carpeta de ownCloud a través del sistema cronjob cada un minuto." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Compartiendo" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Habilitar Share API" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permitir a las aplicaciones usar la Share API" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permitir enlaces" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permitir a los usuarios compartir enlaces públicos" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permitir Re-Compartir" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permite a los usuarios volver a compartir items que le han compartido" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permitir a los usuarios compartir con todos." + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permitir a los usuarios compartir solo con los de su propio grupo" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Seguridad" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forzar HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Forzar a los clientes conectar a ownCloud vía conexión encriptada" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Por favor conectese a este ownCloud vía HTTPS para habilitar o des-habilitar el forzado de SSL" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nivel de Log" + +#: templates/admin.php:223 +msgid "More" +msgstr "Más" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versión" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desarrollado por la comunidad ownCloud, el código fuente está bajo licencia AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Añadí tu aplicación" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Más aplicaciones" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Seleccionar una aplicación" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Mirá la web de aplicaciones apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenciado por " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualizar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentación de Usuario" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentación de Administrador" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentación en línea" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Foro" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Informar errores" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Soporte comercial" @@ -180,116 +387,86 @@ msgstr "Soporte comercial" msgid "You have used %s of the available %s" msgstr "Usaste %s de los %s disponibles" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Descargar clientes de escritorio" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Descargar cliente de Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Descargar cliente de iOS" +msgid "Get the apps to sync your files" +msgstr "Obtené aplicaciones para sincronizar tus archivos" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Mostrar de nuevo el asistente de primera ejecución" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Contraseña" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Tu contraseña fue cambiada" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "No fue posible cambiar tu contraseña" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Contraseña actual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nueva contraseña:" -#: templates/personal.php:28 -msgid "show" -msgstr "mostrar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Cambiar contraseña" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nombre a mostrar" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "El nombre mostrado fue cambiado" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "No fue posible cambiar tu nombre" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Cambiar nombre" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Correo electrónico" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Tu dirección de e-mail" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Escribí una dirección de correo electrónico para restablecer la contraseña" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ayudanos a traducir" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Utiliza esta dirección para conectarte con ownCloud en tu Administrador de Archivos" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versión" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desarrollado por la comunidad ownCloud, el código fuente está bajo licencia AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nombre de " -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupos" - #: templates/users.php:32 msgid "Create" msgstr "Crear" @@ -298,34 +475,26 @@ msgstr "Crear" msgid "Default Storage" msgstr "Almacenamiento Predeterminado" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ilimitado" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Otro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupo Administrador" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Almacenamiento" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "Cambiar el nombre que se muestra" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "Configurar nueva contraseña" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Predeterminado" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Borrar" diff --git a/l10n/es_AR/user_ldap.po b/l10n/es_AR/user_ldap.po index a6d3d071a6816ad7a29edb5ccc4da5d1fa51b7a0..83007895a3fb4388cfca657640e4d6548d50b902 100644 --- a/l10n/es_AR/user_ldap.po +++ b/l10n/es_AR/user_ldap.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 17:20+0000\n" -"Last-Translator: Agustin Ferrario \n" +"POT-Creation-Date: 2013-02-12 00:20+0100\n" +"PO-Revision-Date: 2013-02-11 16:10+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,13 +32,13 @@ msgstr "La configuración es valida y la conexión pudo ser establecida." msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "La configuración es válida, pero el enlace falló. Por favor, comprobá la configuración del servidor y las credenciales." #: ajax/testConfiguration.php:40 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "La configuración no es válida. Por favor, buscá en el log de ownCloud más detalles." #: js/settings.js:66 msgid "Deletion failed" @@ -46,7 +46,7 @@ msgstr "Error al borrar" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Tomar los valores de la anterior configuración de servidor?" #: js/settings.js:83 msgid "Keep settings?" @@ -183,7 +183,7 @@ msgstr "Configuración activa" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Si no está seleccionada, esta configuración será omitida." #: templates/settings.php:34 msgid "Port" @@ -191,17 +191,17 @@ msgstr "Puerto" #: templates/settings.php:35 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Host para copia de seguridad (réplica)" #: templates/settings.php:35 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP/AD." #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Puerto para copia de seguridad (réplica)" #: templates/settings.php:37 msgid "Disable Main Server" @@ -209,15 +209,15 @@ msgstr "Deshabilitar el Servidor Principal" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Al comenzar, ownCloud se conectará únicamente al servidor réplica" #: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "No usarlo para SSL, dará error." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "No usar adicionalmente para conexiones LDAPS, las mismas fallarán" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -263,11 +263,11 @@ msgstr "Una DN base de usuario por línea" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "Atributos de la búsqueda de usuario" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Opcional; un atributo por linea" #: templates/settings.php:48 msgid "Group Display Name Field" @@ -287,7 +287,7 @@ msgstr "Una DN base de grupo por línea" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "Atributos de búsqueda de grupo" #: templates/settings.php:51 msgid "Group-Member association" diff --git a/l10n/et_EE/core.po b/l10n/et_EE/core.po index 6f5386d3a7312498051191a404030197c2433a53..c861828727684ffab1a738769abc95e5c994c59e 100644 --- a/l10n/et_EE/core.po +++ b/l10n/et_EE/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -51,8 +51,9 @@ msgid "No category to add?" msgstr "Pole kategooriat, mida lisada?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "See kategooria on juba olemas: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -156,59 +157,59 @@ msgstr "November" msgid "December" msgstr "Detsember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Seaded" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekundit tagasi" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minut tagasi" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minutit tagasi" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" -msgstr "" +msgstr "1 tund tagasi" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "täna" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "eile" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} päeva tagasi" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "viimasel kuul" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "kuu tagasi" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "viimasel aastal" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "aastat tagasi" @@ -238,8 +239,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Viga" @@ -251,15 +252,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Jaga" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Jaga" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Viga jagamisel" @@ -355,23 +356,23 @@ msgstr "kustuta" msgid "share" msgstr "jaga" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Parooliga kaitstud" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Viga aegumise kuupäeva eemaldamisel" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Viga aegumise kuupäeva määramisel" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -386,7 +387,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud parooli taastamine" @@ -467,7 +468,7 @@ msgstr "Muuda kategooriaid" msgid "Add" msgstr "Lisa" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Turvahoiatus" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Loo admini konto" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Lisavalikud" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Andmete kaust" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Seadista andmebaasi" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "kasutatakse" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Andmebaasi kasutaja" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Andmebaasi parool" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Andmebasi nimi" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Andmebaasi tabeliruum" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Andmebaasi host" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Lõpeta seadistamine" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "veebiteenused sinu kontrolli all" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Logi välja" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index b3de1b124e9f4805310d67a83350b540924dc444..b859ff99da348b0a76d6654273661fee32036eef 100644 --- a/l10n/et_EE/files.po +++ b/l10n/et_EE/files.po @@ -4,13 +4,13 @@ # # Translators: # , 2012. -# Rivo Zängov , 2011-2012. +# Rivo Zängov , 2011-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s liigutamine ebaõnnestus" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Faili ümbernimetamine ebaõnnestus" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ühtegi faili ei laetud üles. Tundmatu viga" @@ -55,72 +69,73 @@ msgid "Failed to write to disk" msgstr "Kettale kirjutamine ebaõnnestus" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "" +msgid "Not enough storage available" +msgstr "Saadaval pole piisavalt ruumi" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Vigane kaust." #: appinfo/app.php:10 msgid "Files" msgstr "Failid" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Lõpeta jagamine" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Kustuta jäädavalt" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Kustuta" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "ümber" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ootel" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} on juba olemas" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "asenda" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "soovita nime" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "loobu" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "asendatud nimega {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "tagasi" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "asendas nime {old_name} nimega {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' on vigane failinimi." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "Faili nimi ei saa olla tühi." #: js/files.js:64 msgid "" @@ -136,78 +151,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Üleslaadimise viga" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Sulge" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ootel" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 faili üleslaadimisel" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} faili üleslaadimist" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Üleslaadimine tühistati." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL ei saa olla tühi." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nimi" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Suurus" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Muudetud" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 kaust" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} kausta" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fail" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} faili" @@ -264,7 +275,7 @@ msgid "From link" msgstr "Allikast" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -279,6 +290,10 @@ msgstr "Siin pole midagi. Lae midagi üles!" msgid "Download" msgstr "Lae alla" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Lõpeta jagamine" + #: templates/index.php:105 msgid "Upload too large" msgstr "Üleslaadimine on liiga suur" diff --git a/l10n/et_EE/files_encryption.po b/l10n/et_EE/files_encryption.po index c7abb91cb730766103137023c5c73de669d74cb0..c2fe900d3ac6bf9eb3b9d8b078be582246065a9a 100644 --- a/l10n/et_EE/files_encryption.po +++ b/l10n/et_EE/files_encryption.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Rivo Zängov , 2012. +# Rivo Zängov , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-13 00:03+0100\n" +"PO-Revision-Date: 2013-02-12 18:01+0000\n" +"Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +18,21 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Krüpteerimine" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Faili krüpteerimine on sisse lülitatud." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Järgnevaid failitüüpe ei krüpteerita:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Järgnevaid failitüüpe ei krüpteerita:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/et_EE/files_external.po b/l10n/et_EE/files_external.po index c290d3f9140608aef12412a8841a7d5ebdbd2ec5..22525aeb4d95aff07933a265bfcadd06e28f7237 100644 --- a/l10n/et_EE/files_external.po +++ b/l10n/et_EE/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna." msgid "Error configuring Google Drive storage" msgstr "Viga Google Drive'i salvestusruumi seadistamisel" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "Kasutajad" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Kustuta" @@ -112,10 +112,10 @@ msgstr "Luba kasutajatele väline salvestamine" msgid "Allow users to mount their own external storage" msgstr "Luba kasutajatel ühendada külge nende enda välised salvestusseadmed" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL root sertifikaadid" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Impordi root sertifikaadid" diff --git a/l10n/et_EE/files_trashbin.po b/l10n/et_EE/files_trashbin.po index 23d134dba98ec274c7edad0e04283e84b8cda08a..77281fb6fd6b17fb66f7b8336fc9950ca1bf437c 100644 --- a/l10n/et_EE/files_trashbin.po +++ b/l10n/et_EE/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Rivo Zängov , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "%s jäädavalt kustutamine ebaõnnestus" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "%s ei saa taastada" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "soorita taastamine" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "kustuta fail jäädavalt" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Kustuta jäädavalt" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nimi" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Kustutatud" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 kaust" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} kausta" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fail" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} faili" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Siin pole midagi. Sinu prügikast on tühi!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Taasta" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Kustuta" diff --git a/l10n/et_EE/files_versions.po b/l10n/et_EE/files_versions.po index a0309a22fc6dfedbbe3735415c1fca60b450ad0d..7ea31ed36145e8636087ec2ab83f76d8ef2fde78 100644 --- a/l10n/et_EE/files_versions.po +++ b/l10n/et_EE/files_versions.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Rivo Zängov , 2012. +# Rivo Zängov , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-13 00:03+0100\n" +"PO-Revision-Date: 2013-02-12 18:01+0000\n" +"Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "korras" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "ebaõnnestus" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "Vanu versioone pole saadaval" + +#: history.php:73 +msgid "No path specified" +msgstr "Asukohta pole määratud" + #: js/versions.js:16 msgid "History" msgstr "Ajalugu" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Failide versioonihaldus" diff --git a/l10n/et_EE/lib.po b/l10n/et_EE/lib.po index a137f08e4a3d56e3610c21b31a8c0f7d0022a738..7b1df98a802304f6eb9daee3be77ccf8c84bbbe0 100644 --- a/l10n/et_EE/lib.po +++ b/l10n/et_EE/lib.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Rivo Zängov , 2012. +# Rivo Zängov , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Abiinfo" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Isiklik" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Seaded" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Kasutajad" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Rakendused" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP-ina allalaadimine on välja lülitatud." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Failid tuleb alla laadida ükshaaval." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Tagasi failide juurde" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Valitud failid on ZIP-faili loomiseks liiga suured." @@ -86,6 +86,108 @@ msgstr "Tekst" msgid "Images" msgstr "Pildid" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Määra admin kasutajanimi." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Määra admini parool." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Määra andmete kaust." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Andmebaasi viga: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Kustuta see kasutaja MySQL-ist" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Kustuta see kasutaja MySQL-ist." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "sekundit tagasi" @@ -101,12 +203,12 @@ msgstr "%d minutit tagasi" #: template.php:116 msgid "1 hour ago" -msgstr "" +msgstr "1 tund tagasi" #: template.php:117 #, php-format msgid "%d hours ago" -msgstr "" +msgstr "%d tundi tagasi" #: template.php:118 msgid "today" @@ -128,7 +230,7 @@ msgstr "eelmisel kuul" #: template.php:122 #, php-format msgid "%d months ago" -msgstr "" +msgstr "%d kuud tagasi" #: template.php:123 msgid "last year" @@ -138,16 +240,16 @@ msgstr "eelmisel aastal" msgid "years ago" msgstr "aastat tagasi" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s on saadaval. Vaata lisainfot" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ajakohane" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "uuenduste kontrollimine on välja lülitatud" diff --git a/l10n/et_EE/settings.po b/l10n/et_EE/settings.po index bd9993e5ebcc824ffeeb62ad7a1f32cdbdb97d9f..a1c6aebc2d6765e27b39b7d9dde77918b59961e8 100644 --- a/l10n/et_EE/settings.po +++ b/l10n/et_EE/settings.po @@ -4,13 +4,13 @@ # # Translators: # , 2012. -# Rivo Zängov , 2011-2012. +# Rivo Zängov , 2011-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "App Sotre'i nimekirja laadimine ebaõnnestus" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentimise viga" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,23 +72,23 @@ msgstr "Vigane päring" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Kasutajat ei saa lisada gruppi %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Kasutajat ei saa eemaldada grupist %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Rakenduse uuendamine ebaõnnestus." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Uuenda versioonile {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -100,15 +100,15 @@ msgstr "Lülita sisse" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Palun oota..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Uuendamine..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Viga rakenduse uuendamisel" #: js/apps.js:87 msgid "Error" @@ -116,178 +116,354 @@ msgstr "Viga" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Uuendatud" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Salvestamine..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "kustutatud" + +#: js/users.js:30 +msgid "undo" +msgstr "tagasi" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupid" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupi admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Kustuta" + +#: js/users.js:191 +msgid "add group" +msgstr "lisa grupp" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Viga kasutaja loomisel" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Eesti" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Turvahoiatus" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Jagamine" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Turvalisus" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Sunni peale HTTPS-i kasutamine" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Logi" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Logi tase" + +#: templates/admin.php:223 +msgid "More" +msgstr "Rohkem" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versioon" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Lisa oma rakendus" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Veel rakendusi" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Vali programm" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Vaata rakenduste lehte aadressil apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-litsenseeritud " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Uuenda" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" -msgstr "" +msgstr "Kasutaja dokumentatsioon" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" -msgstr "" +msgstr "Administraatori dokumentatsioon" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" -msgstr "" +msgstr "Online dokumentatsioon" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" -msgstr "" +msgstr "Foorum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" -msgstr "" +msgstr "Vigade nimekiri" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" -msgstr "" +msgstr "Tasuine kasutajatugi" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Kliendid" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Parool" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Sinu parooli on muudetud" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Sa ei saa oma parooli muuta" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Praegune parool" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Uus parool" -#: templates/personal.php:28 -msgid "show" -msgstr "näita" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Muuda parooli" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Näidatav nimi" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Muuda näidatavat nime" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-post" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Sinu e-posti aadress" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Parooli taastamise sisse lülitamiseks sisesta e-posti aadress" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Keel" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Aita tõlkida" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupid" +msgstr "Kasutajanimi" #: templates/users.php:32 msgid "Create" @@ -297,34 +473,26 @@ msgstr "Lisa" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" -msgstr "" +msgstr "Piiramatult" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Muu" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupi admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "muuda näidatavat nime" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "määra uus parool" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" -msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Kustuta" +msgstr "Vaikeväärtus" diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po index fe16678ea5e365ff4c647b8f23853b34c51221d9..83400a76258e671717a2a184ba7075d44dcdf157 100644 --- a/l10n/et_EE/user_ldap.po +++ b/l10n/et_EE/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "Kasutaja TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ära kasuta seda SSL ühenduse jaoks, see ei toimi." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/et_EE/user_webdavauth.po b/l10n/et_EE/user_webdavauth.po index a2ccf77cee8cc6145abeaa53f22c8f8f4c6a200b..f4cdd7354ca8f3416891c8753a5a2653f93b95b0 100644 --- a/l10n/et_EE/user_webdavauth.po +++ b/l10n/et_EE/user_webdavauth.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Rivo Zängov , 2012. +# Rivo Zängov , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-13 00:03+0100\n" +"PO-Revision-Date: 2013-02-12 17:40+0000\n" +"Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,13 +20,13 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV autentimine" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " diff --git a/l10n/eu/core.po b/l10n/eu/core.po index 0a89c92c9800ed2dd7a20e3041ae3910c48d9111..5b1a990636ad97642691b811d39060cf3b59f2e5 100644 --- a/l10n/eu/core.po +++ b/l10n/eu/core.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-23 00:04+0100\n" +"PO-Revision-Date: 2013-02-22 22:30+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,29 +21,29 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" -msgstr "%s erabiltzaileak zurekin fitxategi bat partekatu du " +msgstr "%s erabiltzaileak zurekin fitxategi bat elkarbanatu du " -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" -msgstr "%s erabiltzaileak zurekin karpeta bat partekatu du " +msgstr "%s erabiltzaileak zurekin karpeta bat elkarbanatu du " -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "%s erabiltzaileak \"%s\" fitxategia zurekin partekatu du. Hemen duzu eskuragarri: %s" +msgstr "%s erabiltzaileak \"%s\" fitxategia zurekin elkarbanatu du. Hemen duzu eskuragarri: %s" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "%s erabiltzaileak \"%s\" karpeta zurekin partekatu du. Hemen duzu eskuragarri: %s" +msgstr "%s erabiltzaileak \"%s\" karpeta zurekin elkarbanatu du. Hemen duzu eskuragarri: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." @@ -54,8 +54,9 @@ msgid "No category to add?" msgstr "Ez dago gehitzeko kategoriarik?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Kategoria hau dagoeneko existitzen da:" +#, php-format +msgid "This category already exists: %s" +msgstr "Kategoria hau dagoeneko existitzen da: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -83,135 +84,135 @@ msgstr "Ez da ezabatzeko kategoriarik hautatu." msgid "Error removing %s from favorites." msgstr "Errorea gertatu da %s gogokoetatik ezabatzean." -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "Igandea" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "Astelehena" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "Asteartea" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "Asteazkena" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "Osteguna" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "Ostirala" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "Larunbata" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "Urtarrila" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "Otsaila" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "Martxoa" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "Apirila" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "Maiatza" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "Ekaina" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "Uztaila" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "Abuztua" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "Iraila" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "Urria" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "Azaroa" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "Abendua" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ezarpenak" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "segundu" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "orain dela minutu 1" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "orain dela {minutes} minutu" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "orain dela ordu bat" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "orain dela {hours} ordu" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "gaur" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "atzo" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "orain dela {days} egun" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "joan den hilabetean" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "orain dela {months} hilabete" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "hilabete" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "joan den urtean" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "urte" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "Objetu mota ez dago zehaztuta." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Errorea" @@ -254,15 +255,15 @@ msgstr "App izena ez dago zehaztuta." msgid "The required file {file} is not installed!" msgstr "Beharrezkoa den {file} fitxategia ez dago instalatuta!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Elkarbanatu" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Elkarbanatuta" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Elkarbanatu" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Errore bat egon da elkarbanatzean" @@ -276,11 +277,11 @@ msgstr "Errore bat egon da baimenak aldatzean" #: js/share.js:168 msgid "Shared with you and the group {group} by {owner}" -msgstr "{owner}-k zu eta {group} taldearekin partekatuta" +msgstr "{owner}-k zu eta {group} taldearekin elkarbanatuta" #: js/share.js:170 msgid "Shared with you by {owner}" -msgstr "{owner}-k zurekin partekatuta" +msgstr "{owner}-k zurekin elkarbanatuta" #: js/share.js:175 msgid "Share with" @@ -294,7 +295,7 @@ msgstr "Elkarbanatu lotura batekin" msgid "Password protect" msgstr "Babestu pasahitzarekin" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:46 templates/login.php:35 msgid "Password" msgstr "Pasahitza" @@ -328,7 +329,7 @@ msgstr "Berriz elkarbanatzea ez dago baimendua" #: js/share.js:292 msgid "Shared in {item} with {user}" -msgstr "{user}ekin {item}-n partekatuta" +msgstr "{user}ekin {item}-n elkarbanatuta" #: js/share.js:313 msgid "Unshare" @@ -358,23 +359,23 @@ msgstr "ezabatu" msgid "share" msgstr "elkarbanatu" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Pasahitzarekin babestuta" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Errorea izan da muga data kentzean" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Errore bat egon da muga data ezartzean" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Bidaltzen ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Eposta bidalia" @@ -389,7 +390,7 @@ msgstr "Eguneraketa ez da ongi egin. Mesedez egin arazoaren txosten bat documentation." +msgstr "Zure zerbitzaria ongi konfiguratzeko informazioa eskuratzeko, begiratu dokumentazioa." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Sortu kudeatzaile kontu bat" -#: templates/installation.php:50 +#: templates/installation.php:54 msgid "Advanced" msgstr "Aurreratua" -#: templates/installation.php:52 +#: templates/installation.php:56 msgid "Data folder" msgstr "Datuen karpeta" -#: templates/installation.php:59 +#: templates/installation.php:65 msgid "Configure the database" msgstr "Konfiguratu datu basea" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:70 templates/installation.php:82 +#: templates/installation.php:93 templates/installation.php:104 msgid "will be used" msgstr "erabiliko da" -#: templates/installation.php:107 +#: templates/installation.php:117 msgid "Database user" msgstr "Datubasearen erabiltzailea" -#: templates/installation.php:111 +#: templates/installation.php:122 msgid "Database password" msgstr "Datubasearen pasahitza" -#: templates/installation.php:115 +#: templates/installation.php:127 msgid "Database name" msgstr "Datubasearen izena" -#: templates/installation.php:123 +#: templates/installation.php:137 msgid "Database tablespace" msgstr "Datu basearen taula-lekua" -#: templates/installation.php:129 +#: templates/installation.php:144 msgid "Database host" msgstr "Datubasearen hostalaria" -#: templates/installation.php:134 +#: templates/installation.php:150 msgid "Finish setup" msgstr "Bukatu konfigurazioa" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "web zerbitzuak zure kontrolpean" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "Saioa bukatu" @@ -576,7 +581,7 @@ msgstr "Hasi saioa" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Beste erabiltzaile izenak" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/eu/files.po b/l10n/eu/files.po index aa53f9640266a215c97b3ae165606cb73db01e7f..9beb7020e0c455a01c6d4f6071bb913ffd819722 100644 --- a/l10n/eu/files.po +++ b/l10n/eu/files.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-23 00:04+0100\n" +"PO-Revision-Date: 2013-02-22 22:30+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +21,20 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Ezin dira fitxategiak mugitu %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Ezin izan da fitxategia berrizendatu" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ez da fitxategirik igo. Errore ezezaguna" @@ -40,27 +54,27 @@ msgid "" "the HTML form" msgstr "Igotako fitxategiaren tamaina HTML inprimakiko MAX_FILESIZE direktiban adierazitakoa baino handiagoa da" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Igotako fitxategiaren zati bat baino gehiago ez da igo" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Ez da fitxategirik igo" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Aldi baterako karpeta falta da" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Errore bat izan da diskoan idazterakoan" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Ez dago leku nahikorik." +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "Ez dago behar aina leku erabilgarri," -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Baliogabeko karpeta." @@ -68,53 +82,54 @@ msgstr "Baliogabeko karpeta." msgid "Files" msgstr "Fitxategiak" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Ez elkarbanatu" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Ezabatu betirako" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Ezabatu" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Berrizendatu" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Zain" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} dagoeneko existitzen da" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ordeztu" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "aholkatu izena" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "ezeztatu" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "ordezkatua {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "desegin" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr " {new_name}-k {old_name} ordezkatu du" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "Ezabatu" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -138,78 +153,74 @@ msgstr "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Zure deskarga prestatu egin behar da. Denbora bat har lezake fitxategiak handiak badira. " -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Igotzean errore bat suertatu da" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Itxi" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Zain" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "fitxategi 1 igotzen" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} fitxategi igotzen" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Igoera ezeztatuta" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URLa ezin da hutsik egon." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Baliogabeako karpeta izena. 'Shared' izena Owncloudek erreserbatzen du" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Izena" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaina" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Aldatuta" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "karpeta bat" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} karpeta" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "fitxategi bat" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fitxategi" @@ -266,8 +277,8 @@ msgid "From link" msgstr "Estekatik" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Ezabatutako fitxategiak" #: templates/index.php:46 msgid "Cancel upload" @@ -281,6 +292,10 @@ msgstr "Ez dago ezer. Igo zerbait!" msgid "Download" msgstr "Deskargatu" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Ez elkarbanatu" + #: templates/index.php:105 msgid "Upload too large" msgstr "Igotakoa handiegia da" @@ -301,4 +316,4 @@ msgstr "Orain eskaneatzen ari da" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Fitxategi sistemaren katxea eguneratzen..." diff --git a/l10n/eu/files_encryption.po b/l10n/eu/files_encryption.po index 8f72a0453b40a2ad68942908b8e4511afa9f03ce..d62efe1ac98cc7be7d0ec919e80bdee0191fb145 100644 --- a/l10n/eu/files_encryption.po +++ b/l10n/eu/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-13 00:03+0100\n" +"PO-Revision-Date: 2013-02-12 22:00+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,21 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Mesedez egiaztatu zure pasahitza eta saia zaitez berriro:" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Enkriptazioa" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Fitxategien enkriptazioa gaituta dago." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Hurrengo fitxategi motak ez dira enkriptatuko:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Baztertu hurrengo fitxategi motak enkriptatzetik:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/eu/files_external.po b/l10n/eu/files_external.po index 285a6bad98dc1d51afc0b1bccd2ed5e1412f0d38..70267b886abacffce7a1e0c3fc59d87027f71969 100644 --- a/l10n/eu/files_external.po +++ b/l10n/eu/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-28 00:20+0100\n" -"PO-Revision-Date: 2012-12-27 20:50+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua" msgid "Error configuring Google Drive storage" msgstr "Errore bat egon da Google Drive biltegiratzea konfiguratzean" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Abisua: \"smbclient\" ez dago instalatuta. CIFS/SMB partekatutako karpetak montatzea ez da posible. Mesedez eskatu zure sistema kudeatzaileari instalatzea." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Baimendu erabiltzaileak bere kanpo biltegiratzeak muntatzen" msgid "SSL root certificates" msgstr "SSL erro ziurtagiriak" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Inportatu Erro Ziurtagiria" diff --git a/l10n/eu/files_trashbin.po b/l10n/eu/files_trashbin.po index 0eecd4d06cec8990571b6a457604fad6097b67ef..b9a97c88fe958e3f6648bb76e5ee0e43cbec0c74 100644 --- a/l10n/eu/files_trashbin.po +++ b/l10n/eu/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Ezin izan da %s betirako ezabatu" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Ezin izan da %s berreskuratu" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "berreskuratu" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "ezabatu fitxategia betirako" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Ezabatu betirako" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Izena" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Ezabatuta" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "karpeta bat" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} karpeta" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "fitxategi bat" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} fitxategi" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Ez dago ezer ez. Zure zakarrontzia hutsik dago!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Berrezarri" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Ezabatu" diff --git a/l10n/eu/files_versions.po b/l10n/eu/files_versions.po index 64844cd7adf72375e7cc172821372434a3f57709..ddd2d92e947d3abbda54030738c07c5107db8dcb 100644 --- a/l10n/eu/files_versions.po +++ b/l10n/eu/files_versions.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-13 00:03+0100\n" +"PO-Revision-Date: 2013-02-12 22:10+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Ezin izan da leheneratu: %s" + +#: history.php:40 +msgid "success" +msgstr "arrakasta" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "%s fitxategia %s bertsiora leheneratu da" + +#: history.php:49 +msgid "failure" +msgstr "errorea" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "%s fitxategia ezin da %s bertsiora leheneratu" + +#: history.php:68 +msgid "No old versions available" +msgstr "Ez dago bertsio zaharrik eskuragarri" + +#: history.php:73 +msgid "No path specified" +msgstr "Ez da bidea zehaztu" + #: js/versions.js:16 msgid "History" msgstr "Historia" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Itzuli fitxategi bat aurreko bertsio batera leheneratu bere leheneratu botoia sakatuz" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Fitxategien Bertsioak" diff --git a/l10n/eu/lib.po b/l10n/eu/lib.po index 9ba6d45bb6d8da4c096be89be260a02440737927..a4c00c0ef0d3a31af51a133339b09b794d3887f0 100644 --- a/l10n/eu/lib.po +++ b/l10n/eu/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-20 00:05+0100\n" -"PO-Revision-Date: 2013-01-19 00:06+0000\n" -"Last-Translator: asieriko \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +19,47 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Laguntza" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Pertsonala" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ezarpenak" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Erabiltzaileak" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplikazioak" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP deskarga ez dago gaituta." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Fitxategiak banan-banan deskargatu behar dira." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Itzuli fitxategietara" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Hautatuko fitxategiak oso handiak dira zip fitxategia sortzeko." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "ezin izan da zehaztu" @@ -87,6 +87,108 @@ msgstr "Testua" msgid "Images" msgstr "Irudiak" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Ezarri administraziorako erabiltzaile izena." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Ezarri administraziorako pasahitza." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Zehaztu data karpeta." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s sartu datu basearen erabiltzaile izena." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s sartu datu basearen izena." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s ezin duzu punturik erabili datu basearen izenean." + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s sartu datu basearen hostalaria." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL erabiltzaile edota pasahitza ez dira egokiak." + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Existitzen den kontu bat edo administradorearena jarri behar duzu." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle erabiltzaile edota pasahitza ez dira egokiak." + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL erabiltzaile edota pasahitza ez dira egokiak." + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DB errorea: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Errorea komando honek sortu du: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL '%s'@'localhost' erabiltzailea dagoeneko existitzen da." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Ezabatu erabiltzaile hau MySQLtik" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL '%s'@'%%' erabiltzailea dagoeneko existitzen da" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Ezabatu erabiltzaile hau MySQLtik." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Errorea komando honek sortu du: \"%s\", izena: %s, pasahitza: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Mesedez begiratu instalazio gidak." + #: template.php:113 msgid "seconds ago" msgstr "orain dela segundu batzuk" @@ -139,16 +241,16 @@ msgstr "joan den urtea" msgid "years ago" msgstr "orain dela urte batzuk" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s eskuragarri dago. Lortu informazio gehiago" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "eguneratuta" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "eguneraketen egiaztapena ez dago gaituta" diff --git a/l10n/eu/settings.po b/l10n/eu/settings.po index b605292a8ae9977db1dfd8654f01a2afd4c0082a..7551551b6cc85909b2fdcd89d9d27bf9c86eab31 100644 --- a/l10n/eu/settings.po +++ b/l10n/eu/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -25,14 +25,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Ezin izan da App Dendatik zerrenda kargatu" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentifikazio errorea" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Ezin izan da bistaratze izena aldatu" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -74,23 +74,23 @@ msgstr "Baliogabeko eskaria" msgid "Admins can't remove themself from the admin group" msgstr "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Ezin izan da erabiltzailea %s taldera gehitu" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Ezin izan da erabiltzailea %s taldetik ezabatu" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Ezin izan da aplikazioa eguneratu." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Eguneratu {appversion}-ra" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -102,15 +102,15 @@ msgstr "Gaitu" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Itxoin mesedez..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Eguneratzen..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Errorea aplikazioa eguneratzen zen bitartean" #: js/apps.js:87 msgid "Error" @@ -118,61 +118,267 @@ msgstr "Errorea" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Eguneratuta" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Gordetzen..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "ezabatuta" + +#: js/users.js:30 +msgid "undo" +msgstr "desegin" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Ezin izan da erabiltzailea aldatu" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Taldeak" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Talde administradorea" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Ezabatu" + +#: js/users.js:191 +msgid "add group" +msgstr "gehitu taldea" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Baliozko erabiltzaile izena eman behar da" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Errore bat egon da erabiltzailea sortzean" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Baliozko pasahitza eman behar da" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Euskera" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Segurtasun abisua" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. ownCloudek emandako .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Konfiguratu Abisuak" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Mesedez begiratu instalazio gidak." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "'fileinfo' Modulua falta da" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "PHP 'fileinfo' modulua falta da. Modulu hau gaitzea aholkatzen dizugu mime-type ezberdinak hobe detektatzeko." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Lokala ez dabil" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Interneteko konexioak ez du funtzionatzen" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "ownCloud zerbitzari honen interneteko konexioa ez dabil. Honek esan nahi du kanpoko biltegiratze zerbitzuak, eguneraketen informazioa edo bestelako aplikazioen instalazioa bezalako programek ez dutela funtzionatuko. Urrunetik fitxategiak eskuratzea eta e-postak bidaltzea ere ezinezkoa izan daiteke. onwCloud-en aukera guztiak erabili ahal izateko zerbitzari honetan interneteko konexioa gaitzea aholkatzen dizugu." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Exekutatu zeregin bat orri karga bakoitzean" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php webcron zerbitzu batean erregistratua dago. Deitu cron.php orria ownclouden erroan minuturo http bidez." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Erabili sistemaren cron zerbitzua. Deitu cron.php fitxategia owncloud karpetan minuturo sistemaren cron lan baten bidez." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Partekatzea" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Gaitu Elkarbanatze APIa" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Baimendu aplikazioak Elkarbanatze APIa erabiltzeko" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Baimendu loturak" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Baimendu erabiltzaileak loturen bidez fitxategiak publikoki elkarbanatzen" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Baimendu birpartekatzea" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Baimendu erabiltzaileak haiekin elkarbanatutako fitxategiak berriz ere elkarbanatzen" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Baimendu erabiltzaileak edonorekin elkarbanatzen" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Baimendu erabiltzaileak bakarrik bere taldeko erabiltzaileekin elkarbanatzen" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Segurtasuna" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Behartu HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Bezeroak konexio enkriptatu baten bidez ownCloud-era konektatzera behartzen du." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Mesedez konektatu ownCloud honetara HTTPS bidez SSL-ren beharra gaitu edo ezgaitzeko" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Egunkaria" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Erregistro maila" + +#: templates/admin.php:223 +msgid "More" +msgstr "Gehiago" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Bertsioa" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "ownCloud komunitateak garatuta, itubruru kodeaAGPL lizentziarekin banatzen da." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Gehitu zure aplikazioa" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "App gehiago" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Aukeratu programa bat" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Ikusi programen orria apps.owncloud.com en" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-lizentziatua " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Eguneratu" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Erabiltzaile dokumentazioa" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administradore dokumentazioa" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online dokumentazioa" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Foroa" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Babes komertziala" @@ -181,116 +387,86 @@ msgstr "Babes komertziala" msgid "You have used %s of the available %s" msgstr "Dagoeneko %s erabili duzu eskuragarri duzun %setatik" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Bezeroak" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Deskargatu mahaigainerako bezeroak" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Deskargatu Android bezeroa" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Deskargatu iOS bezeroa" +msgid "Get the apps to sync your files" +msgstr "Lortu aplikazioak zure fitxategiak sinkronizatzeko" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Erakutsi berriz Lehenengo Aldiko Morroia" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Pasahitza" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Zere pasahitza aldatu da" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Ezin izan da zure pasahitza aldatu" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Uneko pasahitza" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Pasahitz berria" -#: templates/personal.php:28 -msgid "show" -msgstr "erakutsi" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Aldatu pasahitza" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Bistaratze Izena" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Zure bistaratze izena aldatu da" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Ezin izan da zure bistaratze izena aldatu" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Aldatu bistaratze izena" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-Posta" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Zure e-posta" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Idatz ezazu e-posta bat pasahitza berreskuratu ahal izateko" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Hizkuntza" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Lagundu itzultzen" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Erabili helbide hau zure fitxategi kudeatzailean zure ownCloudera konektatzeko" -#: templates/personal.php:85 -msgid "Version" -msgstr "Bertsioa" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "ownCloud komunitateak garatuta, itubruru kodeaAGPL lizentziarekin banatzen da." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Sarrera Izena" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Taldeak" - #: templates/users.php:32 msgid "Create" msgstr "Sortu" @@ -299,34 +475,26 @@ msgstr "Sortu" msgid "Default Storage" msgstr "Lehenetsitako Biltegiratzea" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Mugarik gabe" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Besteak" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Talde administradorea" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Biltegiratzea" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "aldatu bistaratze izena" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "ezarri pasahitz berria" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Lehenetsia" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Ezabatu" diff --git a/l10n/eu/user_ldap.po b/l10n/eu/user_ldap.po index f55cb063518ca37dd278e82df6f64c6303aa8736..9f66eee4ecb6e131a4863a73b6bd9927f12e3fbd 100644 --- a/l10n/eu/user_ldap.po +++ b/l10n/eu/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-18 00:05+0100\n" +"PO-Revision-Date: 2013-02-17 12:30+0000\n" +"Last-Translator: asieriko \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,23 +21,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Zerbitzariaren konfigurazioa ezabatzeak huts egin du" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Konfigurazioa egokia da eta konexioa ezarri daiteke!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Konfigurazioa ongi dago, baina Bind-ek huts egin du. Mesedez egiaztatu zerbitzariaren ezarpenak eta kredentzialak." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Konfigurazioa ez dago ongi. Mesedez ikusi ownCloud-en egunerokoa informazio gehiago eskuratzeko." #: js/settings.js:66 msgid "Deletion failed" @@ -45,31 +45,31 @@ msgstr "Ezabaketak huts egin du" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "oraintsuko zerbitzariaren konfigurazioaren ezarpenen ardura hartu?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Mantendu ezarpenak?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Ezin da zerbitzariaren konfigurazioa gehitu" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Konexio froga ongi burutu da" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Konexio frogak huts egin du" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Ziur zaude Zerbitzariaren Konfigurazioa ezabatu nahi duzula?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Baieztatu Ezabatzea" #: templates/settings.php:8 msgid "" @@ -86,226 +86,226 @@ msgstr "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorr #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Zerbitzariaren konfigurazioa" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Gehitu Zerbitzariaren Konfigurazioa" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Hostalaria" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Oinarrizko DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "DN Oinarri bat lerroko" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "Erabiltzaile DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "Lotura egingo den bezero erabiltzailearen DNa, adb. uid=agent,dc=example,dc=com. Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Pasahitza" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Erabiltzaileen saioa hasteko iragazkia" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Saioa hastean erabiliko den iragazkia zehazten du. %%uid-ek erabiltzaile izena ordezkatzen du saioa hasterakoan." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "erabili %%uid txantiloia, adb. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Erabiltzaile zerrendaren Iragazkia" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Erabiltzaileak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "txantiloirik gabe, adb. \"objectClass=person\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Taldeen iragazkia" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "txantiloirik gabe, adb. \"objectClass=posixGroup\"." -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Konexio Ezarpenak" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Konfigurazio Aktiboa" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Markatuta ez dagoenean, konfigurazio hau ez da kontutan hartuko." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Portua" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Babeskopia (Replica) Ostalaria" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Eman babeskopia ostalari gehigarri bat. LDAP/AD zerbitzari nagusiaren replica bat izan behar da." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Babeskopia (Replica) Ataka" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Desgaitu Zerbitzari Nagusia" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Markatuta dagoenean, ownCloud bakarrik replica zerbitzarira konektatuko da." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Erabili TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ez erabili SSL konexioetan, huts egingo du." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Ez erabili LDAPS konexioetarako, huts egingo du." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Ezgaitu SSL ziurtagirien egiaztapena." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Ez da aholkatzen, erabili bakarrik frogak egiteko." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "segundutan. Aldaketak katxea husten du." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Karpetaren Ezarpenak" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Erabiltzaileen bistaratzeko izena duen eremua" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Oinarrizko Erabiltzaile Zuhaitza" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "Erabiltzaile DN Oinarri bat lerroko" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Erabili Bilaketa Atributuak " -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Aukerakoa; atributu bat lerro bakoitzeko" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Taldeen bistaratzeko izena duen eremua" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Oinarrizko Talde Zuhaitza" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "Talde DN Oinarri bat lerroko" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Taldekatu Bilaketa Atributuak " -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Talde-Kide elkarketak" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Atributu Bereziak" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "bytetan" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Laguntza" diff --git a/l10n/fa/core.po b/l10n/fa/core.po index a03e7a44d67a522c2d0be9fa7947b602f9311d7e..e800192efd3e1387d62355cb5ce2b6aed548969a 100644 --- a/l10n/fa/core.po +++ b/l10n/fa/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 07:50+0000\n" +"Last-Translator: miki_mika1362 \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +19,24 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "کاربر %s یک پرونده را با شما به اشتراک گذاشته است." -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "کاربر %s یک پوشه را با شما به اشتراک گذاشته است." -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "کاربر %s پرونده \"%s\" را با شما به اشتراک گذاشته است. پرونده برای دانلود اینجاست : %s" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "آیا گروه دیگری برای افزودن ندارید" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "این گروه از قبل اضافه شده" +#, php-format +msgid "This category already exists: %s" +msgstr "این دسته هم اکنون وجود دارد: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -81,135 +82,135 @@ msgstr "هیج دسته ای برای پاک شدن انتخاب نشده است msgid "Error removing %s from favorites." msgstr "خطای پاک کردن %s از علاقه مندی ها." -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "یکشنبه" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "دوشنبه" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "سه شنبه" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "چهارشنبه" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "پنجشنبه" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "جمعه" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "شنبه" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "ژانویه" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "فبریه" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "مارس" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "آوریل" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "می" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "ژوئن" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "جولای" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "آگوست" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "سپتامبر" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "اکتبر" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "نوامبر" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "دسامبر" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "تنظیمات" -#: js/js.js:760 +#: js/js.js:768 msgid "seconds ago" msgstr "ثانیه‌ها پیش" -#: js/js.js:761 +#: js/js.js:769 msgid "1 minute ago" msgstr "1 دقیقه پیش" -#: js/js.js:762 +#: js/js.js:770 msgid "{minutes} minutes ago" msgstr "{دقیقه ها} دقیقه های پیش" -#: js/js.js:763 +#: js/js.js:771 msgid "1 hour ago" msgstr "1 ساعت پیش" -#: js/js.js:764 +#: js/js.js:772 msgid "{hours} hours ago" msgstr "{ساعت ها} ساعت ها پیش" -#: js/js.js:765 +#: js/js.js:773 msgid "today" msgstr "امروز" -#: js/js.js:766 +#: js/js.js:774 msgid "yesterday" msgstr "دیروز" -#: js/js.js:767 +#: js/js.js:775 msgid "{days} days ago" msgstr "{روزها} روزهای پیش" -#: js/js.js:768 +#: js/js.js:776 msgid "last month" msgstr "ماه قبل" -#: js/js.js:769 +#: js/js.js:777 msgid "{months} months ago" msgstr "{ماه ها} ماه ها پیش" -#: js/js.js:770 +#: js/js.js:778 msgid "months ago" msgstr "ماه‌های قبل" -#: js/js.js:771 +#: js/js.js:779 msgid "last year" msgstr "سال قبل" -#: js/js.js:772 +#: js/js.js:780 msgid "years ago" msgstr "سال‌های قبل" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "نوع شی تعیین نشده است." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "خطا" @@ -252,15 +253,15 @@ msgstr "نام برنامه تعیین نشده است." msgid "The required file {file} is not installed!" msgstr "پرونده { پرونده} درخواست شده نصب نشده است !" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "اشتراک گذاشته شده" + +#: js/share.js:93 msgid "Share" msgstr "اشتراک‌گزاری" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "خطا درحال به اشتراک گذاشتن" @@ -292,7 +293,7 @@ msgstr "به اشتراک گذاشتن با پیوند" msgid "Password protect" msgstr "نگهداری کردن رمز عبور" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 msgid "Password" msgstr "گذرواژه" @@ -302,7 +303,7 @@ msgstr "پیوند ایمیل برای شخص." #: js/share.js:190 msgid "Send" -msgstr "" +msgstr "ارسال" #: js/share.js:194 msgid "Set expiration date" @@ -356,38 +357,38 @@ msgstr "پاک کردن" msgid "share" msgstr "به اشتراک گذاشتن" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "نگهداری از رمز عبور" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "خطا در تنظیم نکردن تاریخ انقضا " -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "خطا در تنظیم تاریخ انقضا" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." -msgstr "" +msgstr "درحال ارسال ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" -msgstr "" +msgstr "ایمیل ارسال شد" #: js/update.js:14 msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "به روز رسانی ناموفق بود. لطفا این خطا را به جامعه ی OwnCloud گزارش نمایید." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "به روزرسانی موفقیت آمیز بود. در حال انتقال شما به OwnCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "پسورد ابرهای شما تغییرکرد" @@ -407,7 +408,7 @@ msgstr "تنظیم مجدد ایمیل را بفرستید." msgid "Request failed!" msgstr "درخواست رد شده است !" -#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 #: templates/login.php:28 msgid "Username" msgstr "شناسه" @@ -468,11 +469,11 @@ msgstr "ویرایش گروه ها" msgid "Add" msgstr "افزودن" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:24 templates/installation.php:31 msgid "Security Warning" msgstr "اخطار امنیتی" -#: templates/installation.php:24 +#: templates/installation.php:25 msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." @@ -486,63 +487,68 @@ msgstr "بدون وجود یک تولید کننده اعداد تصادفی ا #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." msgstr "" -#: templates/installation.php:36 +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:37 msgid "Create an admin account" msgstr "لطفا یک شناسه برای مدیر بسازید" -#: templates/installation.php:50 +#: templates/installation.php:55 msgid "Advanced" msgstr "حرفه ای" -#: templates/installation.php:52 +#: templates/installation.php:57 msgid "Data folder" msgstr "پوشه اطلاعاتی" -#: templates/installation.php:59 +#: templates/installation.php:66 msgid "Configure the database" msgstr "پایگاه داده برنامه ریزی شدند" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 msgid "will be used" msgstr "استفاده خواهد شد" -#: templates/installation.php:107 +#: templates/installation.php:129 msgid "Database user" msgstr "شناسه پایگاه داده" -#: templates/installation.php:111 +#: templates/installation.php:134 msgid "Database password" msgstr "پسورد پایگاه داده" -#: templates/installation.php:115 +#: templates/installation.php:139 msgid "Database name" msgstr "نام پایگاه داده" -#: templates/installation.php:123 +#: templates/installation.php:149 msgid "Database tablespace" msgstr "جدول پایگاه داده" -#: templates/installation.php:129 +#: templates/installation.php:156 msgid "Database host" msgstr "هاست پایگاه داده" -#: templates/installation.php:134 +#: templates/installation.php:162 msgid "Finish setup" msgstr "اتمام نصب" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "سرویس وب تحت کنترل شما" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "خروج" @@ -587,4 +593,4 @@ msgstr "بعدی" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" +msgstr "به روز رسانی OwnCloud به نسخه ی %s، این عملیات ممکن است زمان بر باشد." diff --git a/l10n/fa/files.po b/l10n/fa/files.po index 9739c71ab2977a289f0a266af3c43577eb9c8bfb..64d0f6f6867b51a350cd4de435eb6a6534744dab 100644 --- a/l10n/fa/files.po +++ b/l10n/fa/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2013-02-25 05:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,20 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s نمی تواند حرکت کند - در حال حاضر پرونده با این نام وجود دارد. " + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s نمی تواند حرکت کند " + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "قادر به تغییر نام پرونده نیست." + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "هیچ فایلی آپلود نشد.خطای ناشناس" @@ -40,27 +54,27 @@ msgid "" "the HTML form" msgstr "حداکثر حجم مجاز برای بارگذاری از طریق HTML \nMAX_FILE_SIZE" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "مقدار کمی از فایل بارگذاری شده" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "هیچ فایلی بارگذاری نشده" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "یک پوشه موقت گم شده است" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "نوشتن بر روی دیسک سخت ناموفق بود" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "فضای کافی در دسترس نیست" +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "فهرست راهنما نامعتبر می باشد." @@ -68,51 +82,52 @@ msgstr "فهرست راهنما نامعتبر می باشد." msgid "Files" msgstr "فایل ها" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "لغو اشتراک" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "پاک کردن" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "تغییرنام" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "در انتظار" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{نام _جدید} در حال حاضر وجود دارد." -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "جایگزین" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "پیشنهاد نام" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "لغو" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{نام _جدید} جایگزین شد " -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "بازگشت" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{نام_جدید} با { نام_قدیمی} جایگزین شد." -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -138,50 +153,46 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "دانلود شما در حال آماده شدن است. در صورتیکه پرونده ها بزرگ باشند ممکن است مدتی طول بکشد." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "خطا در بار گذاری" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "بستن" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "در انتظار" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 پرونده آپلود شد." -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{ شمار } فایل های در حال آپلود" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "بار گذاری لغو شد" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. " -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL نمی تواند خالی باشد." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "نام پوشه نامعتبر است. استفاده از \" به اشتراک گذاشته شده \" متعلق به سایت Owncloud است." @@ -266,7 +277,7 @@ msgid "From link" msgstr "از پیوند" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -281,6 +292,10 @@ msgstr "اینجا هیچ چیز نیست." msgid "Download" msgstr "بارگیری" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "لغو اشتراک" + #: templates/index.php:105 msgid "Upload too large" msgstr "حجم بارگذاری بسیار زیاد است" diff --git a/l10n/fa/files_encryption.po b/l10n/fa/files_encryption.po index 586cebd200fa5dd85de059903d4b7568e67dc80c..ca4053cf7ee19d470142ed34d468a047458c9c56 100644 --- a/l10n/fa/files_encryption.po +++ b/l10n/fa/files_encryption.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -20,28 +20,6 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "لطفا گذرواژه خود را بررسی کنید و دوباره امتحان کنید." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "رمزگذاری" diff --git a/l10n/fa/files_external.po b/l10n/fa/files_external.po index 075c47b4356a52d7f41111cb6b3cc788acc779d1..da2cb036192e2d02f24fee451a2b5c9f3ea06c00 100644 --- a/l10n/fa/files_external.po +++ b/l10n/fa/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:04+0100\n" -"PO-Revision-Date: 2013-02-03 05:40+0000\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 08:30+0000\n" "Last-Translator: miki_mika1362 \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -26,29 +26,29 @@ msgstr "" msgid "Error configuring Dropbox storage" msgstr "" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" msgstr "" -#: js/dropbox.js:73 js/google.js:73 +#: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" -msgstr "" +msgstr "تمام قسمت های مورد نیاز را پر کنید" #: js/dropbox.js:85 msgid "Please provide a valid Dropbox app key and secret." msgstr "" -#: js/google.js:26 js/google.js:74 js/google.js:79 +#: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -89,7 +89,7 @@ msgstr "" #: templates/settings.php:86 msgid "All Users" -msgstr "" +msgstr "تمام کاربران" #: templates/settings.php:87 msgid "Groups" @@ -116,6 +116,6 @@ msgstr "" msgid "SSL root certificates" msgstr "" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/fa/files_trashbin.po b/l10n/fa/files_trashbin.po index 3610dde6bec80fb3c670c25895a7fc62a988ffbe..962fcc1a0a4ceec43637d671271e68e1ff2019b2 100644 --- a/l10n/fa/files_trashbin.po +++ b/l10n/fa/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "نام" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 پوشه" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{ شمار} پوشه ها" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 پرونده" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{ شمار } فایل ها" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "بازیابی" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "حذف" diff --git a/l10n/fa/files_versions.po b/l10n/fa/files_versions.po index 276a3e16135a094f1272e310e76e84ffc03c5cf0..428d3b17be693e73c5569afcefddd34f7571f943 100644 --- a/l10n/fa/files_versions.po +++ b/l10n/fa/files_versions.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Amir Reza Asadi , 2013. # mahdi Kereshteh , 2013. # Mohammad Dashtizadeh , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:05+0100\n" -"PO-Revision-Date: 2013-02-03 11:40+0000\n" -"Last-Translator: miki_mika1362 \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-21 18:00+0000\n" +"Last-Translator: Amir Reza Asadi \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,13 +20,48 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "بازگردانی امکان ناپذیر است: %s" + +#: history.php:40 +msgid "success" +msgstr "موفقیت" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "شکست" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "هیچ نسخه قدیمی در دسترس نیست" + +#: history.php:73 +msgid "No path specified" +msgstr "هیچ مسیری مشخص نشده است" + #: js/versions.js:16 msgid "History" msgstr "تاریخچه" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "بازگردانی یک پرورنده به نسخه قدیمی اش از طریق دکمه بازگردانی امکان پذیر است" + #: templates/settings.php:3 msgid "Files Versioning" -msgstr "" +msgstr "نسخه بندی پرونده ها" #: templates/settings.php:4 msgid "Enable" diff --git a/l10n/fa/lib.po b/l10n/fa/lib.po index 4fb46ee34436b33dd41f9ed49710abf5d88ff184..d28ceaba3e755caa2364ad11481207c8b71e431e 100644 --- a/l10n/fa/lib.po +++ b/l10n/fa/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 14:01+0000\n" -"Last-Translator: Amir Reza Asadi \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,27 +19,27 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:312 +#: app.php:349 msgid "Help" msgstr "راه‌نما" -#: app.php:319 +#: app.php:362 msgid "Personal" msgstr "شخصی" -#: app.php:324 +#: app.php:373 msgid "Settings" msgstr "تنظیمات" -#: app.php:329 +#: app.php:385 msgid "Users" msgstr "کاربران" -#: app.php:336 +#: app.php:398 msgid "Apps" msgstr " برنامه ها" -#: app.php:338 +#: app.php:406 msgid "Admin" msgstr "مدیر" @@ -51,15 +51,15 @@ msgstr "دانلود به صورت فشرده غیر فعال است" msgid "Files need to be downloaded one by one." msgstr "فایل ها باید به صورت یکی یکی دانلود شوند" -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "بازگشت به فایل ها" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "فایل های انتخاب شده بزرگتر از آن هستند که بتوان یک فایل فشرده تولید کرد" -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "" @@ -87,6 +87,108 @@ msgstr "متن" msgid "Images" msgstr "تصاویر" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "ثانیه‌ها پیش" @@ -139,16 +241,16 @@ msgstr "سال قبل" msgid "years ago" msgstr "سال‌های قبل" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/fa/settings.po b/l10n/fa/settings.po index f38f77bf14e89a0e0b68d3db106a9415c54900f0..2f647994415ecd39dda95c0474df4d1db5291b92 100644 --- a/l10n/fa/settings.po +++ b/l10n/fa/settings.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -26,14 +26,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "قادر به بارگذاری لیست از فروشگاه اپ نیستم" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "خطا در اعتبار سنجی" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "امکان تغییر نام نمایشی شما وجود ندارد" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,19 +73,19 @@ msgstr "درخواست غیر قابل قبول" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "" +msgstr "مدیران نمی توانند خود را از گروه مدیریت حذف کنند" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -121,176 +121,352 @@ msgstr "خطا" msgid "Updated" msgstr "بروز رسانی انجام شد" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "درحال ذخیره ..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "حذف شده" + +#: js/users.js:30 +msgid "undo" +msgstr "بازگشت" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "گروه ها" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "پاک کردن" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "اخطار امنیتی" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "بیش‌تر" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "نسخه" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "برنامه خود را بیافزایید" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "برنامه های بیشتر" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "یک برنامه انتخاب کنید" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "صفحه این اٌپ را در apps.owncloud.com ببینید" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "به روز رسانی" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" -msgstr "" +msgstr "مستندات کاربر" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" -msgstr "" +msgstr "مستندات مدیر" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "انجمن" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" -msgstr "" +msgstr "پشتیبانی تجاری" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "مشتریان" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "" - #: templates/personal.php:15 -msgid "Download iOS Client" +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "راهبری کمکی اجرای اول را دوباره نمایش بده" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "گذرواژه" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "رمز عبور شما تغییر یافت" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "ناتوان در تغییر گذرواژه" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "گذرواژه کنونی" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "گذرواژه جدید" -#: templates/personal.php:28 -msgid "show" -msgstr "نمایش" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "تغییر گذر واژه" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "نام نمایشی" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "نام نمایشی شما تغییر یافت" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "امکان تغییر نام نمایشی شما وجود ندارد" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "تغییر نام نمایشی" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "پست الکترونیکی" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "پست الکترونیکی شما" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "پست الکترونیکی را پرکنید تا بازیابی گذرواژه فعال شود" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "زبان" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "به ترجمه آن کمک کنید" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "نسخه" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "گروه ها" +msgstr "نام کاربری" #: templates/users.php:32 msgid "Create" @@ -300,34 +476,26 @@ msgstr "ایجاد کردن" msgid "Default Storage" msgstr "ذخیره سازی پیش فرض" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "نامحدود" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "سایر" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "حافظه" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "تغییر نام نمایشی" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "تنظیم کلمه عبور جدید" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "پیش فرض" - -#: templates/users.php:165 -msgid "Delete" -msgstr "پاک کردن" diff --git a/l10n/fa/user_ldap.po b/l10n/fa/user_ldap.po index 2ec49d42b232af3ad357b0bffa7a7f9ee03e5594..029b1993ac9c49f4243dc450983f98af75a2b2ed 100644 --- a/l10n/fa/user_ldap.po +++ b/l10n/fa/user_ldap.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Amir Reza Asadi , 2013. # mahdi Kereshteh , 2013. # Mohammad Dashtizadeh , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 05:40+0000\n" -"Last-Translator: miki_mika1362 \n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2013-02-14 10:50+0000\n" +"Last-Translator: Amir Reza Asadi \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,11 +22,11 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "عملیات حذف پیکربندی سرور ناموفق ماند" #: ajax/testConfiguration.php:35 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "پیکربندی معتبر است و ارتباط می تواند برقرار شود" #: ajax/testConfiguration.php:37 msgid "" @@ -57,19 +58,19 @@ msgstr "" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "تست اتصال با موفقیت انجام گردید" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "تست اتصال ناموفق بود" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "آیا واقعا می خواهید پیکربندی کنونی سرور را حذف کنید؟" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "تایید حذف" #: templates/settings.php:8 msgid "" @@ -86,11 +87,11 @@ msgstr "" #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "پیکربندی سرور" #: templates/settings.php:17 msgid "Add Server Configuration" -msgstr "" +msgstr "افزودن پیکربندی سرور" #: templates/settings.php:21 msgid "Host" @@ -215,7 +216,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 @@ -298,7 +299,7 @@ msgstr "" #: templates/settings.php:56 msgid "in bytes" -msgstr "" +msgstr "در بایت" #: templates/settings.php:58 msgid "" diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po index 734dc893ad961b09470cb861ad85ebacd7a416f5..24d915c35e79c20ba5b81a341e792a37edc26831 100644 --- a/l10n/fi_FI/core.po +++ b/l10n/fi_FI/core.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -57,8 +57,9 @@ msgid "No category to add?" msgstr "Ei lisättävää luokkaa?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Tämä luokka on jo olemassa: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -162,59 +163,59 @@ msgstr "Marraskuu" msgid "December" msgstr "Joulukuu" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Asetukset" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekuntia sitten" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minuutti sitten" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minuuttia sitten" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 tunti sitten" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} tuntia sitten" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "tänään" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "eilen" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} päivää sitten" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "viime kuussa" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} kuukautta sitten" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "kuukautta sitten" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "viime vuonna" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "vuotta sitten" @@ -244,8 +245,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Virhe" @@ -257,15 +258,15 @@ msgstr "Sovelluksen nimeä ei ole määritelty." msgid "The required file {file} is not installed!" msgstr "Vaadittua tiedostoa {file} ei ole asennettu!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Jaa" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Jaa" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Virhe jaettaessa" @@ -361,23 +362,23 @@ msgstr "poista" msgid "share" msgstr "jaa" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Salasanasuojattu" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Virhe purettaessa eräpäivää" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Virhe päättymispäivää asettaessa" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Lähetetään..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Sähköposti lähetetty" @@ -392,7 +393,7 @@ msgstr "Päivitys epäonnistui. Ilmoita ongelmasta documentation." +msgstr "Katso palvelimen asetuksien määrittämiseen liittyvät ohjeet dokumentaatiosta." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Luo ylläpitäjän tunnus" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Lisäasetukset" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datakansio" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Muokkaa tietokantaa" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "käytetään" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Tietokannan käyttäjä" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Tietokannan salasana" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Tietokannan nimi" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tietokannan taulukkotila" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Tietokantapalvelin" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Viimeistele asennus" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "verkkopalvelut hallinnassasi" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Kirjaudu ulos" diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po index 13f67673e04638c6dbcb9114181edb2f9ca5d5c7..f447308e8c7648a83c631816ed29d8670b3b794c 100644 --- a/l10n/fi_FI/files.po +++ b/l10n/fi_FI/files.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,6 +22,20 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Kohteen %s siirto ei onnistunut" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Tiedoston nimeäminen uudelleen ei onnistunut" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Tiedostoa ei lähetetty. Tuntematon virhe" @@ -58,8 +72,8 @@ msgid "Failed to write to disk" msgstr "Levylle kirjoitus epäonnistui" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Tilaa ei ole riittävästi" +msgid "Not enough storage available" +msgstr "Tallennustilaa ei ole riittävästi käytettävissä" #: ajax/upload.php:83 msgid "Invalid directory." @@ -69,51 +83,52 @@ msgstr "Virheellinen kansio." msgid "Files" msgstr "Tiedostot" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Peru jakaminen" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Poista pysyvästi" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Poista" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Nimeä uudelleen" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Odottaa" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} on jo olemassa" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "korvaa" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "ehdota nimeä" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "peru" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "kumoa" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "suorita poistotoiminto" @@ -139,78 +154,74 @@ msgstr "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkro msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Tallennustila on melkein loppu ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Lähetysvirhe." -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Sulje" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Odottaa" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Lähetys peruttu." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Verkko-osoite ei voi olla tyhjä" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nimi" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Koko" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Muutettu" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 kansio" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} kansiota" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 tiedosto" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} tiedostoa" @@ -267,8 +278,8 @@ msgid "From link" msgstr "Linkistä" #: templates/index.php:40 -msgid "Trash" -msgstr "Roskakori" +msgid "Deleted files" +msgstr "Poistetut tiedostot" #: templates/index.php:46 msgid "Cancel upload" @@ -282,6 +293,10 @@ msgstr "Täällä ei ole mitään. Lähetä tänne jotakin!" msgid "Download" msgstr "Lataa" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Peru jakaminen" + #: templates/index.php:105 msgid "Upload too large" msgstr "Lähetettävä tiedosto on liian suuri" diff --git a/l10n/fi_FI/files_encryption.po b/l10n/fi_FI/files_encryption.po index d8095a939b7264caff0fda3fc4bb94e3360500bb..3833503da06b99fafc70a4631898978e68e5490c 100644 --- a/l10n/fi_FI/files_encryption.po +++ b/l10n/fi_FI/files_encryption.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 07:40+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +18,21 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Tarkista salasanasi ja yritä uudelleen." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Salaus" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Tiedostojen salaus on käytössä." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Seuraavia tiedostotyyppejä ei salata:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Älä salaa seuravia tiedostotyyppejä:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/fi_FI/files_external.po b/l10n/fi_FI/files_external.po index 7b2a88bd1b2c3b6ac94dffea5aa359f9942f80fc..bd212d4925be19c6933a128fc6523ee2536517b9 100644 --- a/l10n/fi_FI/files_external.po +++ b/l10n/fi_FI/files_external.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 14:01+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -28,29 +28,29 @@ msgstr "Pääsy sallittu" msgid "Error configuring Dropbox storage" msgstr "Virhe Dropbox levyn asetuksia tehtäessä" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" msgstr "Salli pääsy" -#: js/dropbox.js:73 js/google.js:73 +#: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" msgstr "Täytä kaikki vaaditut kentät" #: js/dropbox.js:85 msgid "Please provide a valid Dropbox app key and secret." -msgstr "" +msgstr "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus." -#: js/google.js:26 js/google.js:74 js/google.js:79 +#: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "Virhe Google Drive levyn asetuksia tehtäessä" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Varoitus: \"smbclient\" ei ole asennettuna. CIFS-/SMB-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan smbclient." -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -118,6 +118,6 @@ msgstr "Salli käyttäjien liittää omia erillisiä tallennusvälineitä" msgid "SSL root certificates" msgstr "SSL-juurivarmenteet" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Tuo juurivarmenne" diff --git a/l10n/fi_FI/files_trashbin.po b/l10n/fi_FI/files_trashbin.po index 862e93f1b7721e0591ef4c83fc356c64382fb222..749b49636c74f0435109632aff87bc70777b323f 100644 --- a/l10n/fi_FI/files_trashbin.po +++ b/l10n/fi_FI/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Kohdetta %s ei voitu poistaa pysyvästi" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Kohteen %s palautus epäonnistui" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "suorita palautustoiminto" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "poista tiedosto pysyvästi" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Poista pysyvästi" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nimi" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Poistettu" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 kansio" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} kansiota" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 tiedosto" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} tiedostoa" @@ -57,3 +71,7 @@ msgstr "Tyhjää täynnä! Roskakorissa ei ole mitään." #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Palauta" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Poista" diff --git a/l10n/fi_FI/files_versions.po b/l10n/fi_FI/files_versions.po index 4a04a540a9089dcab78a062d7a3829e5708e968d..5cd06f949b2f27ee9a28a27fb0845b5be8245f3e 100644 --- a/l10n/fi_FI/files_versions.po +++ b/l10n/fi_FI/files_versions.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Jiri Grönroos , 2012. +# Jiri Grönroos , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2013-02-14 07:30+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Palautus epäonnistui: %s" + +#: history.php:40 +msgid "success" +msgstr "onnistui" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Tiedosto %s palautettiin versioon %s" + +#: history.php:49 +msgid "failure" +msgstr "epäonnistui" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Tiedoston %s palautus versioon %s epäonnistui" + +#: history.php:68 +msgid "No old versions available" +msgstr "Vanhoja ei ole saatavilla" + +#: history.php:73 +msgid "No path specified" +msgstr "Polkua ei ole määritetty" + #: js/versions.js:16 msgid "History" msgstr "Historia" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Palauta tiedoston edellinen versio napsauttamalla palautuspainiketta" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Tiedostojen versiointi" diff --git a/l10n/fi_FI/lib.po b/l10n/fi_FI/lib.po index 7b90f23c2cd82bc41a1a606157c98ca8424fe1ff..143dc9b53acef8b7dfd035504080b427565e1a82 100644 --- a/l10n/fi_FI/lib.po +++ b/l10n/fi_FI/lib.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 08:40+0000\n" -"Last-Translator: Jiri Grönroos \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +18,43 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ohje" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Henkilökohtainen" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Asetukset" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Käyttäjät" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Sovellukset" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Ylläpitäjä" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP-lataus on poistettu käytöstä." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Tiedostot on ladattava yksittäin." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Takaisin tiedostoihin" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Valitut tiedostot ovat liian suurikokoisia mahtuakseen zip-tiedostoon." @@ -86,6 +86,108 @@ msgstr "Teksti" msgid "Images" msgstr "Kuvat" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Aseta ylläpitäjän käyttäjätunnus." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Aseta ylläpitäjän salasana." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Määritä datakansio." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL:n käyttäjätunnus ja/tai salasana on väärin" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oraclen käyttäjätunnus ja/tai salasana on väärin" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL:n käyttäjätunnus ja/tai salasana on väärin" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Tietokantavirhe: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL-käyttäjä '%s'@'localhost' on jo olemassa." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL-käyttäjä '%s'@'%%' on jo olemassa" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Lue tarkasti asennusohjeet." + #: template.php:113 msgid "seconds ago" msgstr "sekuntia sitten" @@ -138,16 +240,16 @@ msgstr "viime vuonna" msgid "years ago" msgstr "vuotta sitten" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s on saatavilla. Lue lisätietoja" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ajan tasalla" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "päivitysten tarkistus on pois käytöstä" diff --git a/l10n/fi_FI/settings.po b/l10n/fi_FI/settings.po index f31845d910bc7467746dedbd9d011a71b0bddba5..a5c6c1ed5b24de6afddefea5a865b77fcf702c8e 100644 --- a/l10n/fi_FI/settings.po +++ b/l10n/fi_FI/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -24,14 +24,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Ei pystytä lataamaan listaa sovellusvarastosta (App Store)" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Todennusvirhe" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Näyttönimen muuttaminen epäonnistui" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,17 +73,17 @@ msgstr "Virheellinen pyyntö" msgid "Admins can't remove themself from the admin group" msgstr "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Käyttäjän tai ryhmän %s lisääminen ei onnistu" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Käyttäjän poistaminen ryhmästä %s ei onnistu" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Sovelluksen päivitys epäonnistui." @@ -119,59 +119,265 @@ msgstr "Virhe" msgid "Updated" msgstr "Päivitetty" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Tallennetaan..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "poistettu" + +#: js/users.js:30 +msgid "undo" +msgstr "kumoa" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Käyttäjän poistaminen ei onnistunut" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Ryhmät" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Ryhmän ylläpitäjä" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Poista" + +#: js/users.js:191 +msgid "add group" +msgstr "lisää ryhmä" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Virhe käyttäjää luotaessa" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "_kielen_nimi_" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Turvallisuusvaroitus" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Data-kansio ja tiedostot ovat ehkä saavutettavissa Internetistä. .htaccess-tiedosto, jolla kontrolloidaan pääsyä, ei toimi. Suosittelemme, että muutat web-palvelimesi asetukset niin ettei data-kansio ole enää pääsyä tai siirrät data-kansion pois web-palvelimen tiedostojen juuresta." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Lue tarkasti asennusohjeet." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Moduuli 'fileinfo' puuttuu" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Internet-yhteys ei toimi" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Jakaminen" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Käytä jakamisen ohjelmointirajapintaa" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Salli linkit" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Salli käyttäjien jakaa kohteita käyttäen linkkejä" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Salli uudelleenjakaminen" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Mahdollistaa käyttäjien jakavan uudelleen heidän kanssaan jaettuja kohteita" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Salli käyttäjien jakaa kenen tahansa kanssa" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Salli jakaminen vain samoissa ryhmissä olevien käyttäjien kesken" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Tietoturva" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Pakota HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Pakottaa salaamaan ownCloudiin kohdistuvat yhteydet." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Loki" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Lokitaso" + +#: templates/admin.php:223 +msgid "More" +msgstr "Enemmän" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versio" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Kehityksestä on vastannut ownCloud-yhteisö, lähdekoodi on julkaistu lisenssin AGPL alaisena." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Lisää sovelluksesi" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Lisää sovelluksia" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Valitse sovellus" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Katso sovellussivu osoitteessa apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-lisensoija " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Päivitä" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Käyttäjäohjeistus" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Ylläpito-ohjeistus" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Verkko-ohjeistus" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Keskustelupalsta" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Ohjelmistovirheiden jäljitys" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kaupallinen tuki" @@ -180,116 +386,86 @@ msgstr "Kaupallinen tuki" msgid "You have used %s of the available %s" msgstr "Käytössäsi on %s/%s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Asiakkaat" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Lataa työpöytäsovelluksia" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Lataa Android-sovellus" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Lataa iOS-sovellus" +msgid "Get the apps to sync your files" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Näytä ensimmäisen käyttökerran avustaja uudelleen" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Salasana" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Salasanasi vaihdettiin" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Salasanaasi ei voitu vaihtaa" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Nykyinen salasana" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Uusi salasana" -#: templates/personal.php:28 -msgid "show" -msgstr "näytä" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Vaihda salasana" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Näyttönimi" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Näyttönimesi muutettiin" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Näyttönimen muuttaminen epäonnistui" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Muuta näyttönimeä" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Sähköposti" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Sähköpostiosoitteesi" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Anna sähköpostiosoitteesi, jotta unohdettu salasana on mahdollista palauttaa" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Kieli" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Auta kääntämisessä" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Käytä tätä osoitetta yhdistäessäsi ownCloudiisi tiedostonhallintaa käyttäen" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versio" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Kehityksestä on vastannut ownCloud-yhteisö, lähdekoodi on julkaistu lisenssin AGPL alaisena." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Kirjautumisnimi" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Ryhmät" - #: templates/users.php:32 msgid "Create" msgstr "Luo" @@ -298,34 +474,26 @@ msgstr "Luo" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Rajoittamaton" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Muu" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Ryhmän ylläpitäjä" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "vaihda näyttönimi" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "aseta uusi salasana" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Oletus" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Poista" diff --git a/l10n/fi_FI/user_ldap.po b/l10n/fi_FI/user_ldap.po index e0a1ecc049ecefcb5b718fd5cc0757672726bfa7..3a56d21654cccf225b1502e136be6e04be9a137f 100644 --- a/l10n/fi_FI/user_ldap.po +++ b/l10n/fi_FI/user_ldap.po @@ -4,15 +4,15 @@ # # Translators: # , 2012. -# Jiri Grönroos , 2012. +# Jiri Grönroos , 2012-2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2013-02-14 07:40+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -50,19 +50,19 @@ msgstr "" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Säilytetäänkö asetukset?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Palvelinasetusten lisäys epäonnistui" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Yhteystesti onnistui" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Yhteystesti epäonnistui" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" @@ -70,7 +70,7 @@ msgstr "" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Vahvista poisto" #: templates/settings.php:8 msgid "" @@ -175,7 +175,7 @@ msgstr "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\"." #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Yhteysasetukset" #: templates/settings.php:33 msgid "Configuration Active" @@ -205,7 +205,7 @@ msgstr "" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "Poista pääpalvelin käytöstä" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." @@ -216,8 +216,8 @@ msgid "Use TLS" msgstr "Käytä TLS:ää" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Älä käytä SSL-yhteyttä varten, se epäonnistuu. " +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -243,7 +243,7 @@ msgstr "sekunneissa. Muutos tyhjentää välimuistin." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Hakemistoasetukset" #: templates/settings.php:45 msgid "User Display Name Field" diff --git a/l10n/fi_FI/user_webdavauth.po b/l10n/fi_FI/user_webdavauth.po index c42c6d288e6cca996ddb82eba6a0f920ed878cdc..e1fa0ca8d17ce9550bb8f057265e1ed6998fb8bb 100644 --- a/l10n/fi_FI/user_webdavauth.po +++ b/l10n/fi_FI/user_webdavauth.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Jiri Grönroos , 2012. +# Jiri Grönroos , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2013-02-14 14:00+0000\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,13 +20,13 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV-todennus" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "Osoite: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " diff --git a/l10n/fr/core.po b/l10n/fr/core.po index 31f4f80f35386fabfd08b2292a38d9748ec3b73b..bb1f9dc5fe7939006a4c9582997189c3674a46dc 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/core.po @@ -14,15 +14,16 @@ # Nahir Mohamed , 2012. # , 2012. # , 2012. +# Robert Di Rosa <>, 2013. # , 2011. -# Romain DEP. , 2012. +# Romain DEP. , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Robert Di Rosa <>\n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -63,8 +64,9 @@ msgid "No category to add?" msgstr "Pas de catégorie à ajouter ?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Cette catégorie existe déjà : " +#, php-format +msgid "This category already exists: %s" +msgstr "Cette catégorie existe déjà : %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -168,59 +170,59 @@ msgstr "novembre" msgid "December" msgstr "décembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Paramètres" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "il y a quelques secondes" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "il y a une minute" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "il y a {minutes} minutes" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Il y a une heure" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Il y a {hours} heures" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "aujourd'hui" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "hier" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "il y a {days} jours" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "le mois dernier" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Il y a {months} mois" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "il y a plusieurs mois" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "l'année dernière" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "il y a plusieurs années" @@ -250,8 +252,8 @@ msgid "The object type is not specified." msgstr "Le type d'objet n'est pas spécifié." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Erreur" @@ -263,15 +265,15 @@ msgstr "Le nom de l'application n'est pas spécifié." msgid "The required file {file} is not installed!" msgstr "Le fichier requis {file} n'est pas installé !" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Partager" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Partagé" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Partager" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Erreur lors de la mise en partage" @@ -367,23 +369,23 @@ msgstr "supprimer" msgid "share" msgstr "partager" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protégé par un mot de passe" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Une erreur est survenue pendant la suppression de la date d'expiration" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Erreur lors de la spécification de la date d'expiration" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "En cours d'envoi ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Email envoyé" @@ -398,7 +400,7 @@ msgstr "La mise à jour a échoué. Veuillez signaler ce problème à la documentation." +msgstr "Pour les informations de configuration de votre serveur, veuillez lire la documentation." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Créer un compte administrateur" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avancé" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Répertoire des données" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurer la base de données" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "sera utilisé" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Utilisateur pour la base de données" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Mot de passe de la base de données" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nom de la base de données" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tablespaces de la base de données" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Serveur de la base de données" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Terminer l'installation" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "services web sous votre contrôle" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Se déconnecter" @@ -585,7 +591,7 @@ msgstr "Connexion" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Logins alternatifs" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index 4d48780dff75868427132c49935b74415c88bf2c..f6a61735b8d6b6443dfdb52b798034375d1e3d15 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Adalberto Rodrigues , 2013. # Cédric MARTIN , 2013. # Christophe Lherieau , 2012-2013. # Cyril Glapa , 2012. @@ -14,16 +15,16 @@ # Guillaume Paumier , 2012. # , 2012. # Nahir Mohamed , 2012. -# Robert Di Rosa <>, 2012. +# Robert Di Rosa <>, 2012-2013. # , 2011. # Romain DEP. , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: Adalberto Rodrigues \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,6 +32,20 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Impossible de déplacer %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Impossible de renommer le fichier" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Aucun fichier n'a été chargé. Erreur inconnue" @@ -67,8 +82,8 @@ msgid "Failed to write to disk" msgstr "Erreur d'écriture sur le disque" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Espace disponible insuffisant" +msgid "Not enough storage available" +msgstr "Plus assez d'espace de stockage disponible" #: ajax/upload.php:83 msgid "Invalid directory." @@ -78,51 +93,52 @@ msgstr "Dossier invalide." msgid "Files" msgstr "Fichiers" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Ne plus partager" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Supprimer de façon définitive" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Supprimer" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Renommer" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "En cours" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} existe déjà" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "remplacer" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "Suggérer un nom" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "annuler" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} a été remplacé" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "annuler" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} a été remplacé par {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "effectuer l'opération de suppression" @@ -148,78 +164,74 @@ msgstr "Votre espage de stockage est plein, les fichiers ne peuvent plus être t msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Votre espace de stockage est presque plein ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Erreur de chargement" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Fermer" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "En cours" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fichier en cours de téléchargement" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} fichiers téléversés" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Chargement annulé." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "L'URL ne peut-être vide" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Taille" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modifié" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 dossier" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dossiers" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fichier" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fichiers" @@ -276,8 +288,8 @@ msgid "From link" msgstr "Depuis le lien" #: templates/index.php:40 -msgid "Trash" -msgstr "Corbeille" +msgid "Deleted files" +msgstr "Fichiers supprimés" #: templates/index.php:46 msgid "Cancel upload" @@ -291,6 +303,10 @@ msgstr "Il n'y a rien ici ! Envoyez donc quelque chose :)" msgid "Download" msgstr "Télécharger" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Ne plus partager" + #: templates/index.php:105 msgid "Upload too large" msgstr "Fichier trop volumineux" diff --git a/l10n/fr/files_encryption.po b/l10n/fr/files_encryption.po index d20576ced1228dbb860de1442574a73136184d96..7c41515ad8892bb77f6379ecf7099beb3bdf423f 100644 --- a/l10n/fr/files_encryption.po +++ b/l10n/fr/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,21 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Veuillez vous connecter depuis votre client de synchronisation ownCloud et changer votre mot de passe de chiffrement pour finaliser la conversion." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Mode de chiffrement changé en chiffrement côté client" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Convertir le mot de passe de chiffrement en mot de passe de connexion" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Veuillez vérifier vos mots de passe et réessayer." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Chiffrement" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Le chiffrement des fichiers est activé" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Les fichiers de types suivants ne seront pas chiffrés :" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Ne pas chiffrer les fichiers dont les types sont les suivants :" #: templates/settings.php:12 msgid "None" diff --git a/l10n/fr/files_external.po b/l10n/fr/files_external.po index 02af3bd71fbdbc98eaf21d8b631f466f24c7be38..b9fb1d7794a081dcc4fc17e4faea75d669d0d330 100644 --- a/l10n/fr/files_external.po +++ b/l10n/fr/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-31 00:04+0100\n" -"PO-Revision-Date: 2012-12-30 10:41+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Romain DEP. \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de pas msgid "Error configuring Google Drive storage" msgstr "Erreur lors de la configuration du support de stockage Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Attention : \"smbclient\" n'est pas installé. Le montage des partages CIFS/SMB n'est pas disponible. Contactez votre administrateur système pour l'installer." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "Autoriser les utilisateurs à monter leur propre stockage externe" msgid "SSL root certificates" msgstr "Certificats racine SSL" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importer un certificat racine" diff --git a/l10n/fr/files_trashbin.po b/l10n/fr/files_trashbin.po index a0b95c58b5c5ba57501b827abbd7feacc524213c..38e193af759165b016feaf6031bd6d3b3ef8ac28 100644 --- a/l10n/fr/files_trashbin.po +++ b/l10n/fr/files_trashbin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -19,35 +19,49 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Impossible d'effacer %s de façon permanente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Impossible de restaurer %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "effectuer l'opération de restauration" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "effacer définitivement le fichier" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Supprimer de façon définitive" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nom" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Effacé" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 dossier" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} dossiers" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fichier" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} fichiers" @@ -58,3 +72,7 @@ msgstr "Il n'y a rien ici. Votre corbeille est vide !" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Restaurer" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Supprimer" diff --git a/l10n/fr/files_versions.po b/l10n/fr/files_versions.po index 1fb4fdb1de209297593f8dbe4bd12951bed3412e..0bfce6ee9bc44f1252776c6566f7c66c5788b84e 100644 --- a/l10n/fr/files_versions.po +++ b/l10n/fr/files_versions.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Romain DEP. , 2012. +# Romain DEP. , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 14:02+0000\n" +"Last-Translator: Romain DEP. \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Impossible de restaurer %s" + +#: history.php:40 +msgid "success" +msgstr "succès" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Le fichier %s a été restauré dans sa version %s" + +#: history.php:49 +msgid "failure" +msgstr "échec" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Le fichier %s ne peut être restauré dans sa version %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Aucune ancienne version n'est disponible" + +#: history.php:73 +msgid "No path specified" +msgstr "Aucun chemin spécifié" + #: js/versions.js:16 msgid "History" msgstr "Historique" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Restaurez un fichier dans une version antérieure en cliquant sur son bouton de restauration" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionnage des fichiers" diff --git a/l10n/fr/lib.po b/l10n/fr/lib.po index 0ae131d5c58828d2520d52c605be7cc48e22f547..f90356b89fcfa92a96c162b2e7c7a68be1ec3501 100644 --- a/l10n/fr/lib.po +++ b/l10n/fr/lib.po @@ -4,14 +4,15 @@ # # Translators: # Geoffrey Guerrier , 2012. +# Robert Di Rosa <>, 2013. # Romain DEP. , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-25 00:05+0100\n" -"PO-Revision-Date: 2013-01-24 01:17+0000\n" -"Last-Translator: Romain DEP. \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +20,47 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Aide" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personnel" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Paramètres" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Utilisateurs" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Applications" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administration" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Téléchargement ZIP désactivé." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Les fichiers nécessitent d'être téléchargés un par un." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Retour aux Fichiers" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Les fichiers sélectionnés sont trop volumineux pour être compressés." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "impossible à déterminer" @@ -87,6 +88,108 @@ msgstr "Texte" msgid "Images" msgstr "Images" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Spécifiez un nom d'utilisateur pour l'administrateur." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Spécifiez un mot de passe administrateur." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Spécifiez un répertoire pour les données." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s entrez le nom d'utilisateur de la base de données." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s entrez le nom de la base de données." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s vous nez pouvez pas utiliser de points dans le nom de la base de données" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s spécifiez l'hôte de la base de données." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL invalide" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Vous devez spécifier soit le nom d'un compte existant, soit celui de l'administrateur." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nom d'utilisateur et/ou mot de passe de la base Oracle invalide" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nom d'utilisateur et/ou mot de passe de la base MySQL invalide" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Erreur de la base de données : \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "La requête en cause est : \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "L'utilisateur MySQL '%s'@'localhost' existe déjà." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Retirer cet utilisateur de la base MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "L'utilisateur MySQL '%s'@'%%' existe déjà" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Retirer cet utilisateur de la base MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "La requête en cause est : \"%s\", nom : %s, mot de passe : %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Veuillez vous référer au guide d'installation." + #: template.php:113 msgid "seconds ago" msgstr "à l'instant" @@ -139,16 +242,16 @@ msgstr "l'année dernière" msgid "years ago" msgstr "il y a plusieurs années" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s est disponible. Obtenez plus d'informations" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "À jour" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "la vérification des mises à jour est désactivée" diff --git a/l10n/fr/settings.po b/l10n/fr/settings.po index 926b1a0e082748497a3f073f59c5e132730a66f1..bbb9962f960422c90d09e77527a86cc6c89e9c4d 100644 --- a/l10n/fr/settings.po +++ b/l10n/fr/settings.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Adalberto Rodrigues , 2013. # Brice , 2012. # Cédric MARTIN , 2013. # Cyril Glapa , 2012. @@ -14,7 +15,7 @@ # Jan-Christoph Borchardt , 2011. # , 2012. # , 2012. -# Nahir Mohamed , 2012. +# Nahir Mohamed , 2012-2013. # , 2012. # Robert Di Rosa <>, 2012. # , 2011, 2012. @@ -24,8 +25,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -38,14 +39,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Impossible de charger la liste depuis l'App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Erreur d'authentification" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Impossible de modifier le nom d'affichage" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -87,17 +88,17 @@ msgstr "Requête invalide" msgid "Admins can't remove themself from the admin group" msgstr "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Impossible d'ajouter l'utilisateur au groupe %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Impossible de supprimer l'utilisateur du groupe %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Impossible de mettre à jour l'application" @@ -133,59 +134,265 @@ msgstr "Erreur" msgid "Updated" msgstr "Mise à jour effectuée avec succès" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Sauvegarde..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "supprimé" + +#: js/users.js:30 +msgid "undo" +msgstr "annuler" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Impossible de retirer l'utilisateur" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Groupes" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Groupe Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Supprimer" + +#: js/users.js:191 +msgid "add group" +msgstr "ajouter un groupe" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Un nom d'utilisateur valide doit être saisi" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Erreur lors de la création de l'utilisateur" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Un mot de passe valide doit être saisi" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Français" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Avertissement de sécurité" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Votre dossier data et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess fourni par ownCloud ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de manière à ce que le dossier data ne soit plus accessible ou bien de déplacer le dossier data en dehors du dossier racine des documents du serveur web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Avertissement, problème de configuration" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Veuillez vous référer au guide d'installation." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Module 'fileinfo' manquant" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Localisation non fonctionnelle" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "La connexion internet ne fonctionne pas" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Ce serveur ownCloud ne peut pas se connecter à internet. Cela signifie que certaines fonctionnalités, telles que l'utilisation de supports de stockage distants, les notifications de mises à jour, ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne marcheront pas non plus. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez utiliser toutes les fonctionnalités offertes par ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Exécute une tâche à chaque chargement de page" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php est enregistré en tant que service webcron. Veuillez appeler la page cron.php située à la racine du serveur ownCoud via http toute les minutes." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Utilise le service cron du système. Appelle le fichier cron.php du répertoire owncloud toutes les minutes grâce à une tâche cron du système." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Partage" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Activer l'API de partage" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Autoriser les applications à utiliser l'API de partage" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Autoriser les liens" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Autoriser les utilisateurs à partager des éléments publiquement à l'aide de liens" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Autoriser le repartage" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Autoriser les utilisateurs à partager des éléments qui ont été partagés avec eux" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Autoriser les utilisateurs à partager avec tout le monde" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Autoriser les utilisateurs à partager avec des utilisateurs de leur groupe uniquement" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Sécurité" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forcer HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Forcer les clients à se connecter à Owncloud via une connexion chiffrée." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Merci de vous connecter à cette instance Owncloud en HTTPS pour activer ou désactiver SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Niveau de log" + +#: templates/admin.php:223 +msgid "More" +msgstr "Plus" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Développé par la communauté ownCloud, le code source est publié sous license AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Ajoutez votre application" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Plus d'applications…" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Sélectionner une Application" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Voir la page des applications à l'url apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "Distribué sous licence , par " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Mettre à jour" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentation utilisateur" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentation administrateur" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentation en ligne" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Suivi de bugs" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Support commercial" @@ -194,116 +401,86 @@ msgstr "Support commercial" msgid "You have used %s of the available %s" msgstr "Vous avez utilisé %s des %s disponibles" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clients" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Télécharger le client de synchronisation pour votre ordinateur" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Télécharger le client Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Télécharger le client iOS" +msgid "Get the apps to sync your files" +msgstr "Obtenez les applications de synchronisation de vos fichiers" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Revoir le premier lancement de l'installeur" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Mot de passe" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Votre mot de passe a été changé" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Impossible de changer votre mot de passe" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Mot de passe actuel" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nouveau mot de passe" -#: templates/personal.php:28 -msgid "show" -msgstr "Afficher" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Changer de mot de passe" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nom affiché" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Votre nom d'affichage a bien été modifié" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Impossible de modifier votre nom d'affichage" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Changer le nom affiché" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Votre adresse e-mail" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Entrez votre adresse e-mail pour permettre la réinitialisation du mot de passe" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Langue" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Aidez à traduire" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Utiliser cette adresse pour vous connecter à ownCloud dans votre gestionnaire de fichiers" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Développé par la communauté ownCloud, le code source est publié sous license AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nom de la connexion" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Groupes" - #: templates/users.php:32 msgid "Create" msgstr "Créer" @@ -312,34 +489,26 @@ msgstr "Créer" msgid "Default Storage" msgstr "Support de stockage par défaut" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Illimité" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Autre" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Groupe Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Support de stockage" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "Changer le nom affiché" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "Changer le mot de passe" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Défaut" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Supprimer" diff --git a/l10n/fr/user_ldap.po b/l10n/fr/user_ldap.po index acc3b57fd7295f889bc1a76f174426a3d6350295..61d51d61cab2c179bf320738c8618efc57e4f95b 100644 --- a/l10n/fr/user_ldap.po +++ b/l10n/fr/user_ldap.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 20:10+0000\n" -"Last-Translator: jiminybillybob \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 14:02+0000\n" +"Last-Translator: Romain DEP. \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -220,8 +220,8 @@ msgid "Use TLS" msgstr "Utiliser TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ne pas utiliser pour les connexions SSL, car cela échouera." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "À ne pas utiliser pour les connexions LDAPS (cela échouera)." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/gl/core.po b/l10n/gl/core.po index c2a5a1d2f09f345a272038e314b680faea7c6567..20bf7af29eed21fd6261ec6e4a4b199eeb0fde9f 100644 --- a/l10n/gl/core.po +++ b/l10n/gl/core.po @@ -4,15 +4,16 @@ # # Translators: # antiparvos , 2012. +# , 2013. # , 2012. # Xosé M. Lamas , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -53,8 +54,9 @@ msgid "No category to add?" msgstr "Sen categoría que engadir?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Esta categoría xa existe: " +#, php-format +msgid "This category already exists: %s" +msgstr "Esta categoría xa existe: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +160,59 @@ msgstr "novembro" msgid "December" msgstr "decembro" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Configuracións" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "hai 1 minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "hai {minutes} minutos" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "hai 1 hora" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "hai {hours} horas" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hoxe" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "onte" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "hai {days} días" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "último mes" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "hai {months} meses" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "meses atrás" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "último ano" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "anos atrás" @@ -240,8 +242,8 @@ msgid "The object type is not specified." msgstr "Non se especificou o tipo de obxecto." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Erro" @@ -253,15 +255,15 @@ msgstr "Non se especificou o nome do aplicativo." msgid "The required file {file} is not installed!" msgstr "Non está instalado o ficheiro {file} que se precisa" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" msgstr "Compartir" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" +#: js/share.js:93 +msgid "Share" +msgstr "Compartir" -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Produciuse un erro ao compartir" @@ -357,23 +359,23 @@ msgstr "eliminar" msgid "share" msgstr "compartir" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protexido con contrasinal" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Produciuse un erro ao retirar a data de caducidade" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Produciuse un erro ao definir a data de caducidade" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Enviando..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Correo enviado" @@ -382,13 +384,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "A actualización non foi satisfactoria, informe deste problema á comunidade de ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Restabelecer o contrasinal de ownCloud" @@ -469,7 +471,7 @@ msgstr "Editar categorías" msgid "Add" msgstr "Engadir" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Aviso de seguranza" @@ -479,71 +481,75 @@ msgid "" "OpenSSL extension." msgstr "Non hai un xerador de números ao chou dispoñíbel. Active o engadido de OpenSSL para PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Sen un xerador seguro de números ao chou podería acontecer que predicindo as cadeas de texto de reinicio de contrasinais se afagan coa súa conta." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "O seu directorio de datos e os ficheiros probabelmente sexan accesíbeis desde a Internet xa que o ficheiro .htaccess non está a traballar." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través da Internet. O ficheiro .htaccess que fornece ownCloud non está a empregarse. Suxerimoslle que configure o seu servidor web de tal xeito que o cartafol de datos non estea accesíbel ou mova o cartafol de datos fora do directorio raíz de datos do servidor web." +"For information how to properly configure your server, please see the documentation." +msgstr "Para obter información sobre como como configurar axeitadamente o seu servidor, vexa a documentación." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crear unha contra de administrador" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avanzado" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Cartafol de datos" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurar a base de datos" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vai ser utilizado" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Usuario da base de datos" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Contrasinal da base de datos" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nome da base de datos" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Táboa de espazos da base de datos" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Servidor da base de datos" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Rematar a configuración" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servizos web baixo o seu control" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Desconectar" @@ -575,7 +581,7 @@ msgstr "Conectar" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Accesos alternativos" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index d309fb232db89069475207ffc410dbb7236130bc..fad20c08414893a954fb69ac4201ef153f6a77a8 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -4,14 +4,15 @@ # # Translators: # antiparvos , 2012-2013. +# , 2013. # Xosé M. Lamas , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +20,38 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Non se moveu %s - Xa existe un ficheiro con ese nome." + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Non foi posíbel mover %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Non é posíbel renomear o ficheiro" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" -msgstr "Non se subiu ningún ficheiro. Erro descoñecido." +msgstr "Non foi enviado ningún ficheiro. Produciuse un erro descoñecido." #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" -msgstr "Non hai erros. O ficheiro enviouse correctamente" +msgstr "Non se produciu ningún erro. O ficheiro enviouse correctamente" #: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "O ficheiro subido excede a directiva indicada polo tamaño_máximo_de_subida de php.ini" +msgstr "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:" #: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" -msgstr "O ficheiro enviado supera a directiva MAX_FILE_SIZE que foi indicada no formulario HTML" +msgstr "O ficheiro enviado excede a directiva MAX_FILE_SIZE que foi indicada no formulario HTML" #: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" @@ -52,11 +67,11 @@ msgstr "Falta un cartafol temporal" #: ajax/upload.php:34 msgid "Failed to write to disk" -msgstr "Erro ao escribir no disco" +msgstr "Produciuse un erro ao escribir no disco" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "O espazo dispoñíbel é insuficiente" +msgid "Not enough storage available" +msgstr "Non hai espazo de almacenamento abondo" #: ajax/upload.php:83 msgid "Invalid directory." @@ -66,148 +81,145 @@ msgstr "O directorio é incorrecto." msgid "Files" msgstr "Ficheiros" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Deixar de compartir" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Eliminar permanentemente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eliminar" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" -msgstr "Mudar o nome" +msgstr "Renomear" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendentes" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" -msgstr "xa existe un {new_name}" +msgstr "Xa existe un {new_name}" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "substituír" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "suxerir nome" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "substituír {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "desfacer" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" -msgstr "substituír {new_name} polo {old_name}" +msgstr "substituír {new_name} por {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "realizar a operación de eliminación" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "'.' é un nonme de ficheiro non válido" +msgstr "«.» é un nome de ficheiro incorrecto" #: js/files.js:56 msgid "File name cannot be empty." -msgstr "O nome de ficheiro non pode estar baldeiro" +msgstr "O nome de ficheiro non pode estar baleiro" #: js/files.js:64 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." -msgstr "Nome non válido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non se permiten." +msgstr "Nome incorrecto, non se permite «\\», «/», «<», «>», «:», «\"», «|», «?» e «*»." #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Está a prepararse a súa descarga. Isto pode levar bastante tempo se os ficheiros son grandes." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes" +msgstr "Non foi posíbel enviar o ficheiro pois ou é un directorio ou ten 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" -msgstr "Erro na subida" +msgstr "Produciuse un erro no envío" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Pechar" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendentes" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" -msgstr "1 ficheiro subíndose" +msgstr "Enviándose 1 ficheiro" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" -msgstr "{count} ficheiros subíndose" +msgstr "Enviandose {count} ficheiros" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." -msgstr "Subida cancelada." +msgstr "Envío cancelado." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida." +msgstr "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." -msgstr "URL non pode quedar baleiro." +msgstr "O URL non pode quedar baleiro." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "Nome de cartafol non válido. O uso de 'Shared' está reservado por Owncloud" +msgstr "Nome de cartafol incorrecto. O uso de «Shared» está reservado por Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamaño" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 cartafol" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} cartafoles" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ficheiros" @@ -221,11 +233,11 @@ msgstr "Manexo de ficheiro" #: templates/admin.php:7 msgid "Maximum upload size" -msgstr "Tamaño máximo de envío" +msgstr "Tamaño máximo do envío" #: templates/admin.php:10 msgid "max. possible: " -msgstr "máx. posible: " +msgstr "máx. posíbel: " #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." @@ -241,7 +253,7 @@ msgstr "0 significa ilimitado" #: templates/admin.php:22 msgid "Maximum input size for ZIP files" -msgstr "Tamaño máximo de descarga para os ZIP" +msgstr "Tamaño máximo de descarga para os ficheiros ZIP" #: templates/admin.php:26 msgid "Save" @@ -261,24 +273,28 @@ msgstr "Cartafol" #: templates/index.php:14 msgid "From link" -msgstr "Dende a ligazón" +msgstr "Desde a ligazón" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Ficheiros eliminados" #: templates/index.php:46 msgid "Cancel upload" -msgstr "Cancelar a subida" +msgstr "Cancelar o envío" #: templates/index.php:59 msgid "Nothing in here. Upload something!" -msgstr "Nada por aquí. Envía algo." +msgstr "Aquí non hai nada. Envíe algo." #: templates/index.php:73 msgid "Download" msgstr "Descargar" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Deixar de compartir" + #: templates/index.php:105 msgid "Upload too large" msgstr "Envío demasiado grande" @@ -287,11 +303,11 @@ msgstr "Envío demasiado grande" msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." -msgstr "Os ficheiros que trata de subir superan o tamaño máximo permitido neste servidor" +msgstr "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor" #: templates/index.php:112 msgid "Files are being scanned, please wait." -msgstr "Estanse analizando os ficheiros. Agarda." +msgstr "Estanse analizando os ficheiros. Agarde." #: templates/index.php:115 msgid "Current scanning" @@ -299,4 +315,4 @@ msgstr "Análise actual" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Anovando a caché do sistema de ficheiros..." diff --git a/l10n/gl/files_encryption.po b/l10n/gl/files_encryption.po index 2d7038a12497b63b3fe9f3f7670e0250f83c8435..0f66e72f332dd11079286af03a730b473b43955b 100644 --- a/l10n/gl/files_encryption.po +++ b/l10n/gl/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # Xosé M. Lamas , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 10:01+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,44 +19,22 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Cifrado" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "O cifrado de ficheiros está activado" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Os seguintes tipos de ficheiros non van seren cifrados:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Excluír os seguintes tipos de ficheiros do cifrado:" #: templates/settings.php:12 msgid "None" -msgstr "Nada" +msgstr "Ningún" diff --git a/l10n/gl/files_external.po b/l10n/gl/files_external.po index 9bc476ece0bb23fddd124fc5ebab3fd42f4b46b3..b98c8ff31331ade486787707071c0977bc4aaeab 100644 --- a/l10n/gl/files_external.po +++ b/l10n/gl/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-01 00:04+0100\n" -"PO-Revision-Date: 2012-12-31 08:40+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Forneza unha chave correcta e segreda do Dropbox." msgid "Error configuring Google Drive storage" msgstr "Produciuse un erro ao configurar o almacenamento en Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Aviso: «smbclient» non está instalado. Non é posibel a montaxe de comparticións CIFS/SMB. Consulte co administrador do sistema para instalalo." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "Permitir aos usuarios montar os seus propios almacenamentos externos" msgid "SSL root certificates" msgstr "Certificados SSL root" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importar o certificado root" diff --git a/l10n/gl/files_sharing.po b/l10n/gl/files_sharing.po index f6b83fbd6548c6a18eaad847114f7cef4446f6f0..d665b511c6dd0986db38ebc2d6dcc3679d427c9b 100644 --- a/l10n/gl/files_sharing.po +++ b/l10n/gl/files_sharing.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-11-30 00:03+0100\n" -"PO-Revision-Date: 2012-11-29 16:08+0000\n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 13:00+0000\n" "Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -27,24 +27,24 @@ msgstr "Contrasinal" msgid "Submit" msgstr "Enviar" -#: templates/public.php:17 +#: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" msgstr "%s compartiu o cartafol %s con vostede" -#: templates/public.php:19 +#: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" msgstr "%s compartiu o ficheiro %s con vostede" -#: templates/public.php:22 templates/public.php:38 +#: templates/public.php:14 templates/public.php:30 msgid "Download" msgstr "Descargar" -#: templates/public.php:37 +#: templates/public.php:29 msgid "No preview available for" msgstr "Sen vista previa dispoñíbel para" -#: templates/public.php:43 +#: templates/public.php:35 msgid "web services under your control" msgstr "servizos web baixo o seu control" diff --git a/l10n/gl/files_trashbin.po b/l10n/gl/files_trashbin.po index 8f00ed2b31d1723b18a46ba2bf12088ba777c41c..4ea502436cf3cc9b94b33a62943f6c143db91769 100644 --- a/l10n/gl/files_trashbin.po +++ b/l10n/gl/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Non foi posíbel eliminar %s permanente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Non foi posíbel restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "realizar a operación de restauración" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "eliminar o ficheiro permanentemente" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Eliminar permanentemente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nome" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Eliminado" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 cartafol" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} cartafoles" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ficheiro" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} ficheiros" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Aquí non hai nada. O cesto do lixo está baleiro!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Restablecer" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Eliminar" diff --git a/l10n/gl/files_versions.po b/l10n/gl/files_versions.po index c0ac98462b7be16b8eba8f6bed00c49ef0179d4c..a468b7082b8bbdd7767de2e2a246deeb4f23a133 100644 --- a/l10n/gl/files_versions.po +++ b/l10n/gl/files_versions.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # Miguel Branco , 2012. # Xosé M. Lamas , 2012. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-15 00:05+0100\n" +"PO-Revision-Date: 2013-02-14 09:30+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,10 +21,45 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Non foi posíbel reverter: %s" + +#: history.php:40 +msgid "success" +msgstr "feito" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "O ficheiro %s foi revertido á versión %s" + +#: history.php:49 +msgid "failure" +msgstr "produciuse un fallo" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Non foi posíbel reverter o ficheiro %s á versión %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Non hai versións antigas dispoñíbeis" + +#: history.php:73 +msgid "No path specified" +msgstr "Non foi indicada a ruta" + #: js/versions.js:16 msgid "History" msgstr "Historial" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Reverta un ficheiro a unha versión anterior premendo no botón reversión" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Sistema de versión de ficheiros" diff --git a/l10n/gl/lib.po b/l10n/gl/lib.po index c6fc161311af6285d7e8bcae12eaa71340128629..a57652a06d860a811fa4b59f4e9206c70a7f2132 100644 --- a/l10n/gl/lib.po +++ b/l10n/gl/lib.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # Miguel Branco , 2012. # Xosé M. Lamas , 2012-2013. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 06:11+0000\n" -"Last-Translator: Xosé M. Lamas \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,49 +21,49 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Axuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Persoal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Configuracións" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usuarios" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicativos" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administración" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." -msgstr "As descargas ZIP están desactivadas" +msgstr "As descargas ZIP están desactivadas." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." -msgstr "Os ficheiros necesitan seren descargados de un en un." +msgstr "Os ficheiros necesitan seren descargados dun en un." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Volver aos ficheiros" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Os ficheiros seleccionados son demasiado grandes como para xerar un ficheiro zip." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" -msgstr "non puido ser determinado" +msgstr "non foi posíbel determinalo" #: json.php:28 msgid "Application is not enabled" @@ -88,9 +89,111 @@ msgstr "Texto" msgid "Images" msgstr "Imaxes" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Estabeleza un nome de usuario administrador" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Estabeleza un contrasinal de administrador" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especifique un cartafol de datos." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s introduza o nome de usuario da base de datos" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s introduza o nome da base de datos" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s non se poden empregar puntos na base de datos" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s estabeleza o servidor da base de datos" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nome de usuario e/ou contrasinal PostgreSQL incorrecto" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Deberá introducir unha conta existente ou o administrador." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nome de usuario e/ou contrasinal Oracle incorrecto" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nome de usuario e/ou contrasinal MySQL incorrecto" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Produciuse un erro na base de datos: «%s»" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "A orde ofensiva foi: «%s»" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "O usuario MySQL '%s'@'localhost' xa existe." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Omitir este usuario de MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "O usuario MySQL «%s»@«%%» xa existe." + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Omitir este usuario de MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "A orde ofensiva foi: «%s», nome: %s, contrasinal: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "O seu servidor web non está aínda configurado adecuadamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Volva comprobar as guías de instalación" + #: template.php:113 msgid "seconds ago" -msgstr "hai segundos" +msgstr "segundos atrás" #: template.php:114 msgid "1 minute ago" @@ -140,16 +243,16 @@ msgstr "último ano" msgid "years ago" msgstr "anos atrás" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s está dispoñíbel. Obtéña máis información" -#: updater.php:77 +#: updater.php:81 msgid "up to date" -msgstr "ao día" +msgstr "actualizado" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "a comprobación de actualizacións está desactivada" diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po index ca408e9994364260d8aafe79ce9603913c9bcb47..b8aca73a8c097537fbafa67fdb57bb6d9541e4bd 100644 --- a/l10n/gl/settings.po +++ b/l10n/gl/settings.po @@ -4,14 +4,17 @@ # # Translators: # antiparvos , 2012. +# , 2012-2013. +# , 2013. # , 2012. +# Miguel Anxo Bouzada , 2013. # Xosé M. Lamas , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -24,14 +27,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Non foi posíbel cargar a lista desde a App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Produciuse un erro de autenticación" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Non é posíbel cambiar o nome visíbel" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -51,7 +54,7 @@ msgstr "Correo gardado" #: ajax/lostpassword.php:14 msgid "Invalid email" -msgstr "correo incorrecto" +msgstr "Correo incorrecto" #: ajax/removegroup.php:13 msgid "Unable to delete group" @@ -71,25 +74,25 @@ msgstr "Petición incorrecta" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "Os administradores non se pode eliminar a si mesmos do grupo admin" +msgstr "Os administradores non poden eliminarse a si mesmos do grupo admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Non é posíbel engadir o usuario ao grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Non é posíbel eliminar o usuario do grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Non foi posíbel actualizar o aplicativo." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Actualizar á {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -101,15 +104,15 @@ msgstr "Activar" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Agarde..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Actualizando..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Produciuse un erro mentres actualizaba o aplicativo" #: js/apps.js:87 msgid "Error" @@ -117,178 +120,354 @@ msgstr "Erro" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Actualizado" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Gardando..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "eliminado" + +#: js/users.js:30 +msgid "undo" +msgstr "desfacer" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Non é posíbel retirar o usuario" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupo Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Eliminar" + +#: js/users.js:191 +msgid "add group" +msgstr "engadir un grupo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Debe fornecer un nome de usuario" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Produciuse un erro ao crear o usuario" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Debe fornecer un contrasinal" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Galego" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Aviso de seguranza" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través da Internet. O ficheiro .htaccess que fornece ownCloud non está a empregarse. Suxerímoslle que configure o seu servidor web de tal xeito que o cartafol de datos non estea accesíbel ou mova o cartafol de datos fora do directorio raíz de datos do servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Configurar os avisos" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "O seu servidor web non está aínda configurado adecuadamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Volva comprobar as guías de instalación" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Non se atopou o módulo «fileinfo»" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Non se atopou o módulo de PHP «fileinfo». É recomendábel activar este módulo para obter os mellores resultados coa detección do tipo MIME." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "A configuración rexional non funciona" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "A conexión á Internet non funciona" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Este servidor ownCloud non ten conexión a Internet. Isto significa que algunhas das funcionalidades como a montaxe de almacenamento externo, as notificacións sobre actualizacións ou instalación de aplicativos de terceiros non funcionan. O acceso aos ficheiros de forma remota e o envío de mensaxes de notificación poderían non funcionar. Suxerímoslle que active a conexión a Internet deste servidor se quere dispor de todas as funcionalidades de ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Executar unha tarefa con cada páxina cargada" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php está rexistrado nun servizo de WebCron. Chame á página cron.php na raíz ownCloud unha vez por minuto a través de HTTP." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Use o servizo de sistema cron. Chame ao ficheiro cron.php no catfaol owncloud a través dun sistema de cronjob unna vez por minuto." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Compartindo" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Activar o API para compartir" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permitir que os aplicativos empreguen o API para compartir" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permitir ligazóns" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permitir que os usuarios compartan elementos ao público con ligazóns" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permitir compartir" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permitir que os usuarios compartan de novo os elementos compartidos con eles" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permitir que os usuarios compartan con calquera" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permitir que os usuarios compartan só cos usuarios dos seus grupos" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Seguranza" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forzar HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Forzar que os clientes se conecten a ownCloud empregando unha conexión cifrada" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Conectese a esta instancia ownCloud empregando HTTPS para activar ou desactivar o forzado de SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Rexistro" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nivel de rexistro" + +#: templates/admin.php:223 +msgid "More" +msgstr "Máis" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versión" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desenvolvido pola comunidade ownCloud, o código fonte está baixo a licenza AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Engada o seu aplicativo" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Máis aplicativos" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Escolla un aplicativo" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Consulte a páxina do aplicativo en apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenciado por" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualizar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentación do usuario" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentación do administrador" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentación na Rede" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Foro" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Seguemento de fallos" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Asistencia comercial" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" -msgstr "Te en uso %s do total dispoñíbel de %s" - -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Descargar clientes para escritorio" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Descargar clientes para Android" +msgstr "Ten en uso %s do total dispoñíbel de %s" #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Descargar clientes ra iOS" +msgid "Get the apps to sync your files" +msgstr "Obteña os aplicativos para sincronizar os seus ficheiros" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Amosar o axudante da primeira execución outra vez" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Contrasinal" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "O seu contrasinal foi cambiado" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Non é posíbel cambiar o seu contrasinal" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Contrasinal actual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Novo contrasinal" -#: templates/personal.php:28 -msgid "show" -msgstr "amosar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Cambiar o contrasinal" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Amosar o nome" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "O seu nome visíbel foi cambiado" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Non é posíbel cambiar o seu nome visíbel" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Cambiar o nome visíbel" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Correo" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "O seu enderezo de correo" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Escriba un enderezo de correo para activar a recuperación do contrasinal" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Axude na tradución" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Utilice este enderezo para conectarse ao seu ownCloud co administrador de ficheiros" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versión" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desenvolvido pola comunidade ownCloud, o código fonte está baixo a licenza AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupos" +msgstr "Nome de acceso" #: templates/users.php:32 msgid "Create" @@ -298,34 +477,26 @@ msgstr "Crear" msgid "Default Storage" msgstr "Almacenamento predeterminado" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Sen límites" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Outro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupo Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Almacenamento" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "cambiar o nome visíbel" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "estabelecer un novo contrasinal" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Predeterminado" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Eliminar" diff --git a/l10n/gl/user_ldap.po b/l10n/gl/user_ldap.po index fe74411b94149cfca21e6f36e5b7174157cb3cb4..af16ecd286b0090f45a92ac3f18ebc9e54c250d3 100644 --- a/l10n/gl/user_ldap.po +++ b/l10n/gl/user_ldap.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # Miguel Branco, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-16 00:04+0100\n" +"PO-Revision-Date: 2013-02-15 20:40+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,23 +22,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Non foi posíbel eliminar a configuración do servidor" #: ajax/testConfiguration.php:35 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "A configuración é correcta e pode estabelecerse a conexión." #: ajax/testConfiguration.php:37 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais." #: ajax/testConfiguration.php:40 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles" #: js/settings.js:66 msgid "Deletion failed" @@ -45,31 +46,31 @@ msgstr "Fallou o borrado" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Tomar os recentes axustes de configuración do servidor?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Manter os axustes?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Non é posíbel engadir a configuración do servidor" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "A proba de conexión foi satisfactoria" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "A proba de conexión fracasou" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Confirma que quere eliminar a configuración actual do servidor?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Confirmar a eliminación" #: templates/settings.php:8 msgid "" @@ -82,15 +83,15 @@ msgstr "Aviso: Os aplicativos user_ldap e user_webdavauth son incompatíb msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Aviso: O módulo PHP LDAP non está instalado, o servidor non funcionará. Consulte co administrador do sistema para instalalo." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Configuración do servidor" #: templates/settings.php:17 msgid "Add Server Configuration" -msgstr "" +msgstr "Engadir a configuración do servidor" #: templates/settings.php:21 msgid "Host" @@ -107,7 +108,7 @@ msgstr "DN base" #: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "Un DN base por liña" #: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" @@ -174,15 +175,15 @@ msgstr "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix»." #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Axustes da conexión" #: templates/settings.php:33 msgid "Configuration Active" -msgstr "" +msgstr "Configuración activa" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Se está sen marcar, omítese esta configuración." #: templates/settings.php:34 msgid "Port" @@ -190,33 +191,33 @@ msgstr "Porto" #: templates/settings.php:35 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Servidor da copia de seguranza (Réplica)" #: templates/settings.php:35 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Indicar un servidor de copia de seguranza opcional. Debe ser unha réplica do servidor principal LDAP/AD." #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Porto da copia de seguranza (Réplica)" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "Desactivar o servidor principal" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Cando está activado, ownCloud só se conectará ao servidor de réplica." #: templates/settings.php:38 msgid "Use TLS" msgstr "Usar TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Non empregalo para conexións SSL: fallará." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Non utilizalo ademais para conexións LDAPS xa que fallará." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -230,7 +231,7 @@ msgstr "Desactiva a validación do certificado SSL." msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." -msgstr "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud." +msgstr "Se a conexión só funciona con esta opción importe o certificado SSL do servidor LDAP no seu servidor ownCloud." #: templates/settings.php:40 msgid "Not recommended, use for testing only." @@ -242,7 +243,7 @@ msgstr "en segundos. Calquera cambio baleira a caché." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Axustes do directorio" #: templates/settings.php:45 msgid "User Display Name Field" @@ -258,15 +259,15 @@ msgstr "Base da árbore de usuarios" #: templates/settings.php:46 msgid "One User Base DN per line" -msgstr "" +msgstr "Un DN base de usuario por liña" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "Atributos de busca do usuario" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Opcional; un atributo por liña" #: templates/settings.php:48 msgid "Group Display Name Field" @@ -282,11 +283,11 @@ msgstr "Base da árbore de grupo" #: templates/settings.php:49 msgid "One Group Base DN per line" -msgstr "" +msgstr "Un DN base de grupo por liña" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "Atributos de busca do grupo" #: templates/settings.php:51 msgid "Group-Member association" @@ -294,7 +295,7 @@ msgstr "Asociación de grupos e membros" #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Atributos especiais" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/gl/user_webdavauth.po b/l10n/gl/user_webdavauth.po index 2004bb9b3c378d6e1430650310019f5e4a4d7e9f..e16010dc69f596348a9ddcbe32b4f701bdd98a61 100644 --- a/l10n/gl/user_webdavauth.po +++ b/l10n/gl/user_webdavauth.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2013. # , 2012. # Miguel Branco, 2012. # Xosé M. Lamas , 2013. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-19 00:04+0100\n" -"PO-Revision-Date: 2013-01-18 06:15+0000\n" -"Last-Translator: Xosé M. Lamas \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 11:20+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,9 +29,9 @@ msgstr "Autenticación WebDAV" msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "ownCloud enviará as credenciais do usuario a esta URL. Este conector comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais non válidas, e todas as outras respostas como credenciais válidas." +msgstr "ownCloud enviará as credenciais do usuario a este URL. Este engadido comproba a resposta e interpretará os códigos de estado HTTP 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas." diff --git a/l10n/he/core.po b/l10n/he/core.po index 2c90c77e73c3ae306ed5da0bdf60fdeb3424416b..612d193348fdc3838fa007a2acff48613bc10430 100644 --- a/l10n/he/core.po +++ b/l10n/he/core.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2013-02-24 12:10+0000\n" +"Last-Translator: Gilad Naaman \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,24 +22,24 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "המשתמש %s שיתף אתך קובץ" -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "המשתמש %s שיתף אתך תיקייה" -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "המשתמש %s שיתף אתך את הקובץ „%s“. ניתן להוריד את הקובץ מכאן: %s" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -55,8 +55,9 @@ msgid "No category to add?" msgstr "אין קטגוריה להוספה?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "קטגוריה זאת כבר קיימת: " +#, php-format +msgid "This category already exists: %s" +msgstr "הקטגוריה הבאה כבר קיימת: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -84,135 +85,135 @@ msgstr "לא נבחרו קטגוריות למחיקה" msgid "Error removing %s from favorites." msgstr "שגיאה בהסרת %s מהמועדפים." -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "יום ראשון" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "יום שני" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "יום שלישי" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "יום רביעי" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "יום חמישי" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "יום שישי" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "שבת" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "ינואר" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "פברואר" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "מרץ" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "אפריל" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "מאי" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "יוני" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "יולי" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "אוגוסט" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "ספטמבר" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "אוקטובר" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "נובמבר" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "דצמבר" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "הגדרות" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "שניות" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "לפני דקה אחת" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "לפני {minutes} דקות" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "לפני שעה" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "לפני {hours} שעות" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "היום" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "אתמול" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "לפני {days} ימים" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "חודש שעבר" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "לפני {months} חודשים" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "חודשים" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "שנה שעברה" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "שנים" @@ -242,8 +243,8 @@ msgid "The object type is not specified." msgstr "סוג הפריט לא צוין." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "שגיאה" @@ -255,15 +256,15 @@ msgstr "שם היישום לא צוין." msgid "The required file {file} is not installed!" msgstr "הקובץ הנדרש {file} אינו מותקן!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "שותף" + +#: js/share.js:93 msgid "Share" msgstr "שתף" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "שגיאה במהלך השיתוף" @@ -295,7 +296,7 @@ msgstr "שיתוף עם קישור" msgid "Password protect" msgstr "הגנה בססמה" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:46 templates/login.php:35 msgid "Password" msgstr "ססמה" @@ -359,23 +360,23 @@ msgstr "מחיקה" msgid "share" msgstr "שיתוף" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "מוגן בססמה" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "אירעה שגיאה בביטול תאריך התפוגה" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "אירעה שגיאה בעת הגדרת תאריך התפוגה" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "מתבצעת שליחה ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "הודעת הדוא״ל נשלחה" @@ -384,13 +385,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "תהליך העדכון לא הושלם בהצלחה. נא דווח את הבעיה בקהילת ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "תהליך העדכון הסתיים בהצלחה. עכשיו מנתב אותך אל ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "איפוס הססמה של ownCloud" @@ -410,7 +411,7 @@ msgstr "איפוס שליחת דוא״ל." msgid "Request failed!" msgstr "הבקשה נכשלה!" -#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:40 #: templates/login.php:28 msgid "Username" msgstr "שם משתמש" @@ -471,7 +472,7 @@ msgstr "עריכת הקטגוריות" msgid "Add" msgstr "הוספה" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "אזהרת אבטחה" @@ -481,71 +482,75 @@ msgid "" "OpenSSL extension." msgstr "אין מחולל מספרים אקראיים מאובטח, נא להפעיל את ההרחבה OpenSSL ב־PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "ללא מחולל מספרים אקראיים מאובטח תוקף יכול לנבא את מחרוזות איפוס הססמה ולהשתלט על החשבון שלך." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "תיקיית וקבצי המידע שלך כנראה נגישים מהאינטרנט מכיוון שקובץ ה.htaccess לא עובד." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "יתכן שתיקיית הנתונים והקבצים שלך נגישים דרך האינטרנט. קובץ ה־‎.htaccess שמסופק על ידי ownCloud כנראה אינו עובד. אנו ממליצים בחום להגדיר את שרת האינטרנט שלך בדרך שבה תיקיית הנתונים לא תהיה זמינה עוד או להעביר את תיקיית הנתונים מחוץ לספריית העל של שרת האינטרנט." +"For information how to properly configure your server, please see the documentation." +msgstr "לקבלת מידע להגדרה נכונה של השרת שלך, ראה את התיעוד." #: templates/installation.php:36 msgid "Create an admin account" msgstr "יצירת חשבון מנהל" -#: templates/installation.php:50 +#: templates/installation.php:54 msgid "Advanced" msgstr "מתקדם" -#: templates/installation.php:52 +#: templates/installation.php:56 msgid "Data folder" msgstr "תיקיית נתונים" -#: templates/installation.php:59 +#: templates/installation.php:65 msgid "Configure the database" msgstr "הגדרת מסד הנתונים" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:70 templates/installation.php:82 +#: templates/installation.php:93 templates/installation.php:104 msgid "will be used" msgstr "ינוצלו" -#: templates/installation.php:107 +#: templates/installation.php:117 msgid "Database user" msgstr "שם משתמש במסד הנתונים" -#: templates/installation.php:111 +#: templates/installation.php:122 msgid "Database password" msgstr "ססמת מסד הנתונים" -#: templates/installation.php:115 +#: templates/installation.php:127 msgid "Database name" msgstr "שם מסד הנתונים" -#: templates/installation.php:123 +#: templates/installation.php:137 msgid "Database tablespace" msgstr "מרחב הכתובות של מסד הנתונים" -#: templates/installation.php:129 +#: templates/installation.php:144 msgid "Database host" msgstr "שרת בסיס נתונים" -#: templates/installation.php:134 +#: templates/installation.php:150 msgid "Finish setup" msgstr "סיום התקנה" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "שירותי רשת בשליטתך" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "התנתקות" @@ -577,7 +582,7 @@ msgstr "כניסה" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "כניסות אלטרנטיביות" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/he/files.po b/l10n/he/files.po index 0c221283b67d42e43562f755ae9fe7aabd1f8738..569dbeb0daa1abe24a945d4d769e57a534dcec5f 100644 --- a/l10n/he/files.po +++ b/l10n/he/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2013-02-24 12:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,20 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "לא הועלה קובץ. טעות בלתי מזוהה." @@ -40,27 +54,27 @@ msgid "" "the HTML form" msgstr "הקובץ שהועלה חרג מההנחיה MAX_FILE_SIZE שצוינה בטופס ה־HTML" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "הקובץ שהועלה הועלה בצורה חלקית" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "לא הועלו קבצים" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "תיקייה זמנית חסרה" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "הכתיבה לכונן נכשלה" -#: ajax/upload.php:52 -msgid "Not enough space available" +#: ajax/upload.php:51 +msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -68,51 +82,52 @@ msgstr "" msgid "Files" msgstr "קבצים" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "הסר שיתוף" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "מחק לצמיתות" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "מחיקה" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "שינוי שם" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "ממתין" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} כבר קיים" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "החלפה" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "הצעת שם" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "ביטול" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} הוחלף" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "ביטול" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} הוחלף ב־{old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -138,78 +153,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "שגיאת העלאה" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "סגירה" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "ממתין" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "קובץ אחד נשלח" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} קבצים נשלחים" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "ההעלאה בוטלה." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "קישור אינו יכול להיות ריק." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "שם" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "גודל" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "זמן שינוי" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "תיקייה אחת" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} תיקיות" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "קובץ אחד" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} קבצים" @@ -266,7 +277,7 @@ msgid "From link" msgstr "מקישור" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -281,6 +292,10 @@ msgstr "אין כאן שום דבר. אולי ברצונך להעלות משהו msgid "Download" msgstr "הורדה" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "הסר שיתוף" + #: templates/index.php:105 msgid "Upload too large" msgstr "העלאה גדולה מידי" diff --git a/l10n/he/files_encryption.po b/l10n/he/files_encryption.po index 5347a271b671d438ba47fe16f8b5567f3ed0cebc..2c26e96cd12132ba40a314695fb7e2851af74528 100644 --- a/l10n/he/files_encryption.po +++ b/l10n/he/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "הצפנה" diff --git a/l10n/he/files_external.po b/l10n/he/files_external.po index 091bf8989260aa24a060205147f5cb44119ef6f3..24d976ecb8307f9800105818cf35aa8e7e2f7f5a 100644 --- a/l10n/he/files_external.po +++ b/l10n/he/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "נא לספק קוד יישום וסוד תקניים של Dropbox." msgid "Error configuring Google Drive storage" msgstr "אירעה שגיאה בעת הגדרת אחסון ב־Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "משתמשים" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "מחיקה" @@ -113,10 +113,10 @@ msgstr "הפעלת אחסון חיצוני למשתמשים" msgid "Allow users to mount their own external storage" msgstr "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "שורש אישורי אבטחת SSL " -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "ייבוא אישור אבטחת שורש" diff --git a/l10n/he/files_trashbin.po b/l10n/he/files_trashbin.po index cd565092350e4defbec2370f971334ca620adeaa..0f5b6dca9e8b53698eb68059b33efe9cdf13422d 100644 --- a/l10n/he/files_trashbin.po +++ b/l10n/he/files_trashbin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Gilad Naaman , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2013-02-24 12:30+0000\n" +"Last-Translator: Gilad Naaman \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,42 +18,60 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "בלתי אפשרי למחוק את %s לצמיתות" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "בלתי אפשרי לשחזר את %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "בצע פעולת שחזור" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "מחק קובץ לצמיתות" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "מחק לצמיתות" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "שם" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "נמחק" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "תיקייה אחת" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} תיקיות" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "קובץ אחד" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} קבצים" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "שום דבר כאן. סל המחזור שלך ריק!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "שחזר" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "מחיקה" diff --git a/l10n/he/files_versions.po b/l10n/he/files_versions.po index 15bb3e971b3234dddef98204cbe491893e4a51b7..4d1caaf1149da10aca5f11de69ff5c2edd76ba16 100644 --- a/l10n/he/files_versions.po +++ b/l10n/he/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -19,10 +19,45 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "היסטוריה" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "שמירת הבדלי גרסאות של קבצים" diff --git a/l10n/he/lib.po b/l10n/he/lib.po index 8383f3ccc95277107e84f50b9b63db36cc786349..743ad9d6d4bc684e31d53d25f88c009d7a1e1d35 100644 --- a/l10n/he/lib.po +++ b/l10n/he/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "עזרה" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "אישי" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "הגדרות" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "משתמשים" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "יישומים" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "מנהל" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "הורדת ZIP כבויה" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "יש להוריד את הקבצים אחד אחרי השני." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "חזרה לקבצים" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "הקבצים הנבחרים גדולים מידי ליצירת קובץ zip." @@ -87,6 +87,108 @@ msgstr "טקסט" msgid "Images" msgstr "תמונות" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "שניות" @@ -139,16 +241,16 @@ msgstr "שנה שעברה" msgid "years ago" msgstr "שנים" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s זמין. קבלת מידע נוסף" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "עדכני" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "בדיקת עדכונים מנוטרלת" diff --git a/l10n/he/settings.po b/l10n/he/settings.po index 018aebd9f602c48d5111a9f9983882d6df35e5cc..97fff33879b667c0ef71bfbd13e8348de033e30f 100644 --- a/l10n/he/settings.po +++ b/l10n/he/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -25,12 +25,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "לא ניתן לטעון רשימה מה־App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "שגיאת הזדהות" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -74,17 +74,17 @@ msgstr "בקשה לא חוקית" msgid "Admins can't remove themself from the admin group" msgstr "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "לא ניתן להוסיף משתמש לקבוצה %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "לא ניתן להסיר משתמש מהקבוצה %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -120,59 +120,265 @@ msgstr "שגיאה" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "שומר.." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "ביטול" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "קבוצות" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "מנהל הקבוצה" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "מחיקה" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "עברית" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "אזהרת אבטחה" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "יתכן שתיקיית הנתונים והקבצים שלך נגישים דרך האינטרנט. קובץ ה־‎.htaccess שמסופק על ידי ownCloud כנראה אינו עובד. אנו ממליצים בחום להגדיר את שרת האינטרנט שלך בדרך שבה תיקיית הנתונים לא תהיה זמינה עוד או להעביר את תיקיית הנתונים מחוץ לספריית העל של שרת האינטרנט." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "יותר" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "גרסא" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "פותח על די קהילתownCloud, קוד המקור מוגן ברישיון AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "הוספת היישום שלך" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "יישומים נוספים" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "בחירת יישום" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "צפה בעמוד הישום ב apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "ברישיון לטובת " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "עדכון" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "תיעוד משתמש" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "תיעוד מנהלים" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "תיעוד מקוון" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "פורום" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "תמיכה בתשלום" @@ -181,116 +387,86 @@ msgstr "תמיכה בתשלום" msgid "You have used %s of the available %s" msgstr "השתמשת ב־%s מתוך %s הזמינים לך" -#: templates/personal.php:12 -msgid "Clients" -msgstr "לקוחות" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "הורד לתוכנה למחשב" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "הורד תוכנה לאנדרואיד" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "הורד תוכנה לiOS" +msgid "Get the apps to sync your files" +msgstr "השג את האפליקציות על מנת לסנכרן את הקבצים שלך" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "ססמה" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "הססמה שלך הוחלפה" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "לא ניתן לשנות את הססמה שלך" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "ססמה נוכחית" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "ססמה חדשה" -#: templates/personal.php:28 -msgid "show" -msgstr "הצגה" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "שינוי ססמה" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "דוא״ל" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "כתובת הדוא״ל שלך" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "נא למלא את כתובת הדוא״ל שלך כדי לאפשר שחזור ססמה" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "פה" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "עזרה בתרגום" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "השתמש בכתובת זאת על מנת להתחבר אל ownCloud דרך סייר קבצים." -#: templates/personal.php:85 -msgid "Version" -msgstr "גרסא" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "פותח על די קהילתownCloud, קוד המקור מוגן ברישיון AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "קבוצות" - #: templates/users.php:32 msgid "Create" msgstr "יצירה" @@ -299,34 +475,26 @@ msgstr "יצירה" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "אחר" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "מנהל הקבוצה" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "מחיקה" diff --git a/l10n/he/user_ldap.po b/l10n/he/user_ldap.po index 54ede62468b4f439e868cd118d5f5c855159e387..0052056c210cb87c195f66072f24284b51a9374c 100644 --- a/l10n/he/user_ldap.po +++ b/l10n/he/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2013-02-24 12:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -22,17 +22,17 @@ msgstr "" msgid "Failed to delete the server configuration" msgstr "" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" msgstr "" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." msgstr "" -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." @@ -87,224 +87,224 @@ msgstr "" msgid "Server configuration" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "מארח" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "DN משתמש" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "סיסמא" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "לגישה אנונימית, השאר את הDM והסיסמא ריקים." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "סנן כניסת משתמש" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "סנן רשימת משתמשים" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "סנן קבוצה" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" -msgstr "" +msgstr "פורט" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "בשניות. שינוי מרוקן את המטמון." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" msgstr "" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "בבתים" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "עזרה" diff --git a/l10n/hi/core.po b/l10n/hi/core.po index d41343f3c04ebd558b5a72eeb21777073bea77e6..1cdf7d56f60a62ad0d2285312ddb1e4ab7e6372d 100644 --- a/l10n/hi/core.po +++ b/l10n/hi/core.po @@ -4,14 +4,14 @@ # # Translators: # Omkar Tapale , 2012. -# Sanjay Rabidas , 2012. +# Sanjay Rabidas , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:52+0000\n" +"Last-Translator: Sanjay Rabidas \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -52,7 +52,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -157,59 +158,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" -msgstr "" +msgstr "सेटिंग्स" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "" @@ -252,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" +#: js/share.js:93 +msgid "Share" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -356,23 +357,23 @@ msgstr "" msgid "share" msgstr "" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -434,15 +435,15 @@ msgstr "" #: strings.php:5 msgid "Personal" -msgstr "" +msgstr "यक्तिगत" #: strings.php:6 msgid "Users" -msgstr "" +msgstr "उपयोगकर्ता" #: strings.php:7 msgid "Apps" -msgstr "" +msgstr "Apps" #: strings.php:8 msgid "Admin" @@ -450,7 +451,7 @@ msgstr "" #: strings.php:9 msgid "Help" -msgstr "" +msgstr "सहयोग" #: templates/403.php:12 msgid "Access forbidden" @@ -468,7 +469,7 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -478,73 +479,77 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "व्यवस्थापक खाता बनाएँ" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "उन्नत" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" -msgstr "" +msgstr "डाटा फोल्डर" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "डेटाबेस कॉन्फ़िगर करें " -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" -msgstr "" +msgstr "उपयोग होगा" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "डेटाबेस उपयोगकर्ता" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "डेटाबेस पासवर्ड" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" -msgstr "" +msgstr "डेटाबेस का नाम" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "सेटअप समाप्त करे" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" -msgstr "" +msgstr "लोग आउट" #: templates/login.php:10 msgid "Automatic logon rejected!" @@ -566,7 +571,7 @@ msgstr "" #: templates/login.php:41 msgid "remember" -msgstr "" +msgstr "याद रखें" #: templates/login.php:43 msgid "Log in" diff --git a/l10n/hi/files.po b/l10n/hi/files.po index e0189f4da40cdc7de6186b1c3d3c733cb6ab3bf8..7469b9e6c3f9be6f5e8ffa26c49ae3df35b3e211 100644 --- a/l10n/hi/files.po +++ b/l10n/hi/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,20 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -53,7 +67,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -148,64 +163,60 @@ msgstr "" msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:272 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:311 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:314 js/files.js:369 js/files.js:384 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:387 js/files.js:422 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:496 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:569 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:574 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:948 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:949 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:950 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:974 +#: js/files.js:969 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:971 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:979 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:981 msgid "{count} files" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/hi/files_encryption.po b/l10n/hi/files_encryption.po index 82eea01a3f32e05169ef1c9c86e23b9d199e99df..94768da1fcc82e1d63b9dfbd2d662c3d1efe9bc3 100644 --- a/l10n/hi/files_encryption.po +++ b/l10n/hi/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/hi/files_external.po b/l10n/hi/files_external.po index acf75ea681a6c26feacb9b7af074b38eb92d4aba..e5c058cbf9db278031e1412934f482d2af67bd7a 100644 --- a/l10n/hi/files_external.po +++ b/l10n/hi/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:54+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:413 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:414 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -96,10 +96,10 @@ msgstr "" #: templates/settings.php:95 msgid "Users" -msgstr "" +msgstr "उपयोगकर्ता" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:153 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hi/files_trashbin.po b/l10n/hi/files_trashbin.po index fad204d07398b9c61ea74dbc69922d4c076afe68..2f956fdfd702d3d2be86decc0c34faa3828c2b50 100644 --- a/l10n/hi/files_trashbin.po +++ b/l10n/hi/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/hi/files_versions.po b/l10n/hi/files_versions.po index 293e4b558a76e816591fda14239c9bca26b1a55b..65790b4d6ba44649b41bd3439632030c98cb04e4 100644 --- a/l10n/hi/files_versions.po +++ b/l10n/hi/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/hi/lib.po b/l10n/hi/lib.po index 9cb97532356ba2242da5f0b901f1887de2557bca..a2be65c48546fb2f56182826947a4cbf5f237273 100644 --- a/l10n/hi/lib.po +++ b/l10n/hi/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" -msgstr "" +msgstr "सहयोग" -#: app.php:308 +#: app.php:362 msgid "Personal" -msgstr "" +msgstr "यक्तिगत" -#: app.php:313 +#: app.php:373 msgid "Settings" -msgstr "" +msgstr "सेटिंग्स" -#: app.php:318 +#: app.php:385 msgid "Users" -msgstr "" +msgstr "उपयोगकर्ता" -#: app.php:325 +#: app.php:398 msgid "Apps" -msgstr "" +msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/hi/settings.po b/l10n/hi/settings.po index b0e88f95c9b086bee71ba6b070be73feb9468566..6598846cc3316d904fd6c36ffcae4375e3c04483 100644 --- a/l10n/hi/settings.po +++ b/l10n/hi/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -21,12 +21,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,59 +116,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -177,116 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "पासवर्ड" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "नया पासवर्ड" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/hi/user_ldap.po b/l10n/hi/user_ldap.po index 7eb23a9a108c9d6cfd5678382c119114219b3054..8010b1bb74bafdba8de8dd8f5780eaf95d3df40f 100644 --- a/l10n/hi/user_ldap.po +++ b/l10n/hi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:54+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 @@ -306,4 +306,4 @@ msgstr "" #: templates/settings.php:62 msgid "Help" -msgstr "" +msgstr "सहयोग" diff --git a/l10n/hr/core.po b/l10n/hr/core.po index c61e19fa2b0119af17aa857bafe3c4d56282860c..2c13cde4da86b29ac96174e12e8b13ad8933fad4 100644 --- a/l10n/hr/core.po +++ b/l10n/hr/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -54,8 +54,9 @@ msgid "No category to add?" msgstr "Nemate kategorija koje možete dodati?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ova kategorija već postoji: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -159,59 +160,59 @@ msgstr "Studeni" msgid "December" msgstr "Prosinac" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Postavke" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekundi prije" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "danas" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "jučer" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "prošli mjesec" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "mjeseci" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "prošlu godinu" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "godina" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Pogreška" @@ -254,15 +255,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Podijeli" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Podijeli" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Greška prilikom djeljenja" @@ -358,23 +359,23 @@ msgstr "izbriši" msgid "share" msgstr "djeli" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Zaštita lozinkom" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Greška prilikom brisanja datuma isteka" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Greška prilikom postavljanja datuma isteka" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -389,7 +390,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud resetiranje lozinke" @@ -470,7 +471,7 @@ msgstr "Uredi kategorije" msgid "Add" msgstr "Dodaj" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -480,71 +481,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Stvori administratorski račun" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Dodatno" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Mapa baze podataka" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfiguriraj bazu podataka" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "će se koristiti" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Korisnik baze podataka" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Lozinka baze podataka" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Ime baze podataka" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Database tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Poslužitelj baze podataka" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Završi postavljanje" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "web usluge pod vašom kontrolom" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Odjava" diff --git a/l10n/hr/files.po b/l10n/hr/files.po index d7b7d81a29dab3451a4c95c0c50589df8760d750..34485e74bddd976f54dd8dec3150e1c3de36039a 100644 --- a/l10n/hr/files.po +++ b/l10n/hr/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -56,7 +70,7 @@ msgid "Failed to write to disk" msgstr "Neuspjelo pisanje na disk" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -67,51 +81,52 @@ msgstr "" msgid "Files" msgstr "Datoteke" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Prekini djeljenje" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Briši" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Promjeni ime" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "U tijeku" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "zamjeni" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "predloži ime" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "odustani" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "vrati" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,78 +152,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nemoguće poslati datoteku jer je prazna ili je direktorij" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Pogreška pri slanju" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zatvori" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "U tijeku" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 datoteka se učitava" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Slanje poništeno." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Naziv" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Veličina" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Zadnja promjena" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -265,7 +276,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Nema ničega u ovoj mapi. Pošalji nešto!" msgid "Download" msgstr "Preuzmi" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Prekini djeljenje" + #: templates/index.php:105 msgid "Upload too large" msgstr "Prijenos je preobiman" diff --git a/l10n/hr/files_encryption.po b/l10n/hr/files_encryption.po index 9b86d0ed1f18c43a6237f067cef9116305ee14a4..434831e8abeb6c88e8cee096b634ed14bc238bc3 100644 --- a/l10n/hr/files_encryption.po +++ b/l10n/hr/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/hr/files_external.po b/l10n/hr/files_external.po index c221796fa033ad271a7a6f58261bed6a23add70c..f15f1efe6498a3ca78588ed4c4cde2ad8f452766 100644 --- a/l10n/hr/files_external.po +++ b/l10n/hr/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Korisnici" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Obriši" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hr/files_trashbin.po b/l10n/hr/files_trashbin.po index 6a7bfdabab6e7f07356019117366fe35b6234e67..30fa8bb0b29e697a1384ec8685dd0b93fb648ea1 100644 --- a/l10n/hr/files_trashbin.po +++ b/l10n/hr/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Ime" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Obriši" diff --git a/l10n/hr/files_versions.po b/l10n/hr/files_versions.po index 0425c2dc5680098bd468e36e4949de992289788c..a1fb9209e3b22a309d0d364e0594368f0e3468d0 100644 --- a/l10n/hr/files_versions.po +++ b/l10n/hr/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/hr/lib.po b/l10n/hr/lib.po index 28ed5873c3373ac8218f8c4811ee58e30a0535ba..247fd49ed9e857c249420b6a3ea86b5233178e8c 100644 --- a/l10n/hr/lib.po +++ b/l10n/hr/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pomoć" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Osobno" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Postavke" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Korisnici" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "Tekst" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "sekundi prije" @@ -137,16 +239,16 @@ msgstr "prošlu godinu" msgid "years ago" msgstr "godina" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/hr/settings.po b/l10n/hr/settings.po index 062d280811c653ff8933210787b539cc6ac20f64..c0d9d336801bf30f040ebc03a187cb5e550a1798 100644 --- a/l10n/hr/settings.po +++ b/l10n/hr/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nemogićnost učitavanja liste sa Apps Stora" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Greška kod autorizacije" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "Neispravan zahtjev" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -119,59 +119,265 @@ msgstr "Greška" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Spremanje..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "izbrisano" + +#: js/users.js:30 +msgid "undo" +msgstr "vrati" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupe" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupa Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Obriši" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__ime_jezika__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Dodajte vašu aplikaciju" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Odaberite Aplikaciju" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Pogledajte stranicu s aplikacijama na apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -180,116 +386,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klijenti" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Lozinka" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Nemoguće promijeniti lozinku" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Trenutna lozinka" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nova lozinka" -#: templates/personal.php:28 -msgid "show" -msgstr "prikaz" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Izmjena lozinke" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "e-mail adresa" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Vaša e-mail adresa" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Ispunite vase e-mail adresa kako bi se omogućilo oporavak lozinke" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Jezik" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Pomoć prevesti" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupe" - #: templates/users.php:32 msgid "Create" msgstr "Izradi" @@ -298,34 +474,26 @@ msgstr "Izradi" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "ostali" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupa Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Obriši" diff --git a/l10n/hr/user_ldap.po b/l10n/hr/user_ldap.po index f1c4515d4d2c79aa4268d65c68bec183de07f6ee..eb75fed54a87e06e4915be4abfed7c50f2b667a2 100644 --- a/l10n/hr/user_ldap.po +++ b/l10n/hr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/hu_HU/core.po b/l10n/hu_HU/core.po index 792943a1d7208dc9275ec1765da419b22664012f..c82ad716faffad271a6abfa0a888f5a22c06b0b2 100644 --- a/l10n/hu_HU/core.po +++ b/l10n/hu_HU/core.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 09:21+0000\n" +"Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,24 +22,24 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "%s felhasználó megosztott Önnel egy fájlt" -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "%s felhasználó megosztott Önnel egy mappát" -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "%s felhasználó megosztotta ezt az állományt Önnel: %s. A fájl innen tölthető le: %s" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -55,8 +55,9 @@ msgid "No category to add?" msgstr "Nincs hozzáadandó kategória?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ez a kategória már létezik: " +#, php-format +msgid "This category already exists: %s" +msgstr "Ez a kategória már létezik: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -84,135 +85,135 @@ msgstr "Nincs törlésre jelölt kategória" msgid "Error removing %s from favorites." msgstr "Nem sikerült a kedvencekből törölni ezt: %s" -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "vasárnap" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "hétfő" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "kedd" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "szerda" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "csütörtök" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "péntek" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "szombat" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "január" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "február" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "március" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "április" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "május" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "június" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "július" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "augusztus" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "szeptember" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "október" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "november" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "december" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Beállítások" -#: js/js.js:760 +#: js/js.js:768 msgid "seconds ago" msgstr "pár másodperce" -#: js/js.js:761 +#: js/js.js:769 msgid "1 minute ago" msgstr "1 perce" -#: js/js.js:762 +#: js/js.js:770 msgid "{minutes} minutes ago" msgstr "{minutes} perce" -#: js/js.js:763 +#: js/js.js:771 msgid "1 hour ago" msgstr "1 órája" -#: js/js.js:764 +#: js/js.js:772 msgid "{hours} hours ago" msgstr "{hours} órája" -#: js/js.js:765 +#: js/js.js:773 msgid "today" msgstr "ma" -#: js/js.js:766 +#: js/js.js:774 msgid "yesterday" msgstr "tegnap" -#: js/js.js:767 +#: js/js.js:775 msgid "{days} days ago" msgstr "{days} napja" -#: js/js.js:768 +#: js/js.js:776 msgid "last month" msgstr "múlt hónapban" -#: js/js.js:769 +#: js/js.js:777 msgid "{months} months ago" msgstr "{months} hónapja" -#: js/js.js:770 +#: js/js.js:778 msgid "months ago" msgstr "több hónapja" -#: js/js.js:771 +#: js/js.js:779 msgid "last year" msgstr "tavaly" -#: js/js.js:772 +#: js/js.js:780 msgid "years ago" msgstr "több éve" @@ -242,8 +243,8 @@ msgid "The object type is not specified." msgstr "Az objektum típusa nincs megadva." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Hiba" @@ -255,15 +256,15 @@ msgstr "Az alkalmazás neve nincs megadva." msgid "The required file {file} is not installed!" msgstr "A szükséges fájl: {file} nincs telepítve!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Megosztott" + +#: js/share.js:93 msgid "Share" msgstr "Megosztás" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Nem sikerült létrehozni a megosztást" @@ -295,7 +296,7 @@ msgstr "Link megadásával osztom meg" msgid "Password protect" msgstr "Jelszóval is védem" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 msgid "Password" msgstr "Jelszó" @@ -359,23 +360,23 @@ msgstr "töröl" msgid "share" msgstr "megoszt" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Jelszóval van védve" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Nem sikerült a lejárati időt törölni" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Nem sikerült a lejárati időt beállítani" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Küldés ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Az emailt elküldtük" @@ -384,13 +385,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "A frissítés nem sikerült. Kérem értesítse erről a problémáról az ownCloud közösséget." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "A frissítés sikeres volt. Visszairányítjuk az ownCloud szolgáltatáshoz." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud jelszó-visszaállítás" @@ -410,7 +411,7 @@ msgstr "Elküldtük az emailt a jelszó ismételt beállításához." msgid "Request failed!" msgstr "Nem sikerült a kérést teljesíteni!" -#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 #: templates/login.php:28 msgid "Username" msgstr "Felhasználónév" @@ -471,11 +472,11 @@ msgstr "Kategóriák szerkesztése" msgid "Add" msgstr "Hozzáadás" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:24 templates/installation.php:31 msgid "Security Warning" msgstr "Biztonsági figyelmeztetés" -#: templates/installation.php:24 +#: templates/installation.php:25 msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." @@ -489,63 +490,68 @@ msgstr "Megfelelő véletlenszám-generátor hiányában egy támadó szándék #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon fontos, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár nem legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre." - -#: templates/installation.php:36 +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Az adatkönyvtár és a benne levő állományok valószínűleg közvetlenül is elérhetők az internetről, mert a .htaccess állomány nem érvényesül." + +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "A kiszolgáló megfelelő beállításához kérjük olvassa el a dokumentációt." + +#: templates/installation.php:37 msgid "Create an admin account" msgstr "Rendszergazdai belépés létrehozása" -#: templates/installation.php:50 +#: templates/installation.php:55 msgid "Advanced" msgstr "Haladó" -#: templates/installation.php:52 +#: templates/installation.php:57 msgid "Data folder" msgstr "Adatkönyvtár" -#: templates/installation.php:59 +#: templates/installation.php:66 msgid "Configure the database" msgstr "Adatbázis konfigurálása" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 msgid "will be used" msgstr "adatbázist fogunk használni" -#: templates/installation.php:107 +#: templates/installation.php:129 msgid "Database user" msgstr "Adatbázis felhasználónév" -#: templates/installation.php:111 +#: templates/installation.php:134 msgid "Database password" msgstr "Adatbázis jelszó" -#: templates/installation.php:115 +#: templates/installation.php:139 msgid "Database name" msgstr "Az adatbázis neve" -#: templates/installation.php:123 +#: templates/installation.php:149 msgid "Database tablespace" msgstr "Az adatbázis táblázattér (tablespace)" -#: templates/installation.php:129 +#: templates/installation.php:156 msgid "Database host" msgstr "Adatbázis szerver" -#: templates/installation.php:134 +#: templates/installation.php:162 msgid "Finish setup" msgstr "A beállítások befejezése" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "webszolgáltatások saját kézben" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "Kilépés" @@ -577,7 +583,7 @@ msgstr "Bejelentkezés" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternatív bejelentkezés" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po index bc65aedf6412ce7118d49d2448276055b870ed65..dfdc9aaec81103630b2b5a0f8703e50fc70904c5 100644 --- a/l10n/hu_HU/files.po +++ b/l10n/hu_HU/files.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2013-02-27 10:10+0000\n" +"Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,6 +24,20 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nem sikerült %s áthelyezése" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nem lehet átnevezni a fájlt" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nem történt feltöltés. Ismeretlen hiba" @@ -43,27 +57,27 @@ msgid "" "the HTML form" msgstr "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra." -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Az eredeti fájlt csak részben sikerült feltölteni." -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Nem töltődött fel semmi" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Hiányzik egy ideiglenes mappa" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Nem sikerült a lemezre történő írás" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nincs elég szabad hely" +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "Nincs elég szabad hely." -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Érvénytelen mappa." @@ -71,53 +85,54 @@ msgstr "Érvénytelen mappa." msgid "Files" msgstr "Fájlok" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Megosztás visszavonása" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Végleges törlés" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Törlés" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Átnevezés" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Folyamatban" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} már létezik" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "írjuk fölül" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "legyen más neve" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "mégse" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "a(z) {new_name} állományt kicseréltük" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "visszavonás" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} fájlt kicseréltük ezzel: {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "a törlés végrehajtása" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -141,50 +156,46 @@ msgstr "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhat msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "A tároló majdnem tele van ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Feltöltési hiba" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Bezárás" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Folyamatban" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fájl töltődik föl" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} fájl töltődik föl" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "A feltöltést megszakítottuk." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Az URL nem lehet semmi." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Érvénytelen mappanév. A név használata csak a Owncloud számára lehetséges." @@ -269,8 +280,8 @@ msgid "From link" msgstr "Feltöltés linkről" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Törölt fájlok" #: templates/index.php:46 msgid "Cancel upload" @@ -284,6 +295,10 @@ msgstr "Itt nincs semmi. Töltsön fel valamit!" msgid "Download" msgstr "Letöltés" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Megosztás visszavonása" + #: templates/index.php:105 msgid "Upload too large" msgstr "A feltöltés túl nagy" @@ -304,4 +319,4 @@ msgstr "Ellenőrzés alatt" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "A fájlrendszer gyorsítótárának frissítése zajlik..." diff --git a/l10n/hu_HU/files_encryption.po b/l10n/hu_HU/files_encryption.po index 0409118f14acdc4a4ddf5cd49ced3f83c39c131a..4ad1f0108e8447c261442a1b225a57f90d2f4a60 100644 --- a/l10n/hu_HU/files_encryption.po +++ b/l10n/hu_HU/files_encryption.po @@ -6,13 +6,14 @@ # Akos , 2013. # Csaba Orban , 2012. # , 2013. +# Laszlo Tornoci , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-14 00:05+0100\n" +"PO-Revision-Date: 2013-02-13 14:00+0000\n" +"Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,43 +21,21 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Kérjük, hogy váltson át az ownCloud kliensére, és változtassa meg a titkosítási jelszót az átalakítás befejezéséhez." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "átváltva a kliens oldalai titkosításra" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Titkosítási jelszó módosítása a bejelentkezési jelszóra" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Kérjük, ellenőrizze a jelszavait, és próbálja meg újra." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Nem módosíthatja a fájltitkosítási jelszavát a bejelentkezési jelszavára" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Titkosítás" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Az állományok titkosítása be van kapcsolva." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "A következő fájltípusok nem kerülnek titkosításra:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Zárjuk ki a titkosításból a következő fájltípusokat:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/hu_HU/files_external.po b/l10n/hu_HU/files_external.po index 450c7e0561698c013be40cc46fc457bcc8211830..af24c19037a92f3ec097c9633435f176ecbf9cf2 100644 --- a/l10n/hu_HU/files_external.po +++ b/l10n/hu_HU/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-31 00:04+0100\n" -"PO-Revision-Date: 2012-12-30 19:20+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "Adjon meg egy érvényes Dropbox app key-t és secretet!" msgid "Error configuring Google Drive storage" msgstr "A Google Drive tárolót nem sikerült beállítani" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Figyelem: az \"smbclient\" nincs telepítve a kiszolgálón. Emiatt nem lehet CIFS/SMB megosztásokat fölcsatolni. Kérje meg a rendszergazdát, hogy telepítse a szükséges programot." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -115,6 +115,6 @@ msgstr "Lehetővé teszi, hogy a felhasználók külső tárolási szolgáltatá msgid "SSL root certificates" msgstr "SSL tanúsítványok" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "SSL tanúsítványok importálása" diff --git a/l10n/hu_HU/files_trashbin.po b/l10n/hu_HU/files_trashbin.po index ed96fa7cee5da43c1bc6cd5e28ca0e74fda880fe..77f4f58eadcbd29630d1b012c3957021d836af89 100644 --- a/l10n/hu_HU/files_trashbin.po +++ b/l10n/hu_HU/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Laszlo Tornoci , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Nem sikerült %s végleges törlése" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Nem sikerült %s visszaállítása" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "a visszaállítás végrehajtása" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "az állomány végleges törlése" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Végleges törlés" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Név" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Törölve" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mappa" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mappa" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fájl" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} fájl" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Itt nincs semmi. Az Ön szemetes mappája üres!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Visszaállítás" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Törlés" diff --git a/l10n/hu_HU/files_versions.po b/l10n/hu_HU/files_versions.po index d5db4ac6033aa2edc448a7279bb93aa4a8228a82..e128811260c0218a5931a33212bdbf99f3af8a82 100644 --- a/l10n/hu_HU/files_versions.po +++ b/l10n/hu_HU/files_versions.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Laszlo Tornoci , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 10:43+0000\n" +"Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,10 +18,45 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Nem sikerült átállni a változatra: %s" + +#: history.php:40 +msgid "success" +msgstr "sikerült" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "%s állományt átállítottuk erre a változatra: %s" + +#: history.php:49 +msgid "failure" +msgstr "nem sikerült" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "%s állományt nem sikerült átállítani erre a változatra: %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nincs régebbi változat" + +#: history.php:73 +msgid "No path specified" +msgstr "Nincs megadva az útvonal" + #: js/versions.js:16 msgid "History" msgstr "Korábbi változatok" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Az állomány átállítható egy régebbi változatra, ha a gombra kattint" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Az állományok verzionálása" diff --git a/l10n/hu_HU/lib.po b/l10n/hu_HU/lib.po index c3c29798b139f1294e83af9f317ced661a3c9b80..4f7963e2cf0a4bdcccda6ff78d0af66afd11595a 100644 --- a/l10n/hu_HU/lib.po +++ b/l10n/hu_HU/lib.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-26 00:09+0100\n" -"PO-Revision-Date: 2013-01-25 12:37+0000\n" -"Last-Translator: Laszlo Tornoci \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,47 +20,47 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Súgó" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Személyes" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Beállítások" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Felhasználók" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Alkalmazások" -#: app.php:327 +#: app.php:406 msgid "Admin" -msgstr "Admin" +msgstr "Adminsztráció" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "A ZIP-letöltés nincs engedélyezve." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." -msgstr "A fájlokat egyenként kell letölteni" +msgstr "A fájlokat egyenként kell letölteni." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Vissza a Fájlokhoz" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "A kiválasztott fájlok túl nagyok a zip tömörítéshez." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "nem határozható meg" @@ -88,6 +88,108 @@ msgstr "Szöveg" msgid "Images" msgstr "Képek" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Állítson be egy felhasználói nevet az adminisztrációhoz." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Állítson be egy jelszót az adminisztrációhoz." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Adja meg az adatokat tartalmazó könyvtár nevét." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s adja meg az adatbázist elérő felhasználó login nevét." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s adja meg az adatbázis nevét." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s az adatbázis neve nem tartalmazhat pontot" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s adja meg az adatbázist szolgáltató számítógép nevét." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Vagy egy létező felhasználó vagy az adminisztrátor bejelentkezési nevét kell megadnia" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Az Oracle felhasználói név és/vagy jelszó érvénytelen" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "A MySQL felhasználói név és/vagy jelszó érvénytelen" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Adatbázis hiba: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "A hibát ez a parancs okozta: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "A '%s'@'localhost' MySQL felhasználó már létezik." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Törölje ezt a felhasználót a MySQL-ből" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "A '%s'@'%%' MySQL felhasználó már létezik" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Törölje ezt a felhasználót a MySQL-ből." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "A hibát okozó parancs ez volt: \"%s\", login név: %s, jelszó: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Kérjük tüzetesen tanulmányozza át a telepítési útmutatót." + #: template.php:113 msgid "seconds ago" msgstr "másodperce" @@ -140,16 +242,16 @@ msgstr "tavaly" msgid "years ago" msgstr "éve" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s elérhető. További információ." -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "a legfrissebb változat" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "A frissitések ellenőrzése nincs engedélyezve." diff --git a/l10n/hu_HU/settings.po b/l10n/hu_HU/settings.po index d544d5d95b051c731bc041dc24284457675944ec..39e4285af536f127cf23f311e678f12655ba2b58 100644 --- a/l10n/hu_HU/settings.po +++ b/l10n/hu_HU/settings.po @@ -5,13 +5,14 @@ # Translators: # Adam Toth , 2012. # , 2013. +# Laszlo Tornoci , 2013. # Peter Borsa , 2011. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -24,14 +25,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nem tölthető le a lista az App Store-ból" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Azonosítási hiba" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Nem sikerült megváltoztatni a megjelenítési nevet" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,23 +74,23 @@ msgstr "Érvénytelen kérés" msgid "Admins can't remove themself from the admin group" msgstr "Adminisztrátorok nem távolíthatják el magukat az admin csoportból." -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "A felhasználó nem adható hozzá ehhez a csoporthoz: %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "A felhasználó nem távolítható el ebből a csoportból: %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "A program frissítése nem sikerült." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Frissítés erre a verzióra: {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -101,15 +102,15 @@ msgstr "Engedélyezés" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Kérem várjon..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Frissítés folyamatban..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Hiba történt a programfrissítés közben" #: js/apps.js:87 msgid "Error" @@ -117,61 +118,267 @@ msgstr "Hiba" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Frissítve" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Mentés..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "törölve" + +#: js/users.js:30 +msgid "undo" +msgstr "visszavonás" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "A felhasználót nem sikerült eltávolítáni" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Csoportok" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Csoportadminisztrátor" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Törlés" + +#: js/users.js:191 +msgid "add group" +msgstr "csoport hozzáadása" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Érvényes felhasználónevet kell megadnia" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "A felhasználó nem hozható létre" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Érvényes jelszót kell megadnia" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Biztonsági figyelmeztetés" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon fontos, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár nem legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "A beállítással kapcsolatos figyelmeztetés" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Kérjük tüzetesen tanulmányozza át a telepítési útmutatót." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "A 'fileinfo' modul hiányzik" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "A 'fileinfo' PHP modul hiányzik. Erősen javasolt ennek a modulnak az telepítése, ha az ember jó eredményt szeretne a MIME-típusok felismerésében." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "A nyelvi lokalizáció nem működik" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Az internet kapcsolat nem működik" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Az ownCloud kiszolgálónak nincs internet kapcsolata. Ez azt jelenti, hogy bizonyos dolgok nem fognak működni, pl. külső tárolók csatolása, programfrissítésekről való értesítések, vagy külső fejlesztői modulok telepítése. Lehet, hogy az állományok távolról történő elérése, ill. az email értesítések sem fog működni. Javasoljuk, hogy engedélyezze az internet kapcsolatot a kiszolgáló számára, ha az ownCloud összes szolgáltatását szeretné használni." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Ütemezett feladatok" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Egy-egy feladat végrehajtása minden alkalommal, amikor egy weboldalt letöltenek" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "A cron.php webcron szolgáltatásként van regisztrálva. Hívja meg az owncloud könyvtárban levő cron.php állományt http-n keresztül percenként egyszer." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "A rendszer cron szolgáltatásának használata. Hívja meg az owncloud könyvtárban levő cron.php állományt percenként egyszer a rendszer cron szolgáltatásának segítségével." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Megosztás" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "A megosztás API-jának engedélyezése" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Lehetővé teszi, hogy a programmodulok is használhassák a megosztást" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Linkek engedélyezése" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Lehetővé teszi, hogy a felhasználók linkek segítségével külsősökkel is megoszthassák az adataikat" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "A továbbosztás engedélyezése" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Lehetővé teszi, hogy a felhasználók a velük megosztott állományokat megosszák egy további, harmadik féllel" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "A felhasználók bárkivel megoszthatják állományaikat" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "A felhasználók csak olyanokkal oszthatják meg állományaikat, akikkel közös csoportban vannak" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Biztonság" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Kötelező HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Kötelezővé teszi, hogy a böngészőprogramok titkosított csatornán kapcsolódjanak az ownCloud szolgáltatáshoz." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Kérjük, hogy HTTPS protokollt használjon, ha be vagy ki akarja kapcsolni a kötelező SSL beállítást." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Naplózás" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Naplózási szint" + +#: templates/admin.php:223 +msgid "More" +msgstr "Több" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Verzió" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "A programot az ownCloud közösség fejleszti. A forráskód az AGPL feltételei mellett használható föl." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Az alkalmazás hozzáadása" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "További alkalmazások" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Válasszon egy alkalmazást" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Lásd apps.owncloud.com, alkalmazások oldal" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-a jogtuladonos " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Frissítés" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Felhasználói leírás" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Üzemeltetői leírás" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online leírás" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fórum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Hibabejelentések" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Megvásárolható támogatás" @@ -180,115 +387,85 @@ msgstr "Megvásárolható támogatás" msgid "You have used %s of the available %s" msgstr "Az Ön tárterület-felhasználása jelenleg: %s. Maximálisan ennyi áll rendelkezésére: %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Kliensek" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Desktop kliensprogramok letöltése" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Android kliens letöltése" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS kliens letöltése" +msgid "Get the apps to sync your files" +msgstr "Töltse le az állományok szinkronizációjához szükséges programokat" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Nézzük meg újra az első bejelentkezéskori segítséget!" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Jelszó" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "A jelszava megváltozott" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "A jelszó nem változtatható meg" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "A jelenlegi jelszó" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Az új jelszó" -#: templates/personal.php:28 -msgid "show" -msgstr "lássam" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "A jelszó megváltoztatása" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "A megjelenített név" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Az Ön megjelenítési neve megváltozott" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Nem sikerült megváltoztatni az Ön megjelenítési nevét" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "A megjelenítési név módosítása" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Az Ön email címe" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Adja meg az email címét, hogy jelszó-emlékeztetőt kérhessen, ha elfelejtette a jelszavát!" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Nyelv" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Segítsen a fordításban!" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Ennek a címnek a megadásával a WebDAV-protokollon keresztül saját gépének fájlkezelőjével is is elérheti az állományait." -#: templates/personal.php:85 -msgid "Version" -msgstr "Verzió" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "A programot az ownCloud közösség fejleszti. A forráskód az AGPL feltételei mellett használható föl." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Csoportok" +msgstr "Bejelentkezési név" #: templates/users.php:32 msgid "Create" @@ -298,34 +475,26 @@ msgstr "Létrehozás" msgid "Default Storage" msgstr "Alapértelmezett tárhely" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Korlátlan" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Más" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Csoportadminisztrátor" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Tárhely" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "a megjelenített név módosítása" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "új jelszó beállítása" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Alapértelmezett" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Törlés" diff --git a/l10n/hu_HU/user_ldap.po b/l10n/hu_HU/user_ldap.po index 83d3b7c227e68286db91dca57828efbc3545cfba..b4d5350a18c24d122347e46efd87745ae65b9dc3 100644 --- a/l10n/hu_HU/user_ldap.po +++ b/l10n/hu_HU/user_ldap.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-14 00:05+0100\n" +"PO-Revision-Date: 2013-02-13 17:20+0000\n" +"Last-Translator: Laszlo Tornoci \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,23 +21,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Nem sikerült törölni a kiszolgáló konfigurációját" #: ajax/testConfiguration.php:35 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "A konfiguráció érvényes, és a kapcsolat létrehozható!" #: ajax/testConfiguration.php:37 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "A konfiguráció érvényes, de a kapcsolat nem hozható létre. Kérem ellenőrizze a kiszolgáló beállításait, és az elérési adatokat." #: ajax/testConfiguration.php:40 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Érvénytelen konfiguráció. További információkért nézze meg az ownCloud naplófájlját." #: js/settings.js:66 msgid "Deletion failed" @@ -45,31 +45,31 @@ msgstr "A törlés nem sikerült" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Vegyük át a beállításokat az előző konfigurációból?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Tartsuk meg a beállításokat?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Az új kiszolgáló konfigurációja nem hozható létre" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "A kapcsolatellenőrzés eredménye: sikerült" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "A kapcsolatellenőrzés eredménye: nem sikerült" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Tényleg törölni szeretné a kiszolgáló beállításait?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "A törlés megerősítése" #: templates/settings.php:8 msgid "" @@ -86,11 +86,11 @@ msgstr "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "A kiszolgálók beállításai" #: templates/settings.php:17 msgid "Add Server Configuration" -msgstr "" +msgstr "Új kiszolgáló beállításának hozzáadása" #: templates/settings.php:21 msgid "Host" @@ -174,15 +174,15 @@ msgstr "itt ne használjunk változót, pl. \"objectClass=posixGroup\"." #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Kapcsolati beállítások" #: templates/settings.php:33 msgid "Configuration Active" -msgstr "" +msgstr "A beállítás aktív" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Ha nincs kipipálva, ez a beállítás kihagyódik." #: templates/settings.php:34 msgid "Port" @@ -190,33 +190,33 @@ msgstr "Port" #: templates/settings.php:35 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Másodkiszolgáló (replika)" #: templates/settings.php:35 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen." #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "A másodkiszolgáló (replika) portszáma" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "A fő szerver kihagyása" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Ha ezt bekapcsoljuk, akkor az ownCloud csak a másodszerverekhez kapcsolódik." #: templates/settings.php:38 msgid "Use TLS" msgstr "Használjunk TLS-t" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -242,7 +242,7 @@ msgstr "másodpercben. A változtatás törli a cache tartalmát." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Címtár beállítások" #: templates/settings.php:45 msgid "User Display Name Field" @@ -262,11 +262,11 @@ msgstr "Soronként egy felhasználói fa gyökerét adhatjuk meg" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "A felhasználók lekérdezett attribútumai" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Nem kötelező megadni, soronként egy attribútum" #: templates/settings.php:48 msgid "Group Display Name Field" @@ -286,7 +286,7 @@ msgstr "Soronként egy csoportfa gyökerét adhatjuk meg" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "A csoportok lekérdezett attribútumai" #: templates/settings.php:51 msgid "Group-Member association" @@ -294,7 +294,7 @@ msgstr "A csoporttagság attribútuma" #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Különleges attribútumok" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/hy/files.po b/l10n/hy/files.po index 57f0d5ce5f88bce2835e13999c40ec96754c572c..a1a90998d4c62fdf49a90f0f8ef1405360f4e807 100644 --- a/l10n/hy/files.po +++ b/l10n/hy/files.po @@ -7,209 +7,221 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-10-19 02:03+0200\n" -"PO-Revision-Date: 2012-10-19 00:04+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hy\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/upload.php:20 +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" msgstr "" -#: ajax/upload.php:21 -msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini" +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " msgstr "" -#: ajax/upload.php:22 +#: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" msgstr "" -#: ajax/upload.php:23 +#: ajax/upload.php:31 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:24 +#: ajax/upload.php:32 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:25 +#: ajax/upload.php:33 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:26 +#: ajax/upload.php:34 msgid "Failed to write to disk" msgstr "" -#: appinfo/app.php:6 +#: ajax/upload.php:52 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:83 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 msgid "Files" msgstr "" -#: js/fileactions.js:108 templates/index.php:62 -msgid "Unshare" +#: js/fileactions.js:125 +msgid "Delete permanently" msgstr "" -#: js/fileactions.js:110 templates/index.php:64 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" -msgstr "" +msgstr "Ջնջել" -#: js/fileactions.js:182 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:194 js/filelist.js:196 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:194 js/filelist.js:196 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:194 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:194 js/filelist.js:196 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:243 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:243 js/filelist.js:245 js/filelist.js:277 js/filelist.js:279 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:245 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:277 -msgid "unshared {files}" +#: js/filelist.js:322 +msgid "perform delete operation" msgstr "" -#: js/filelist.js:279 -msgid "deleted {files}" +#: js/files.js:52 +msgid "'.' is an invalid file name." msgstr "" -#: js/files.js:179 -msgid "generating ZIP-file, it may take some time." +#: js/files.js:56 +msgid "File name cannot be empty." msgstr "" -#: js/files.js:214 -msgid "Unable to upload your file as it is a directory or has 0 bytes" +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." msgstr "" -#: js/files.js:214 -msgid "Upload Error" +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" msgstr "" -#: js/files.js:242 js/files.js:347 js/files.js:377 -msgid "Pending" +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:225 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." msgstr "" #: js/files.js:262 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:262 +msgid "Upload Error" +msgstr "" + +#: js/files.js:273 +msgid "Close" +msgstr "Փակել" + +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:265 js/files.js:310 js/files.js:325 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:328 js/files.js:361 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:430 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:500 -msgid "Invalid name, '/' is not allowed." +#: js/files.js:570 +msgid "URL cannot be empty." msgstr "" -#: js/files.js:681 -msgid "{count} files scanned" +#: js/files.js:575 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:689 -msgid "error while scanning" -msgstr "" - -#: js/files.js:762 templates/index.php:48 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:763 templates/index.php:56 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:764 templates/index.php:58 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:791 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:793 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:801 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:803 +#: js/files.js:982 msgid "{count} files" msgstr "" -#: js/files.js:846 -msgid "seconds ago" -msgstr "" - -#: js/files.js:847 -msgid "1 minute ago" -msgstr "" - -#: js/files.js:848 -msgid "{minutes} minutes ago" -msgstr "" - -#: js/files.js:851 -msgid "today" -msgstr "" - -#: js/files.js:852 -msgid "yesterday" -msgstr "" - -#: js/files.js:853 -msgid "{days} days ago" -msgstr "" - -#: js/files.js:854 -msgid "last month" -msgstr "" - -#: js/files.js:856 -msgid "months ago" -msgstr "" - -#: js/files.js:857 -msgid "last year" -msgstr "" - -#: js/files.js:858 -msgid "years ago" +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" msgstr "" #: templates/admin.php:5 @@ -220,80 +232,84 @@ msgstr "" msgid "Maximum upload size" msgstr "" -#: templates/admin.php:7 +#: templates/admin.php:10 msgid "max. possible: " msgstr "" -#: templates/admin.php:9 +#: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." msgstr "" -#: templates/admin.php:9 +#: templates/admin.php:17 msgid "Enable ZIP-download" msgstr "" -#: templates/admin.php:11 +#: templates/admin.php:20 msgid "0 is unlimited" msgstr "" -#: templates/admin.php:12 +#: templates/admin.php:22 msgid "Maximum input size for ZIP files" msgstr "" -#: templates/admin.php:14 +#: templates/admin.php:26 msgid "Save" -msgstr "" +msgstr "Պահպանել" #: templates/index.php:7 msgid "New" msgstr "" -#: templates/index.php:9 +#: templates/index.php:10 msgid "Text file" msgstr "" -#: templates/index.php:10 +#: templates/index.php:12 msgid "Folder" msgstr "" -#: templates/index.php:11 -msgid "From url" +#: templates/index.php:14 +msgid "From link" msgstr "" -#: templates/index.php:20 -msgid "Upload" +#: templates/index.php:40 +msgid "Deleted files" msgstr "" -#: templates/index.php:27 +#: templates/index.php:46 msgid "Cancel upload" msgstr "" -#: templates/index.php:40 +#: templates/index.php:59 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:50 -msgid "Share" -msgstr "" - -#: templates/index.php:52 +#: templates/index.php:73 msgid "Download" +msgstr "Բեռնել" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" msgstr "" -#: templates/index.php:75 +#: templates/index.php:105 msgid "Upload too large" msgstr "" -#: templates/index.php:77 +#: templates/index.php:107 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:82 +#: templates/index.php:112 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:85 +#: templates/index.php:115 msgid "Current scanning" msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/hy/files_external.po b/l10n/hy/files_external.po index 3ad25c76e79258193d97f562644c7b2602aa4a82..8f3ff63ea6da74decfd5287312cc0182eb184d1b 100644 --- a/l10n/hy/files_external.po +++ b/l10n/hy/files_external.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-10-02 23:16+0200\n" -"PO-Revision-Date: 2012-10-02 21:17+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -41,66 +41,80 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" +#: lib/config.php:398 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:401 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "" -#: templates/settings.php:7 templates/settings.php:19 +#: templates/settings.php:8 templates/settings.php:22 msgid "Mount point" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "Backend" msgstr "" -#: templates/settings.php:9 +#: templates/settings.php:10 msgid "Configuration" msgstr "" -#: templates/settings.php:10 +#: templates/settings.php:11 msgid "Options" msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "Applicable" msgstr "" -#: templates/settings.php:23 +#: templates/settings.php:27 msgid "Add mount point" msgstr "" -#: templates/settings.php:54 templates/settings.php:62 +#: templates/settings.php:85 msgid "None set" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:86 msgid "All Users" msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:87 msgid "Groups" msgstr "" -#: templates/settings.php:69 +#: templates/settings.php:95 msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:107 +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" -msgstr "" +msgstr "Ջնջել" -#: templates/settings.php:87 +#: templates/settings.php:124 msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:125 msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:113 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hy/files_trashbin.po b/l10n/hy/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..79b83d2bb2f8e659770ee8f7892931fa0fa9d37b --- /dev/null +++ b/l10n/hy/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-01-31 16:03+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Ջնջել" diff --git a/l10n/hy/settings.po b/l10n/hy/settings.po index ce1f8ccb809056f9e89be319948364d0c135cbe1..da0084348d80ca4684079ba6f27019115fdb3e5f 100644 --- a/l10n/hy/settings.po +++ b/l10n/hy/settings.po @@ -7,96 +7,169 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-10-09 02:03+0200\n" -"PO-Revision-Date: 2012-10-09 00:04+0000\n" -"Last-Translator: I Robot \n" -"Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hy\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ajax/apps/ocs.php:23 +#: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" msgstr "" -#: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18 -#: ajax/togglegroups.php:15 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/creategroup.php:19 +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 msgid "Group already exists" msgstr "" -#: ajax/creategroup.php:28 +#: ajax/creategroup.php:19 msgid "Unable to add group" msgstr "" -#: ajax/enableapp.php:14 +#: ajax/enableapp.php:11 msgid "Could not enable app. " msgstr "" -#: ajax/lostpassword.php:14 +#: ajax/lostpassword.php:12 msgid "Email saved" msgstr "" -#: ajax/lostpassword.php:16 +#: ajax/lostpassword.php:14 msgid "Invalid email" msgstr "" -#: ajax/openid.php:16 -msgid "OpenID Changed" +#: ajax/removegroup.php:13 +msgid "Unable to delete group" msgstr "" -#: ajax/openid.php:18 ajax/setlanguage.php:20 ajax/setlanguage.php:23 -msgid "Invalid request" +#: ajax/removeuser.php:24 +msgid "Unable to delete user" msgstr "" -#: ajax/removegroup.php:16 -msgid "Unable to delete group" +#: ajax/setlanguage.php:15 +msgid "Language changed" msgstr "" -#: ajax/removeuser.php:22 -msgid "Unable to delete user" +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" msgstr "" -#: ajax/setlanguage.php:18 -msgid "Language changed" +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:25 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:31 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: js/apps.js:28 js/apps.js:65 +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 msgid "Disable" msgstr "" -#: js/apps.js:28 js/apps.js:54 +#: js/apps.js:36 js/apps.js:64 msgid "Enable" msgstr "" -#: js/personal.js:69 +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:47 personal.php:48 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Ջնջել" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/admin.php:14 +#: templates/admin.php:15 msgid "Security Warning" msgstr "" -#: templates/admin.php:17 +#: templates/admin.php:18 msgid "" "Your data directory and your files are probably accessible from the " "internet. The .htaccess file that ownCloud provides is not working. We " @@ -105,71 +178,149 @@ msgid "" " webserver document root." msgstr "" -#: templates/admin.php:31 +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 msgid "Cron" msgstr "" -#: templates/admin.php:37 +#: templates/admin.php:101 msgid "Execute one task with each page loaded" msgstr "" -#: templates/admin.php:43 +#: templates/admin.php:111 msgid "" "cron.php is registered at a webcron service. Call the cron.php page in the " "owncloud root once a minute over http." msgstr "" -#: templates/admin.php:49 +#: templates/admin.php:121 msgid "" "Use systems cron service. Call the cron.php file in the owncloud folder via " "a system cronjob once a minute." msgstr "" -#: templates/admin.php:56 +#: templates/admin.php:128 msgid "Sharing" msgstr "" -#: templates/admin.php:61 +#: templates/admin.php:134 msgid "Enable Share API" msgstr "" -#: templates/admin.php:62 +#: templates/admin.php:135 msgid "Allow apps to use the Share API" msgstr "" -#: templates/admin.php:67 +#: templates/admin.php:142 msgid "Allow links" msgstr "" -#: templates/admin.php:68 +#: templates/admin.php:143 msgid "Allow users to share items to the public with links" msgstr "" -#: templates/admin.php:73 +#: templates/admin.php:150 msgid "Allow resharing" msgstr "" -#: templates/admin.php:74 +#: templates/admin.php:151 msgid "Allow users to share items shared with them again" msgstr "" -#: templates/admin.php:79 +#: templates/admin.php:158 msgid "Allow users to share with anyone" msgstr "" -#: templates/admin.php:81 +#: templates/admin.php:161 msgid "Allow users to only share with users in their groups" msgstr "" -#: templates/admin.php:88 +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 msgid "Log" msgstr "" -#: templates/admin.php:116 +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 msgid "More" msgstr "" -#: templates/admin.php:124 +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 msgid "" "Developed by the ownCloud community, the AGPL." msgstr "" -#: templates/apps.php:10 +#: templates/apps.php:11 msgid "Add your App" msgstr "" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:27 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:32 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/help.php:9 -msgid "Documentation" +#: templates/apps.php:38 +msgid "Update" msgstr "" -#: templates/help.php:10 -msgid "Managing Big Files" +#: templates/help.php:4 +msgid "User Documentation" msgstr "" -#: templates/help.php:11 -msgid "Ask a question" +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" msgstr "" -#: templates/help.php:23 -msgid "Problems connecting to help database." +#: templates/help.php:11 +msgid "Forum" msgstr "" -#: templates/help.php:24 -msgid "Go there manually." +#: templates/help.php:14 +msgid "Bugtracker" msgstr "" -#: templates/help.php:32 -msgid "Answer" +#: templates/help.php:17 +msgid "Commercial Support" msgstr "" #: templates/personal.php:8 #, php-format -msgid "You have used %s of the available %s" +msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Desktop and Mobile Syncing Clients" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:13 -msgid "Download" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:19 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "" + +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:20 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:21 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:22 +#: templates/personal.php:42 msgid "New password" msgstr "" -#: templates/personal.php:23 -msgid "show" +#: templates/personal.php:44 +msgid "Change password" msgstr "" -#: templates/personal.php:24 -msgid "Change password" +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" msgstr "" -#: templates/personal.php:30 +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 msgid "Email" msgstr "" -#: templates/personal.php:31 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:32 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:38 templates/personal.php:39 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:44 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:51 -msgid "use this address to connect to your ownCloud in your file manager" -msgstr "" - -#: templates/users.php:21 templates/users.php:76 -msgid "Name" +#: templates/personal.php:91 +msgid "WebDAV" msgstr "" -#: templates/users.php:23 templates/users.php:77 -msgid "Password" +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/users.php:26 templates/users.php:78 templates/users.php:98 -msgid "Groups" +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" msgstr "" #: templates/users.php:32 @@ -301,21 +468,29 @@ msgid "Create" msgstr "" #: templates/users.php:35 -msgid "Default Quota" +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" msgstr "" -#: templates/users.php:55 templates/users.php:138 +#: templates/users.php:59 templates/users.php:154 msgid "Other" +msgstr "Այլ" + +#: templates/users.php:84 +msgid "Storage" msgstr "" -#: templates/users.php:80 templates/users.php:112 -msgid "Group Admin" +#: templates/users.php:95 +msgid "change display name" msgstr "" -#: templates/users.php:82 -msgid "Quota" +#: templates/users.php:99 +msgid "set new password" msgstr "" -#: templates/users.php:146 -msgid "Delete" +#: templates/users.php:134 +msgid "Default" msgstr "" diff --git a/l10n/ia/core.po b/l10n/ia/core.po index dff261f33d5dbc5701a83afe7fdf70972b6d716a..d545c83f5ee71e2836b605bd102db909e6661069 100644 --- a/l10n/ia/core.po +++ b/l10n/ia/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -51,8 +51,9 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Iste categoria jam existe:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -156,59 +157,59 @@ msgstr "Novembre" msgid "December" msgstr "Decembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Configurationes" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "" @@ -238,8 +239,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "" @@ -251,15 +252,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Compartir" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Compartir" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -355,23 +356,23 @@ msgstr "" msgid "share" msgstr "" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -386,7 +387,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Reinitialisation del contrasigno de ownCLoud" @@ -467,7 +468,7 @@ msgstr "Modificar categorias" msgid "Add" msgstr "Adder" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crear un conto de administration" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avantiate" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Dossier de datos" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurar le base de datos" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "essera usate" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Usator de base de datos" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Contrasigno de base de datos" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nomine de base de datos" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Hospite de base de datos" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servicios web sub tu controlo" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Clauder le session" diff --git a/l10n/ia/files.po b/l10n/ia/files.po index 8a63e7c909bd8ffd962e4b3512caa1f3a0a44b94..a29c8d554953f80722914ffe5a8a17d10156d790 100644 --- a/l10n/ia/files.po +++ b/l10n/ia/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -55,7 +69,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -66,51 +80,52 @@ msgstr "" msgid "Files" msgstr "Files" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Deler" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -136,78 +151,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Clauder" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nomine" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimension" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificate" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -264,7 +275,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -279,6 +290,10 @@ msgstr "Nihil hic. Incarga alcun cosa!" msgid "Download" msgstr "Discargar" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "Incargamento troppo longe" diff --git a/l10n/ia/files_encryption.po b/l10n/ia/files_encryption.po index e9ea289fb9edbc479bbaf320560cc45a40e9b776..11e4cc8eb8c110820bbd50fae6ad4953bda41c17 100644 --- a/l10n/ia/files_encryption.po +++ b/l10n/ia/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/ia/files_external.po b/l10n/ia/files_external.po index 7fa22302eb44bbd2661cf5e63dd62ed52036ce81..060fd6f7d2c71f04a1b8fdd45c6ecdf21014785a 100644 --- a/l10n/ia/files_external.po +++ b/l10n/ia/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Usatores" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Deler" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ia/files_trashbin.po b/l10n/ia/files_trashbin.po index 9256a728ff8cc80927c084bc40a5146aabb09d9c..5c26542ab60a5181ca22dad0f30675e1b1871471 100644 --- a/l10n/ia/files_trashbin.po +++ b/l10n/ia/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nomine" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Deler" diff --git a/l10n/ia/files_versions.po b/l10n/ia/files_versions.po index 7b2dbb7efe9340e819b6cb020aed4fc445cbae20..f3b805ad9322a235f4a3733aaf16188284f987d3 100644 --- a/l10n/ia/files_versions.po +++ b/l10n/ia/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/ia/lib.po b/l10n/ia/lib.po index 2e638284821b1c61c96ecef68aee4137473ab4bf..2bb101b7e714032c72387c42386a600c413f126c 100644 --- a/l10n/ia/lib.po +++ b/l10n/ia/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Adjuta" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Configurationes" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usatores" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "Texto" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/ia/settings.po b/l10n/ia/settings.po index 47c4885728c28f537944da79b5b798c388c8dac1..3be4a6973418f4ba3ffbff5d8f0e7c6b3999a38d 100644 --- a/l10n/ia/settings.po +++ b/l10n/ia/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "Requesta invalide" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruppos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Deler" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Interlingua" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Adder tu application" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selectionar un app" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualisar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -179,116 +385,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Contrasigno" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Non pote cambiar tu contrasigno" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Contrasigno currente" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nove contrasigno" -#: templates/personal.php:28 -msgid "show" -msgstr "monstrar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Cambiar contrasigno" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-posta" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Tu adresse de e-posta" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Linguage" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Adjuta a traducer" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruppos" - #: templates/users.php:32 msgid "Create" msgstr "Crear" @@ -297,34 +473,26 @@ msgstr "Crear" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Altere" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Deler" diff --git a/l10n/ia/user_ldap.po b/l10n/ia/user_ldap.po index 82ab2dd2acb1f918b2c1fe86bcf74cb2979f2e79..4c35ec082991ebdc605647d0cf19eb283430baa3 100644 --- a/l10n/ia/user_ldap.po +++ b/l10n/ia/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/id/core.po b/l10n/id/core.po index 018cb02da7839ea17db7faa0294bc4d38b245e56..c88257c6bd0df8603e037f18dc5ac8d02f769bcc 100644 --- a/l10n/id/core.po +++ b/l10n/id/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -54,8 +54,9 @@ msgid "No category to add?" msgstr "Tidak ada kategori yang akan ditambahkan?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Kategori ini sudah ada:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -159,59 +160,59 @@ msgstr "Nopember" msgid "December" msgstr "Desember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Setelan" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "beberapa detik yang lalu" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 menit lalu" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hari ini" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "kemarin" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "bulan kemarin" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "beberapa bulan lalu" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "tahun kemarin" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "beberapa tahun lalu" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "gagal" @@ -254,15 +255,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "berbagi" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "berbagi" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "gagal ketika membagikan" @@ -358,23 +359,23 @@ msgstr "hapus" msgid "share" msgstr "bagikan" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "dilindungi kata kunci" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "gagal melepas tanggal kadaluarsa" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "gagal memasang tanggal kadaluarsa" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -389,7 +390,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "reset password ownCloud" @@ -470,7 +471,7 @@ msgstr "Edit kategori" msgid "Add" msgstr "Tambahkan" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "peringatan keamanan" @@ -480,71 +481,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "tanpa generator angka acak, penyerang mungkin dapat menebak token reset kata kunci dan mengambil alih akun anda." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Buat sebuah akun admin" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Tingkat Lanjut" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Folder data" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurasi database" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "akan digunakan" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Pengguna database" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Password database" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nama database" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "tablespace basis data" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Host database" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Selesaikan instalasi" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "web service dibawah kontrol anda" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Keluar" diff --git a/l10n/id/files.po b/l10n/id/files.po index 7275ccf2eda0caa9a9caca7f6c9d6a4c6f93de68..b880acc703a9b90cd1d2e91e438be0c9db71bad9 100644 --- a/l10n/id/files.po +++ b/l10n/id/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -56,7 +70,7 @@ msgid "Failed to write to disk" msgstr "Gagal menulis ke disk" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -67,51 +81,52 @@ msgstr "" msgid "Files" msgstr "Berkas" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "batalkan berbagi" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Hapus" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Menunggu" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "mengganti" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "batalkan" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "batal dikerjakan" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,80 +152,76 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Gagal mengunggah berkas anda karena berupa direktori atau mempunyai ukuran 0 byte" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Terjadi Galat Pengunggahan" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "tutup" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Menunggu" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Pengunggahan dibatalkan." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "tautan tidak boleh kosong" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nama" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Ukuran" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" -msgstr "" +msgstr "1 map" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" -msgstr "" +msgstr "{count} map" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" -msgstr "" +msgstr "1 berkas" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" -msgstr "" +msgstr "{count} berkas" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" @@ -265,7 +276,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Tidak ada apa-apa di sini. Unggah sesuatu!" msgid "Download" msgstr "Unduh" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "batalkan berbagi" + #: templates/index.php:105 msgid "Upload too large" msgstr "Unggahan terlalu besar" diff --git a/l10n/id/files_encryption.po b/l10n/id/files_encryption.po index 88fc1f30a5a8bf81bc3ae00b0c0ebbb2068fc4cf..7a7d4d5211df5e0a202e980284398103444cbf08 100644 --- a/l10n/id/files_encryption.po +++ b/l10n/id/files_encryption.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 03:12+0000\n" +"Last-Translator: w41l \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,44 +19,22 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" -msgstr "enkripsi" +msgstr "Enkripsi" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Enkripsi berkas aktif." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Tipe berkas berikut tidak akan dienkripsi:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Kecualikan tipe berkas berikut dari enkripsi:" #: templates/settings.php:12 msgid "None" -msgstr "tidak ada" +msgstr "Tidak ada" diff --git a/l10n/id/files_external.po b/l10n/id/files_external.po index cdec2730ac7a6c33007a1af706a9a7d490c6f0b9..38580c3495f2dcaae3f29cf8f3d90904bc3e3075 100644 --- a/l10n/id/files_external.po +++ b/l10n/id/files_external.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" +"Last-Translator: w41l \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,102 +21,102 @@ msgstr "" #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 msgid "Access granted" -msgstr "akses diberikan" +msgstr "Akses diberikan" #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 msgid "Error configuring Dropbox storage" -msgstr "" +msgstr "Kesalahan dalam mengkonfigurasi penyimpanan Dropbox" #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" -msgstr "berikan hak akses" +msgstr "Berikan hak akses" #: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" -msgstr "isi semua field yang dibutuhkan" +msgstr "Isi semua field yang dibutuhkan" #: js/dropbox.js:85 msgid "Please provide a valid Dropbox app key and secret." -msgstr "" +msgstr "Masukkan kunci dan sandi aplikasi Dropbox yang benar." #: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" -msgstr "" +msgstr "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Peringatan: \"smbclient\" tidak terpasang. Mount direktori CIFS/SMB tidak dapat dilakukan. Silakan minta administrator sistem untuk memasangnya." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Peringatan: Dukungan FTP di PHP tidak aktif atau tidak terpasang. Mount direktori FTP tidak dapat dilakukan. Silakan minta administrator sistem untuk memasangnya." #: templates/settings.php:3 msgid "External Storage" -msgstr "penyimpanan eksternal" +msgstr "Penyimpanan Eksternal" #: templates/settings.php:8 templates/settings.php:22 msgid "Mount point" -msgstr "" +msgstr "Lokasi mount" #: templates/settings.php:9 msgid "Backend" -msgstr "" +msgstr "Backend" #: templates/settings.php:10 msgid "Configuration" -msgstr "konfigurasi" +msgstr "Konfigurasi" #: templates/settings.php:11 msgid "Options" -msgstr "pilihan" +msgstr "Pilihan" #: templates/settings.php:12 msgid "Applicable" -msgstr "berlaku" +msgstr "Berlaku" #: templates/settings.php:27 msgid "Add mount point" -msgstr "" +msgstr "Tambah lokasi mount" #: templates/settings.php:85 msgid "None set" -msgstr "tidak satupun di set" +msgstr "Tidak satupun di set" #: templates/settings.php:86 msgid "All Users" -msgstr "semua pengguna" +msgstr "Semua Pengguna" #: templates/settings.php:87 msgid "Groups" -msgstr "grup" +msgstr "Grup" #: templates/settings.php:95 msgid "Users" -msgstr "pengguna" +msgstr "Pengguna" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" -msgstr "hapus" +msgstr "Hapus" #: templates/settings.php:124 msgid "Enable User External Storage" -msgstr "" +msgstr "Aktifkan Penyimpanan Eksternal Pengguna" #: templates/settings.php:125 msgid "Allow users to mount their own external storage" -msgstr "" +msgstr "Ijinkan pengguna untuk me-mount penyimpanan eksternal mereka" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" -msgstr "" +msgstr "Sertifikat root SSL" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" -msgstr "" +msgstr "Impor Sertifikat Root" diff --git a/l10n/id/files_trashbin.po b/l10n/id/files_trashbin.po index 074b7145fc57c2df741edc03b8b62bc9667bec3e..3fdc100c6354047c58b19fa0af668d8f42ca719f 100644 --- a/l10n/id/files_trashbin.po +++ b/l10n/id/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Tidak dapat menghapus permanen %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Tidak dapat memulihkan %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "jalankan operasi pemulihan" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" +msgstr "hapus berkas secara permanen" + +#: js/trash.js:121 +msgid "Delete permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" -msgstr "nama" +msgstr "Nama" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Dihapus" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" -msgstr "" +msgstr "1 map" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" -msgstr "" +msgstr "{count} map" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" -msgstr "" +msgstr "1 berkas" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" -msgstr "" +msgstr "{count} berkas" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Tempat sampah anda kosong!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Pulihkan" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Hapus" diff --git a/l10n/id/files_versions.po b/l10n/id/files_versions.po index 7b9d5d187457911fbda08084b22ddfe7fde89fd9..5bf91c3ed035f04561dbafbe25d3342f6efa2c5f 100644 --- a/l10n/id/files_versions.po +++ b/l10n/id/files_versions.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 03:00+0000\n" +"Last-Translator: w41l \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Tidak dapat mengembalikan: %s" + +#: history.php:40 +msgid "success" +msgstr "sukses" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Berkas %s telah dikembalikan ke versi %s" + +#: history.php:49 +msgid "failure" +msgstr "gagal" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Berkas %s gagal dikembalikan ke versi %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Versi lama tidak tersedia" + +#: history.php:73 +msgid "No path specified" +msgstr "Lokasi tidak ditentukan" + #: js/versions.js:16 msgid "History" msgstr "riwayat" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Kembalikan berkas ke versi sebelumnya dengan mengklik tombol kembalikan" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "pembuatan versi file" diff --git a/l10n/id/lib.po b/l10n/id/lib.po index 013ed9d846ca493767439613426a65c47590ce8d..2a62c2e77fd527213bc08ac70e4ba520fdabbc92 100644 --- a/l10n/id/lib.po +++ b/l10n/id/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "bantu" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "perseorangan" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "pengaturan" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "pengguna" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "aplikasi" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "download ZIP sedang dimatikan" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "file harus di unduh satu persatu" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "kembali ke daftar file" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "file yang dipilih terlalu besar untuk membuat file zip" @@ -87,6 +87,108 @@ msgstr "teks" msgid "Images" msgstr "Gambar" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "beberapa detik yang lalu" @@ -139,16 +241,16 @@ msgstr "tahun kemarin" msgid "years ago" msgstr "beberapa tahun lalu" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s tersedia. dapatkan info lebih lanjut" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "terbaru" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "pengecekan pembaharuan sedang non-aktifkan" diff --git a/l10n/id/settings.po b/l10n/id/settings.po index 2787995bd72b92380ddb453b74da4414c25d2a5d..620961e598f03c85c0a841fe767ca483e82d1d08 100644 --- a/l10n/id/settings.po +++ b/l10n/id/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -25,12 +25,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "autentikasi bermasalah" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -74,17 +74,17 @@ msgstr "Permintaan tidak valid" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -120,59 +120,265 @@ msgstr "kesalahan" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Menyimpan..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "dihapus" + +#: js/users.js:30 +msgid "undo" +msgstr "batal dikerjakan" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Group" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Admin Grup" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Hapus" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "peringatan keamanan" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "lagi" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Tambahkan App anda" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Pilih satu aplikasi" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Lihat halaman aplikasi di apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Pembaruan" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -181,116 +387,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klien" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "" - #: templates/personal.php:15 -msgid "Download iOS Client" +msgid "Get the apps to sync your files" +msgstr "Dapatkan aplikasi untuk sinkronisasi berkas anda" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Password" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Tidak dapat merubah password anda" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Password saat ini" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "kata kunci baru" -#: templates/personal.php:28 -msgid "show" -msgstr "perlihatkan" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Rubah password" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Alamat email anda" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Masukkan alamat email untuk mengaktifkan pemulihan password" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Bahasa" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Bantu menerjemahkan" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Group" - #: templates/users.php:32 msgid "Create" msgstr "Buat" @@ -299,34 +475,26 @@ msgstr "Buat" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Lain-lain" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Admin Grup" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Hapus" diff --git a/l10n/id/user_ldap.po b/l10n/id/user_ldap.po index ed63af8cccb91c7e3d69bdd2761c299ce1658dab..ca5a266207c70e00914a5b964b70e90f0f538aaf 100644 --- a/l10n/id/user_ldap.po +++ b/l10n/id/user_ldap.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Widya Walesa , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 03:00+0000\n" +"Last-Translator: w41l \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,23 +21,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Gagal menghapus konfigurasi server" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Konfigurasi valid dan koneksi dapat dilakukan!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Konfigurasi valid, tetapi Bind gagal. Silakan cek pengaturan server dan keamanan." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Konfigurasi salah. Silakan lihat log ownCloud untuk lengkapnya." #: js/settings.js:66 msgid "Deletion failed" @@ -44,267 +45,267 @@ msgstr "penghapusan gagal" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Ambil alih pengaturan dari konfigurasi server saat ini?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Biarkan pengaturan?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Gagal menambah konfigurasi server" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Tes koneksi sukses" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Tes koneksi gagal" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Anda ingin menghapus Konfigurasi Server saat ini?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Konfirmasi Penghapusan" #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "" +msgstr "Peringatan:/b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami kejadian yang tidak diharapkan. Silakan minta administrator sistem untuk menonaktifkan salah satunya." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Peringatan: Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Konfigurasi server" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Tambah Konfigurasi Server" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "host" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" -msgstr "" +msgstr "Protokol dapat tidak ditulis, kecuali anda menggunakan SSL. Lalu jalankan dengan ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" -msgstr "" +msgstr "Base DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" -msgstr "" +msgstr "Satu Base DN per baris" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" -msgstr "" +msgstr "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" -msgstr "" +msgstr "User DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." -msgstr "" +msgstr "DN dari klien pengguna yang dengannya tautan akan diterapkan, mis. uid=agen,dc=contoh,dc=com. Untuk akses anonim, biarkan DN dan kata sandi kosong." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "kata kunci" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." -msgstr "" +msgstr "Untuk akses anonim, biarkan DN dan Kata sandi kosong." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "gunakan saringan login" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." -msgstr "" +msgstr "Definisikan filter untuk diterapkan, saat login dilakukan. %%uid menggantikan username saat login." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" -msgstr "" +msgstr "gunakan pengganti %%uid, mis. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" -msgstr "" +msgstr "Daftar Filter Pengguna" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." -msgstr "" +msgstr "Definisikan filter untuk diterapkan saat menerima pengguna." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." -msgstr "" +msgstr "tanpa pengganti apapun, mis. \"objectClass=seseorang\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "saringan grup" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." -msgstr "" +msgstr "Definisikan filter untuk diterapkan saat menerima grup." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." -msgstr "" +msgstr "tanpa pengganti apapaun, mis. \"objectClass=posixGroup\"." -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Pengaturan Koneksi" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Konfigurasi Aktif" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Jika tidak dicentang, konfigurasi ini dilewati." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "port" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Host Cadangan (Replika)" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Berikan pilihan host cadangan. Harus merupakan replika dari server LDAP/AD utama." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Port Cadangan (Replika)" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Nonaktifkan Server Utama" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Saat diaktifkan, ownCloud hanya akan terhubung ke server replika." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "gunakan TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "jangan gunakan untuk koneksi SSL, itu akan gagal." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Jangan gunakan utamanya untuk koneksi LDAPS, koneksi akan gagal." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" -msgstr "" +msgstr "Server LDAP dengan kapitalisasi tidak sensitif (Windows)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "matikan validasi sertivikat SSL" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." -msgstr "" +msgstr "Jika koneksi hanya bekerja dengan opsi ini, impor sertifikat SSL server LDAP dari server ownCloud anda." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "tidak disarankan, gunakan hanya untuk pengujian." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "dalam detik. perubahan mengosongkan cache" -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Pengaturan Direktori" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" -msgstr "" +msgstr "Bidang Tampilan Nama Pengguna" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" +msgstr "Atribut LDAP yang digunakan untuk menghasilkan nama pengguna ownCloud." -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" -msgstr "" +msgstr "Pohon Pengguna Dasar" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" -msgstr "" +msgstr "Satu Pengguna Base DN per baris" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Atribut Pencarian Pengguna" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Pilihan; satu atribut per baris" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" -msgstr "" +msgstr "Bidang Tampilan Nama Grup" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." -msgstr "" +msgstr "Atribut LDAP yang digunakan untuk menghasilkan nama grup ownCloud." -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" -msgstr "" +msgstr "Pohon Grup Dasar" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" -msgstr "" +msgstr "Satu Grup Base DN per baris" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Atribut Pencarian Grup" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" -msgstr "" +msgstr "asosiasi Anggota-Grup" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Atribut Khusus" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "dalam bytes" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." -msgstr "" +msgstr "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "bantuan" diff --git a/l10n/is/core.po b/l10n/is/core.po index 5ab11b122def0ba2f726ea8dc25a56511e98aa6a..ff58acb1af5065eba0291394dfa631f56bb5bd07 100644 --- a/l10n/is/core.po +++ b/l10n/is/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "Enginn flokkur til að bæta við?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Þessi flokkur er þegar til:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "Nóvember" msgid "December" msgstr "Desember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Stillingar" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sek síðan" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 min síðan" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} min síðan" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Fyrir 1 klst." -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "fyrir {hours} klst." -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "í dag" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "í gær" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dagar síðan" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "síðasta mánuði" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "fyrir {months} mánuðum" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "mánuðir síðan" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "síðasta ári" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "árum síðan" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "Tegund ekki tilgreind" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Villa" @@ -252,15 +253,15 @@ msgstr "Nafn forrits ekki tilgreint" msgid "The required file {file} is not installed!" msgstr "Umbeðina skráin {file} ekki tiltæk!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Deila" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Deila" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Villa við deilingu" @@ -356,23 +357,23 @@ msgstr "eyða" msgid "share" msgstr "deila" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Verja með lykilorði" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Villa við að aftengja gildistíma" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Villa við að setja gildistíma" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sendi ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Tölvupóstur sendur" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "endursetja ownCloud lykilorð" @@ -468,7 +469,7 @@ msgstr "Breyta flokkum" msgid "Add" msgstr "Bæta" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Öryggis aðvörun" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "Enginn traustur slembitölugjafi í boði, vinsamlegast virkjaðu PHP OpenSSL viðbótina." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Án öruggs slembitölugjafa er mögulegt að sjá fyrir öryggis auðkenni til að endursetja lykilorð og komast inn á aðganginn þinn." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Gagnamappan þín er að öllum líkindum aðgengileg frá internetinu. Skráin .htaccess sem fylgir með ownCloud er ekki að virka. Við mælum eindregið með því að þú stillir vefþjóninn þannig að gagnamappan verði ekki aðgengileg frá internetinu eða færir hana út fyrir vefrótina." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Útbúa vefstjóra aðgang" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Ítarlegt" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Gagnamappa" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Stilla gagnagrunn" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "verður notað" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Gagnagrunns notandi" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Gagnagrunns lykilorð" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nafn gagnagrunns" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Töflusvæði gagnagrunns" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Netþjónn gagnagrunns" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Virkja uppsetningu" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "vefþjónusta undir þinni stjórn" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Útskrá" diff --git a/l10n/is/files.po b/l10n/is/files.po index 7e071bbb5dc3f02425145af43d04c8a4573cefc7..a3246ac5f4b3a7f23cf6e77bc03fdc8ee9b23050 100644 --- a/l10n/is/files.po +++ b/l10n/is/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Gat ekki fært %s - Skrá með þessu nafni er þegar til" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Gat ekki fært %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Gat ekki endurskýrt skrá" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Engin skrá var send inn. Óþekkt villa." @@ -54,8 +68,8 @@ msgid "Failed to write to disk" msgstr "Tókst ekki að skrifa á disk" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Ekki nægt pláss tiltækt" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -65,51 +79,52 @@ msgstr "Ógild mappa." msgid "Files" msgstr "Skrár" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Hætta deilingu" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Eyða" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Endurskýra" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Bíður" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} er þegar til" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "yfirskrifa" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "stinga upp á nafni" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "hætta við" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "endurskýrði {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "afturkalla" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "yfirskrifaði {new_name} með {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Innsending á skrá mistókst, hugsanlega sendir þú möppu eða skráin er 0 bæti." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Villa við innsendingu" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Loka" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Bíður" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 skrá innsend" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} skrár innsendar" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Hætt við innsendingu." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Vefslóð má ekki vera tóm." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Óleyfilegt nafn á möppu. Nafnið 'Shared' er frátekið fyrir Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nafn" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Stærð" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Breytt" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappa" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} möppur" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 skrá" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} skrár" @@ -263,7 +274,7 @@ msgid "From link" msgstr "Af tengli" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "Ekkert hér. Settu eitthvað inn!" msgid "Download" msgstr "Niðurhal" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Hætta deilingu" + #: templates/index.php:105 msgid "Upload too large" msgstr "Innsend skrá er of stór" diff --git a/l10n/is/files_encryption.po b/l10n/is/files_encryption.po index 4d128e6b4fe6c83a81c03fddf23461277d26da36..63f151c73c1b3356e86731923977b5802eacb7d6 100644 --- a/l10n/is/files_encryption.po +++ b/l10n/is/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Dulkóðun" diff --git a/l10n/is/files_external.po b/l10n/is/files_external.po index 1e8fbe75517ab54442c2e456b9b7dfd3d22088b4..80e9667abb7295a1188c073f5aca4e0004a56710 100644 --- a/l10n/is/files_external.po +++ b/l10n/is/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-31 00:04+0100\n" -"PO-Revision-Date: 2012-12-30 18:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: sveinn \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Gefðu upp virkan Dropbox lykil og leynikóða" msgid "Error configuring Google Drive storage" msgstr "Villa kom upp við að setja upp Google Drive gagnasvæði" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Aðvörun: \"smbclient\" er ekki uppsettur. Uppsetning á CIFS/SMB gagnasvæðum er ekki möguleg. Hafðu samband við kerfisstjóra til að fá hann uppsettan." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Leyfa notendum að bæta við sínum eigin ytri gagnasvæðum" msgid "SSL root certificates" msgstr "SSL rótar skilríki" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Flytja inn rótar skilríki" diff --git a/l10n/is/files_trashbin.po b/l10n/is/files_trashbin.po index a738a0a24a45ff1f6bb78eab448b4dacc0013c7d..b5725ca57fac418e256806845ad8508dbc91cf7d 100644 --- a/l10n/is/files_trashbin.po +++ b/l10n/is/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nafn" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mappa" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} möppur" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 skrá" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} skrár" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Eyða" diff --git a/l10n/is/files_versions.po b/l10n/is/files_versions.po index 1a0acfa5b88979c703ba22767fd95e41f23287d0..5ee90ab20db01103296ddec66da9b1c510e8689d 100644 --- a/l10n/is/files_versions.po +++ b/l10n/is/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Saga" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Útgáfur af skrám" diff --git a/l10n/is/lib.po b/l10n/is/lib.po index e6b54f855f2462f30a50667767b48cdb9e6e4ad4..83f91466f73e131c6d05be8f684f156b13c94d66 100644 --- a/l10n/is/lib.po +++ b/l10n/is/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hjálp" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Um mig" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Stillingar" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Notendur" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Forrit" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Stjórnun" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Slökkt á ZIP niðurhali." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Skrárnar verður að sækja eina og eina" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Aftur í skrár" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Valdar skrár eru of stórar til að búa til ZIP skrá." @@ -86,6 +86,108 @@ msgstr "Texti" msgid "Images" msgstr "Myndir" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "sek." @@ -138,16 +240,16 @@ msgstr "síðasta ári" msgid "years ago" msgstr "einhverjum árum" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s er í boði. Sækja meiri upplýsingar" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "nýjasta útgáfa" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "uppfærslupróf er ekki virkjað" diff --git a/l10n/is/settings.po b/l10n/is/settings.po index fea2c3787841530bba7738749248c0df909658f5..d4ff8d5ce670ba0128174844f6fd3d2e7189229e 100644 --- a/l10n/is/settings.po +++ b/l10n/is/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Ekki tókst að hlaða lista frá forrita síðu" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Villa við auðkenningu" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "Ógild fyrirspurn" msgid "Admins can't remove themself from the admin group" msgstr "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Ekki tókst að bæta notenda við hópinn %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Ekki tókst að fjarlægja notanda úr hópnum %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "Villa" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Er að vista ..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "afturkalla" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Hópar" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Hópstjóri" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Eyða" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__nafn_tungumáls__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Öryggis aðvörun" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Gagnamappan þín er að öllum líkindum aðgengileg frá internetinu. Skráin .htaccess sem fylgir með ownCloud er ekki að virka. Við mælum eindregið með því að þú stillir vefþjóninn þannig að gagnamappan verði ekki aðgengileg frá internetinu eða færir hana út fyrir vefrótina." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Meira" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Útgáfa" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Þróað af ownCloud samfélaginu, forrita kóðinn er skráðu með AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Bæta við forriti" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Fleiri forrit" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Veldu forrit" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Skoða síðu forrits hjá apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-leyfi skráð af " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Uppfæra" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Notenda handbók" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Stjórnenda handbók" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Handbók á netinu" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Vefspjall" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Villubókhald" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Borgaður stuðningur" @@ -178,116 +384,86 @@ msgstr "Borgaður stuðningur" msgid "You have used %s of the available %s" msgstr "Þú hefur notað %s af tiltæku %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Notendahugbúnaður" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Hlaða niður notendahugbúnaði" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Hlaða niður Andoid hugbúnaði" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Hlaða niður iOS hugbúnaði" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Lykilorð" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Lykilorði þínu hefur verið breytt" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Ekki tókst að breyta lykilorðinu þínu" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Núverandi lykilorð" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nýtt lykilorð" -#: templates/personal.php:28 -msgid "show" -msgstr "sýna" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Breyta lykilorði" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Netfang" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Netfangið þitt" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Sláðu inn netfangið þitt til að virkja endurheimt á lykilorði" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Tungumál" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hjálpa við þýðingu" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Notaðu þessa vefslóð til að tengjast ownCloud svæðinu þínu" -#: templates/personal.php:85 -msgid "Version" -msgstr "Útgáfa" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Þróað af ownCloud samfélaginu, forrita kóðinn er skráðu með AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Hópar" - #: templates/users.php:32 msgid "Create" msgstr "Búa til" @@ -296,34 +472,26 @@ msgstr "Búa til" msgid "Default Storage" msgstr "Sjálfgefin gagnageymsla" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ótakmarkað" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Annað" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Hópstjóri" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "gagnapláss" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Sjálfgefið" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Eyða" diff --git a/l10n/is/user_ldap.po b/l10n/is/user_ldap.po index 7cfe3d0a425d8d13ea27bcb4822fc8b1aeaf62d2..7bc782a7b3cf300c22f9d91e7c007f39f8ab419c 100644 --- a/l10n/is/user_ldap.po +++ b/l10n/is/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -214,7 +214,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/it/core.po b/l10n/it/core.po index c6392780233be6e458d0802601434a826ea417d6..e1bca79ae849a921d27e28adb3406f19c19a275e 100644 --- a/l10n/it/core.po +++ b/l10n/it/core.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -56,8 +56,9 @@ msgid "No category to add?" msgstr "Nessuna categoria da aggiungere?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Questa categoria esiste già: " +#, php-format +msgid "This category already exists: %s" +msgstr "Questa categoria esiste già: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -161,59 +162,59 @@ msgstr "Novembre" msgid "December" msgstr "Dicembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Impostazioni" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "secondi fa" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "Un minuto fa" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minuti fa" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 ora fa" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} ore fa" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "oggi" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ieri" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} giorni fa" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "mese scorso" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} mesi fa" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "mesi fa" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "anno scorso" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "anni fa" @@ -243,8 +244,8 @@ msgid "The object type is not specified." msgstr "Il tipo di oggetto non è specificato." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Errore" @@ -256,15 +257,15 @@ msgstr "Il nome dell'applicazione non è specificato." msgid "The required file {file} is not installed!" msgstr "Il file richiesto {file} non è installato!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Condividi" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Condivisi" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Condividi" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Errore durante la condivisione" @@ -360,23 +361,23 @@ msgstr "eliminare" msgid "share" msgstr "condividere" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protetta da password" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Errore durante la rimozione della data di scadenza" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Errore durante l'impostazione della data di scadenza" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Invio in corso..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Messaggio inviato" @@ -391,7 +392,7 @@ msgstr "L'aggiornamento non è riuscito. Segnala il problema alla documentation." +msgstr "Per informazioni su come configurare correttamente il server, vedi la documentazione." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crea un account amministratore" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avanzate" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Cartella dati" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configura il database" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "sarà utilizzato" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Utente del database" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Password del database" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nome del database" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Spazio delle tabelle del database" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Host del database" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Termina la configurazione" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servizi web nelle tue mani" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Esci" @@ -578,7 +583,7 @@ msgstr "Accedi" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Accessi alternativi" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/it/files.po b/l10n/it/files.po index e419f624ccad4b281025898296adc9c0279eb6b3..0a7342312fbdab6333a80f2faa36d391323f3061 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +21,20 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Impossibile spostare %s - un file con questo nome esiste già" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Impossibile spostare %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Impossibile rinominare il file" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nessun file è stato inviato. Errore sconosciuto" @@ -57,8 +71,8 @@ msgid "Failed to write to disk" msgstr "Scrittura su disco non riuscita" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Spazio disponibile insufficiente" +msgid "Not enough storage available" +msgstr "Spazio di archiviazione insufficiente" #: ajax/upload.php:83 msgid "Invalid directory." @@ -68,51 +82,52 @@ msgstr "Cartella non valida." msgid "Files" msgstr "File" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Rimuovi condivisione" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Elimina definitivamente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Elimina" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Rinomina" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "In corso" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} esiste già" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "sostituisci" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "suggerisci nome" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "annulla" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "sostituito {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "annulla" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "sostituito {new_name} con {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "esegui l'operazione di eliminazione" @@ -138,78 +153,74 @@ msgstr "Lo spazio di archiviazione è pieno, i file non possono essere più aggi msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Il tuo scaricamento è in fase di preparazione. Ciò potrebbe richiedere del tempo se i file sono grandi." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Errore di invio" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Chiudi" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "In corso" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 file in fase di caricamento" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} file in fase di caricamentoe" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Invio annullato" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "L'URL non può essere vuoto." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome della cartella non valido. L'uso di 'Shared' è riservato da ownCloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimensione" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificato" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 cartella" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} cartelle" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 file" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} file" @@ -266,8 +277,8 @@ msgid "From link" msgstr "Da collegamento" #: templates/index.php:40 -msgid "Trash" -msgstr "Cestino" +msgid "Deleted files" +msgstr "File eliminati" #: templates/index.php:46 msgid "Cancel upload" @@ -281,6 +292,10 @@ msgstr "Non c'è niente qui. Carica qualcosa!" msgid "Download" msgstr "Scarica" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Rimuovi condivisione" + #: templates/index.php:105 msgid "Upload too large" msgstr "Il file caricato è troppo grande" diff --git a/l10n/it/files_encryption.po b/l10n/it/files_encryption.po index 843b2a267d5c4d82f76d785ed9c340045de2dd00..e94b78922132488a6ca7c664bc3fdcdcfb47cdf4 100644 --- a/l10n/it/files_encryption.po +++ b/l10n/it/files_encryption.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-05 23:20+0000\n" -"Last-Translator: Vincenzo Reale \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,28 +18,6 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Passa al tuo client ownCloud e cambia la password di cifratura per completare la conversione." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "passato alla cifratura lato client" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Converti la password di cifratura nella password di accesso" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Controlla la password e prova ancora." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Impossibile convertire la password di cifratura nella password di accesso" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Cifratura" diff --git a/l10n/it/files_external.po b/l10n/it/files_external.po index 970dad99d8e486038a7559c94bb2bd394ab257ad..70cda861beeb2d3bc2107914c0ef43f908a52736 100644 --- a/l10n/it/files_external.po +++ b/l10n/it/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:42+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Fornisci chiave di applicazione e segreto di Dropbox validi." msgid "Error configuring Google Drive storage" msgstr "Errore durante la configurazione dell'archivio Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Avviso: \"smbclient\" non è installato. Impossibile montare condivisioni CIFS/SMB. Chiedi all'amministratore di sistema di installarlo." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Utenti" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Elimina" @@ -113,10 +113,10 @@ msgstr "Abilita la memoria esterna dell'utente" msgid "Allow users to mount their own external storage" msgstr "Consenti agli utenti di montare la propria memoria esterna" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Certificati SSL radice" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importa certificato radice" diff --git a/l10n/it/files_trashbin.po b/l10n/it/files_trashbin.po index 8e3a6451a8e31ba34d27c5c19a15fc65256ef021..24a94de9a343cfa65a2515a148626d1a67c8a8a6 100644 --- a/l10n/it/files_trashbin.po +++ b/l10n/it/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Impossibile eliminare %s definitivamente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Impossibile ripristinare %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "esegui operazione di ripristino" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "elimina il file definitivamente" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Elimina definitivamente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nome" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Eliminati" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 cartella" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} cartelle" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 file" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} file" @@ -57,3 +71,7 @@ msgstr "Qui non c'è niente. Il tuo cestino è vuoto." #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Ripristina" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Elimina" diff --git a/l10n/it/files_versions.po b/l10n/it/files_versions.po index 5bb90cec909834d944dd1671096387b729c4d82b..8953241ed54c324d74b19db3c42989332b441216 100644 --- a/l10n/it/files_versions.po +++ b/l10n/it/files_versions.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Vincenzo Reale , 2012. +# Vincenzo Reale , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-07 23:40+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Impossibild ripristinare: %s" + +#: history.php:40 +msgid "success" +msgstr "completata" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Il file %s è stato ripristinato alla versione %s" + +#: history.php:49 +msgid "failure" +msgstr "non riuscita" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Il file %s non può essere ripristinato alla versione %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Non sono disponibili versioni precedenti" + +#: history.php:73 +msgid "No path specified" +msgstr "Nessun percorso specificato" + #: js/versions.js:16 msgid "History" msgstr "Cronologia" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Ripristina un file a una versione precedente facendo clic sul rispettivo pulsante di ripristino" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Controllo di versione dei file" diff --git a/l10n/it/lib.po b/l10n/it/lib.po index e162e94ad32ffd6b34cf425f90eeaf8f3ea81fb9..fd9a824c26a95299838f9fc5d662a27b441cc1ab 100644 --- a/l10n/it/lib.po +++ b/l10n/it/lib.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 06:44+0000\n" -"Last-Translator: Vincenzo Reale \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +18,43 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Aiuto" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personale" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Impostazioni" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Utenti" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Applicazioni" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Lo scaricamento in formato ZIP è stato disabilitato." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "I file devono essere scaricati uno alla volta." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Torna ai file" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "I file selezionati sono troppo grandi per generare un file zip." @@ -86,6 +86,108 @@ msgstr "Testo" msgid "Images" msgstr "Immagini" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Imposta un nome utente di amministrazione." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Imposta una password di amministrazione." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Specifica una cartella dei dati." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s digita il nome utente del database." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s digita il nome del database." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s non dovresti utilizzare punti nel nome del database" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s imposta l'host del database." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nome utente e/o password di PostgreSQL non validi" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "È necessario inserire un account esistente o l'amministratore." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nome utente e/o password di Oracle non validi" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nome utente e/o password di MySQL non validi" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Errore DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Il comando non consentito era: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "L'utente MySQL '%s'@'localhost' esiste già." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Elimina questo utente da MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "L'utente MySQL '%s'@'%%' esiste già" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Elimina questo utente da MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Il comando non consentito era: \"%s\", nome: %s, password: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra essere danneggiata." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Leggi attentamente le guide d'installazione." + #: template.php:113 msgid "seconds ago" msgstr "secondi fa" @@ -138,16 +240,16 @@ msgstr "l'anno scorso" msgid "years ago" msgstr "anni fa" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s è disponibile. Ottieni ulteriori informazioni" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "aggiornato" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "il controllo degli aggiornamenti è disabilitato" diff --git a/l10n/it/settings.po b/l10n/it/settings.po index 6b729305e4266f9d64b2efccfa4bcfa35e9dd2d9..5875760d5d4e6d5c6c9b0665d897c8cd53b9f5aa 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -28,14 +28,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Impossibile caricare l'elenco dall'App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Errore di autenticazione" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Impossibile cambiare il nome visualizzato" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -77,17 +77,17 @@ msgstr "Richiesta non valida" msgid "Admins can't remove themself from the admin group" msgstr "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Impossibile aggiungere l'utente al gruppo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Impossibile rimuovere l'utente dal gruppo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Impossibile aggiornate l'applicazione." @@ -123,59 +123,265 @@ msgstr "Errore" msgid "Updated" msgstr "Aggiornato" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Salvataggio in corso..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "eliminati" + +#: js/users.js:30 +msgid "undo" +msgstr "annulla" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Impossibile rimuovere l'utente" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruppi" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppi amministrati" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Elimina" + +#: js/users.js:191 +msgid "add group" +msgstr "aggiungi gruppo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Deve essere fornito un nome utente valido" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Errore durante la creazione dell'utente" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Deve essere fornita una password valida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Italiano" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Avviso di sicurezza" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet. Il file .htaccess fornito da ownCloud non funziona. Ti suggeriamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o sposta tale cartella fuori dalla radice del sito." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Avviso di configurazione" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra essere danneggiata." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Leggi attentamente le guide d'installazione." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Modulo 'fileinfo' mancante" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Il modulo PHP 'fileinfo' non è presente. Consigliamo vivamente di abilitare questo modulo per ottenere risultati migliori con il rilevamento dei tipi MIME." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Locale non funzionante" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Concessione Internet non funzionante" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Questo server ownCloud non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. Anche l'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità di ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Esegui un'operazione con ogni pagina caricata" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php è registrato su un sevizio webcron. Invoca la pagina cron.php nella radice di ownCloud ogni minuto, tramite http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Utilizza il servizio cron di sistema. Invoca il file cron.php nella cartella di ownCloud tramite un job ogni minuto." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Condivisione" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Abilita API di condivisione" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Consenti alle applicazioni di utilizzare le API di condivisione" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Consenti collegamenti" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Consenti agli utenti di condividere pubblicamente elementi tramite collegamenti" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Consenti la ri-condivisione" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Consenti agli utenti di condividere a loro volta elementi condivisi da altri" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Consenti agli utenti di condividere con chiunque" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Consenti agli utenti di condividere solo con utenti dei loro gruppi" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Protezione" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forza HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Obbliga i client a connettersi a ownCloud tramite una confessione cifrata." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Connettiti a questa istanza di ownCloud tramite HTTPS per abilitare o disabilitare la protezione SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Livello di log" + +#: templates/admin.php:223 +msgid "More" +msgstr "Più" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versione" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Sviluppato dalla comunità di ownCloud, il codice sorgente è rilasciato nei termini della licenza AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Aggiungi la tua applicazione" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Altre applicazioni" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Seleziona un'applicazione" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Vedere la pagina dell'applicazione su apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenziato da " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Aggiorna" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentazione utente" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentazione amministratore" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentazione in linea" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Sistema di tracciamento bug" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Supporto commerciale" @@ -184,116 +390,86 @@ msgstr "Supporto commerciale" msgid "You have used %s of the available %s" msgstr "Hai utilizzato %s dei %s disponibili" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Client" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Scarica client desktop" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Scarica client Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Scarica client iOS" +msgid "Get the apps to sync your files" +msgstr "Scarica le applicazioni per sincronizzare i tuoi file" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Mostra nuovamente la procedura di primo avvio" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Password" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "La tua password è cambiata" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Modifica password non riuscita" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Password attuale" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nuova password" -#: templates/personal.php:28 -msgid "show" -msgstr "mostra" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Modifica password" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nome visualizzato" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Il tuo nome visualizzato è stato cambiato" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Impossibile cambiare il tuo nome visualizzato" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Cambia il nome visualizzato" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Il tuo indirizzo email" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Inserisci il tuo indirizzo email per abilitare il recupero della password" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Lingua" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Migliora la traduzione" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Usa questo indirizzo per connetterti al tuo ownCloud dal tuo gestore file" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versione" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Sviluppato dalla comunità di ownCloud, il codice sorgente è licenziato nei termini della AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nome utente" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruppi" - #: templates/users.php:32 msgid "Create" msgstr "Crea" @@ -302,34 +478,26 @@ msgstr "Crea" msgid "Default Storage" msgstr "Archiviazione predefinita" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Illimitata" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Altro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppi amministrati" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Archiviazione" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "cambia il nome visualizzato" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "imposta una nuova password" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Predefinito" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Elimina" diff --git a/l10n/it/user_ldap.po b/l10n/it/user_ldap.po index 4f07adf6ee3aa5c932b7561e9146b059a32ec68a..9dcf0043194db6fd3727dfdef7f225beb3005f33 100644 --- a/l10n/it/user_ldap.po +++ b/l10n/it/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:05+0100\n" -"PO-Revision-Date: 2013-02-02 23:30+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-07 23:40+0000\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Usa TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Non utilizzare per le connessioni SSL, fallirà." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Da non utilizzare per le connessioni LDAPS, non funzionerà." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 0668a44ddc3f6cbeeebc68a4a7a577bfecc71a83..c9a3092c49a6c57fcf11d27061cb168ac467a928 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "追加するカテゴリはありませんか?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "このカテゴリはすでに存在します: " +#, php-format +msgid "This category already exists: %s" +msgstr "このカテゴリはすでに存在します: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "11月" msgid "December" msgstr "12月" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "設定" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "秒前" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 分前" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} 分前" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 時間前" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} 時間前" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "今日" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "昨日" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} 日前" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "一月前" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} 月前" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "月前" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "一年前" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "年前" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "オブジェクタイプが指定されていません。" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "エラー" @@ -253,15 +254,15 @@ msgstr "アプリ名がしていされていません。" msgid "The required file {file} is not installed!" msgstr "必要なファイル {file} がインストールされていません!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "共有" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "共有中" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "共有" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "共有でエラー発生" @@ -357,23 +358,23 @@ msgstr "削除" msgid "share" msgstr "共有" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "パスワード保護" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "有効期限の未設定エラー" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "有効期限の設定でエラー発生" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "送信中..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "メールを送信しました" @@ -388,7 +389,7 @@ msgstr "更新に成功しました。この問題を documentation." +msgstr "あなたのサーバの適切な設定に関する情報として、ドキュメントを参照して下さい。" #: templates/installation.php:36 msgid "Create an admin account" msgstr "管理者アカウントを作成してください" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "詳細設定" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "データフォルダ" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "データベースを設定してください" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "が使用されます" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "データベースのユーザ名" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "データベースのパスワード" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "データベース名" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "データベースの表領域" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "データベースのホスト名" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "セットアップを完了します" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "管理下にあるウェブサービス" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "ログアウト" @@ -575,7 +580,7 @@ msgstr "ログイン" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "代替ログイン" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po index cd42db946c4991aeb4ed846ef8396e7091601020..1a9d5e61da3ebdbfe8a3bd02c0f5a0feecf79d8f 100644 --- a/l10n/ja_JP/files.po +++ b/l10n/ja_JP/files.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,6 +22,20 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s を移動できませんでした ― この名前のファイルはすでに存在します" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s を移動できませんでした" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "ファイル名の変更ができません" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ファイルは何もアップロードされていません。不明なエラー" @@ -58,8 +72,8 @@ msgid "Failed to write to disk" msgstr "ディスクへの書き込みに失敗しました" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "利用可能なスペースが十分にありません" +msgid "Not enough storage available" +msgstr "ストレージに十分な空き容量がありません" #: ajax/upload.php:83 msgid "Invalid directory." @@ -69,51 +83,52 @@ msgstr "無効なディレクトリです。" msgid "Files" msgstr "ファイル" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "共有しない" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "完全に削除する" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "削除" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "名前の変更" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "保留" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} はすでに存在しています" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "置き換え" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "推奨名称" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "キャンセル" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} を置換" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "元に戻す" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} を {new_name} に置換" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "削除を実行" @@ -139,78 +154,74 @@ msgstr "あなたのストレージは一杯です。ファイルの更新と同 msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "あなたのストレージはほぼ一杯です({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "ダウンロードの準備中です。ファイルサイズが大きい場合は少し時間がかかるかもしれません。" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ディレクトリもしくは0バイトのファイルはアップロードできません" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "アップロードエラー" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "閉じる" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "保留" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "ファイルを1つアップロード中" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} ファイルをアップロード中" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "アップロードはキャンセルされました。" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URLは空にできません。" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無効なフォルダ名です。'Shared' の利用は ownCloud が予約済みです。" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名前" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "サイズ" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "更新日時" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 フォルダ" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} フォルダ" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ファイル" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ファイル" @@ -267,8 +278,8 @@ msgid "From link" msgstr "リンク" #: templates/index.php:40 -msgid "Trash" -msgstr "ゴミ箱" +msgid "Deleted files" +msgstr "削除ファイル" #: templates/index.php:46 msgid "Cancel upload" @@ -282,6 +293,10 @@ msgstr "ここには何もありません。何かアップロードしてくだ msgid "Download" msgstr "ダウンロード" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "共有しない" + #: templates/index.php:105 msgid "Upload too large" msgstr "ファイルサイズが大きすぎます" diff --git a/l10n/ja_JP/files_encryption.po b/l10n/ja_JP/files_encryption.po index 95a52309047e84b011f51cccc977f4864ddda83e..6d5a563dfe035058e3aa36226522400ca440607d 100644 --- a/l10n/ja_JP/files_encryption.po +++ b/l10n/ja_JP/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,21 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "変換を完了するために、ownCloud クライアントに切り替えて、暗号化パスワードを変更してください。" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "クライアントサイドの暗号化に切り替えました" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "暗号化パスワードをログインパスワードに変更" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "パスワードを確認してもう一度行なってください。" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "ファイル暗号化パスワードをログインパスワードに変更できませんでした。" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "暗号化" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "ファイルの暗号化は有効です。" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "次のファイルタイプは暗号化されません:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "次のファイルタイプを暗号化から除外:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/ja_JP/files_external.po b/l10n/ja_JP/files_external.po index 6e0b94a6f3fb9491a6b2576ec1624e6087fe64fd..547237c1cd34b05ae1cea4e8303d2558d7660588 100644 --- a/l10n/ja_JP/files_external.po +++ b/l10n/ja_JP/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-12 12:24+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "有効なDropboxアプリのキーとパスワードを入力して下 msgid "Error configuring Google Drive storage" msgstr "Googleドライブストレージの設定エラー" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "警告: \"smbclient\" はインストールされていません。CIFS/SMB 共有のマウントはできません。システム管理者にインストールをお願いして下さい。" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "ユーザ" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "削除" @@ -113,10 +113,10 @@ msgstr "ユーザの外部ストレージを有効にする" msgid "Allow users to mount their own external storage" msgstr "ユーザに外部ストレージのマウントを許可する" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSLルート証明書" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "ルート証明書をインポート" diff --git a/l10n/ja_JP/files_trashbin.po b/l10n/ja_JP/files_trashbin.po index f5fcfbe9a02f1847b1c4bd1fb1d494c6e8b62eb6..7e5b2cb54a75d8205ca267e2b8357bc987ffbf74 100644 --- a/l10n/ja_JP/files_trashbin.po +++ b/l10n/ja_JP/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "%s を完全に削除出来ませんでした" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "%s を復元出来ませんでした" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "復元操作を実行する" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "ファイルを完全に削除する" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "完全に削除する" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "名前" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "削除済み" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 フォルダ" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} フォルダ" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ファイル" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} ファイル" @@ -57,3 +71,7 @@ msgstr "ここには何もありません。ゴミ箱は空です!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "復元" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "削除" diff --git a/l10n/ja_JP/files_versions.po b/l10n/ja_JP/files_versions.po index 5ebe43b4854401f04d91122300c15795b56058bd..79e1e19a4652be39b047c965377fe6e50a8cea30 100644 --- a/l10n/ja_JP/files_versions.po +++ b/l10n/ja_JP/files_versions.po @@ -4,14 +4,15 @@ # # Translators: # Daisuke Deguchi , 2012. +# Daisuke Deguchi , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 04:20+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "元に戻せませんでした: %s" + +#: history.php:40 +msgid "success" +msgstr "成功" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "ファイル %s をバージョン %s に戻しました" + +#: history.php:49 +msgid "failure" +msgstr "失敗" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "ファイル %s をバージョン %s に戻せませんでした" + +#: history.php:68 +msgid "No old versions available" +msgstr "利用可能な古いバージョンはありません" + +#: history.php:73 +msgid "No path specified" +msgstr "パスが指定されていません" + #: js/versions.js:16 msgid "History" msgstr "履歴" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "もとに戻すボタンをクリックすると、ファイルを過去のバージョンに戻します" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "ファイルのバージョン管理" diff --git a/l10n/ja_JP/lib.po b/l10n/ja_JP/lib.po index 8dca4957997a6845ae1d4f3894757844f255e5ab..b4de519996a5a8e4f921695178f4a84ce8154410 100644 --- a/l10n/ja_JP/lib.po +++ b/l10n/ja_JP/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-19 00:04+0100\n" -"PO-Revision-Date: 2013-01-18 08:12+0000\n" -"Last-Translator: Daisuke Deguchi \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,43 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "ヘルプ" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "個人設定" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "設定" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "ユーザ" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "アプリ" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "管理者" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIPダウンロードは無効です。" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "ファイルは1つずつダウンロードする必要があります。" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "ファイルに戻る" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "選択したファイルはZIPファイルの生成には大きすぎます。" @@ -87,6 +87,108 @@ msgstr "TTY TDD" msgid "Images" msgstr "画像" +#: setup.php:34 +msgid "Set an admin username." +msgstr "管理者のユーザ名を設定。" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "管理者のパスワードを設定。" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "データフォルダを指定。" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s のデータベースのユーザ名を入力してください。" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s のデータベース名を入力してください。" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s ではデータベース名にドットを利用できないかもしれません。" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s にデータベースホストを設定します。" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQLのユーザ名もしくはパスワードは有効ではありません" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "既存のアカウントもしくは管理者のどちらかを入力する必要があります。" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracleのユーザ名もしくはパスワードは有効ではありません" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQLのユーザ名もしくはパスワードは有効ではありません" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DBエラー: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "違反コマンド: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQLのユーザ '%s'@'localhost' はすでに存在します。" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "MySQLからこのユーザを削除" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQLのユーザ '%s'@'%%' はすでに存在します。" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "MySQLからこのユーザを削除する。" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "違反コマンド: \"%s\"、名前: %s、パスワード: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "インストールガイドをよく確認してください。" + #: template.php:113 msgid "seconds ago" msgstr "秒前" @@ -139,16 +241,16 @@ msgstr "昨年" msgid "years ago" msgstr "年前" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s が利用可能です。詳細情報 を確認ください" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "最新です" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "更新チェックは無効です" diff --git a/l10n/ja_JP/settings.po b/l10n/ja_JP/settings.po index 1774eebf3f3a57e57e9e65d32657fe937c8148c5..b924c53a569c30d3befeb72181171b020e908e2f 100644 --- a/l10n/ja_JP/settings.po +++ b/l10n/ja_JP/settings.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -26,14 +26,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "アプリストアからリストをロードできません" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "認証エラー" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "表示名を変更できません" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -75,17 +75,17 @@ msgstr "無効なリクエストです" msgid "Admins can't remove themself from the admin group" msgstr "管理者は自身を管理者グループから削除できません。" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "ユーザをグループ %s に追加できません" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "ユーザをグループ %s から削除できません" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "アプリを更新出来ませんでした。" @@ -121,59 +121,265 @@ msgstr "エラー" msgid "Updated" msgstr "更新済み" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "保存中..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "削除" + +#: js/users.js:30 +msgid "undo" +msgstr "元に戻す" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "ユーザを削除出来ません" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "グループ" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "グループ管理者" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "削除" + +#: js/users.js:191 +msgid "add group" +msgstr "グループを追加" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "有効なユーザ名を指定する必要があります" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "ユーザ作成エラー" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "有効なパスワードを指定する必要があります" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Japanese (日本語)" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "セキュリティ警告" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "データディレクトリとファイルが恐らくインターネットからアクセスできるようになっています。ownCloudが提供する .htaccessファイルが機能していません。データディレクトリを全くアクセスできないようにするか、データディレクトリをウェブサーバのドキュメントルートの外に置くようにウェブサーバを設定することを強くお勧めします。 " + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "セットアップ警告" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "インストールガイドをよく確認してください。" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "モジュール 'fileinfo' が見つかりません" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "ロケールが動作していません" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "インターネット接続が動作していません" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "この ownCloud サーバには有効なインターネット接続がありません。これは、外部ストレージのマウント、更新の通知、サードパーティ製アプリのインストール、のようないくつかの機能が動作しないことを意味しています。リモートからファイルにアクセスしたり、通知メールを送信したりすることもできません。全ての機能を利用するためには、このサーバのインターネット接続を有効にすることを推奨します。" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "各ページの読み込み時にタスクを実行する" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php は webcron サービスに登録されています。owncloud のルートにある cron.php のページを http 経由で1分に1回呼び出して下さい。" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "システムの cron サービスを利用する。システムの cronjob を通して1分に1回 owncloud 内の cron.php ファイルを呼び出して下さい。" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "共有" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "共有APIを有効にする" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "アプリからの共有APIの利用を許可する" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "リンクを許可する" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "リンクによりアイテムを公開することを許可する" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "再共有を許可する" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "ユーザが共有しているアイテムの再共有を許可する" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "ユーザが誰とでも共有することを許可する" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "ユーザにグループ内のユーザとのみ共有を許可する" + +#: templates/admin.php:168 +msgid "Security" +msgstr "セキュリティ" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "常にHTTPSを使用する" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "クライアントからownCloudへの接続を常に暗号化する" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "常にSSL接続を有効/無効にするために、HTTPS経由でこの ownCloud に接続して下さい。" + +#: templates/admin.php:195 +msgid "Log" +msgstr "ログ" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "ログレベル" + +#: templates/admin.php:223 +msgid "More" +msgstr "詳細" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "バージョン" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "ownCloud communityにより開発されています、ソースコードライセンスは、AGPL ライセンスにより提供されています。" + +#: templates/apps.php:11 msgid "Add your App" msgstr "アプリを追加" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "さらにアプリを表示" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "アプリを選択してください" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "apps.owncloud.com でアプリケーションのページを見てください" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-ライセンス: " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "更新" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "ユーザドキュメント" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "管理者ドキュメント" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "オンラインドキュメント" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "フォーラム" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "バグトラッカー" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "コマーシャルサポート" @@ -182,116 +388,86 @@ msgstr "コマーシャルサポート" msgid "You have used %s of the available %s" msgstr "現在、%s / %s を利用しています" -#: templates/personal.php:12 -msgid "Clients" -msgstr "顧客" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "デスクトップクライアントをダウンロード" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Androidクライアントをダウンロード" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOSクライアントをダウンロード" +msgid "Get the apps to sync your files" +msgstr "あなたのファイルを同期するためのアプリを取得" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "初回実行ウィザードを再度表示する" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "パスワード" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "パスワードを変更しました" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "パスワードを変更することができません" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "現在のパスワード" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "新しいパスワード" -#: templates/personal.php:28 -msgid "show" -msgstr "表示" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "パスワードを変更" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "表示名" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "あなたの表示名を変更しました" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "あなたの表示名を変更できません" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "表示名を変更" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "あなたのメールアドレス" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "※パスワード回復を有効にするにはメールアドレスの入力が必要です" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "言語" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "翻訳に協力する" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "ファイルマネージャでownCloudに接続する際はこのアドレスを利用してください" -#: templates/personal.php:85 -msgid "Version" -msgstr "バージョン" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "ownCloud communityにより開発されています、ソースコードライセンスは、AGPL ライセンスにより提供されています。" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "ログイン名" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "グループ" - #: templates/users.php:32 msgid "Create" msgstr "作成" @@ -300,34 +476,26 @@ msgstr "作成" msgid "Default Storage" msgstr "デフォルトストレージ" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "無制限" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "その他" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "グループ管理者" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "ストレージ" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "表示名を変更" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "新しいパスワードを設定" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "デフォルト" - -#: templates/users.php:165 -msgid "Delete" -msgstr "削除" diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po index f899f457f15493b3666dd16e64a3434ce8376bdc..0a8dc59415329853029a974f7dad98501ca15380 100644 --- a/l10n/ja_JP/user_ldap.po +++ b/l10n/ja_JP/user_ldap.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:05+0100\n" -"PO-Revision-Date: 2013-02-03 04:40+0000\n" -"Last-Translator: tt yn \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 04:10+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,8 +217,8 @@ msgid "Use TLS" msgstr "TLSを利用" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "SSL接続に利用しないでください、失敗します。" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/ka/core.po b/l10n/ka/core.po new file mode 100644 index 0000000000000000000000000000000000000000..9bb57f7e7c8caeea69d09f065011f19ff8badd93 --- /dev/null +++ b/l10n/ka/core.po @@ -0,0 +1,594 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2011-07-25 16:05+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/share.php:97 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:99 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:101 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:104 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:34 +msgid "Sunday" +msgstr "" + +#: js/config.php:35 +msgid "Monday" +msgstr "" + +#: js/config.php:36 +msgid "Tuesday" +msgstr "" + +#: js/config.php:37 +msgid "Wednesday" +msgstr "" + +#: js/config.php:38 +msgid "Thursday" +msgstr "" + +#: js/config.php:39 +msgid "Friday" +msgstr "" + +#: js/config.php:40 +msgid "Saturday" +msgstr "" + +#: js/config.php:45 +msgid "January" +msgstr "" + +#: js/config.php:46 +msgid "February" +msgstr "" + +#: js/config.php:47 +msgid "March" +msgstr "" + +#: js/config.php:48 +msgid "April" +msgstr "" + +#: js/config.php:49 +msgid "May" +msgstr "" + +#: js/config.php:50 +msgid "June" +msgstr "" + +#: js/config.php:51 +msgid "July" +msgstr "" + +#: js/config.php:52 +msgid "August" +msgstr "" + +#: js/config.php:53 +msgid "September" +msgstr "" + +#: js/config.php:54 +msgid "October" +msgstr "" + +#: js/config.php:55 +msgid "November" +msgstr "" + +#: js/config.php:56 +msgid "December" +msgstr "" + +#: js/js.js:286 +msgid "Settings" +msgstr "" + +#: js/js.js:768 +msgid "seconds ago" +msgstr "წამის წინ" + +#: js/js.js:769 +msgid "1 minute ago" +msgstr "1 წუთის წინ" + +#: js/js.js:770 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:771 +msgid "1 hour ago" +msgstr "1 საათის წინ" + +#: js/js.js:772 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:773 +msgid "today" +msgstr "დღეს" + +#: js/js.js:774 +msgid "yesterday" +msgstr "გუშინ" + +#: js/js.js:775 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:776 +msgid "last month" +msgstr "" + +#: js/js.js:777 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:778 +msgid "months ago" +msgstr "" + +#: js/js.js:779 +msgid "last year" +msgstr "" + +#: js/js.js:780 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "" + +#: js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:141 js/share.js:622 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 +msgid "Password" +msgstr "პაროლი" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "" + +#: js/share.js:339 +msgid "share" +msgstr "" + +#: js/share.js:373 js/share.js:569 +msgid "Password protected" +msgstr "" + +#: js/share.js:582 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:594 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:609 +msgid "Sending ..." +msgstr "" + +#: js/share.js:620 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:48 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 +#: templates/login.php:28 +msgid "Username" +msgstr "" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "პერსონა" + +#: strings.php:6 +msgid "Users" +msgstr "მომხმარებლები" + +#: strings.php:7 +msgid "Apps" +msgstr "" + +#: strings.php:8 +msgid "Admin" +msgstr "ადმინისტრატორი" + +#: strings.php:9 +msgid "Help" +msgstr "შველა" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "" + +#: templates/installation.php:24 templates/installation.php:31 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:25 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:26 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:37 +msgid "Create an admin account" +msgstr "" + +#: templates/installation.php:55 +msgid "Advanced" +msgstr "" + +#: templates/installation.php:57 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:66 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 +msgid "will be used" +msgstr "" + +#: templates/installation.php:129 +msgid "Database user" +msgstr "" + +#: templates/installation.php:134 +msgid "Database password" +msgstr "" + +#: templates/installation.php:139 +msgid "Database name" +msgstr "" + +#: templates/installation.php:149 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:156 +msgid "Database host" +msgstr "" + +#: templates/installation.php:162 +msgid "Finish setup" +msgstr "" + +#: templates/layout.guest.php:35 +msgid "web services under your control" +msgstr "" + +#: templates/layout.user.php:53 +msgid "Log out" +msgstr "" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "" + +#: templates/login.php:41 +msgid "remember" +msgstr "" + +#: templates/login.php:43 +msgid "Log in" +msgstr "" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/ka/files.po b/l10n/ka/files.po new file mode 100644 index 0000000000000000000000000000000000000000..11e5cde7c31a0a9d0199d4e832e4aa63072f74ff --- /dev/null +++ b/l10n/ka/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:30 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:31 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:33 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:82 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "ფაილები" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:225 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:262 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:262 +msgid "Upload Error" +msgstr "" + +#: js/files.js:273 +msgid "Close" +msgstr "" + +#: js/files.js:312 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:315 js/files.js:370 js/files.js:385 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:388 js/files.js:423 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:497 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:570 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:575 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:953 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:954 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:955 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:974 +msgid "1 folder" +msgstr "" + +#: js/files.js:976 +msgid "{count} folders" +msgstr "" + +#: js/files.js:984 +msgid "1 file" +msgstr "" + +#: js/files.js:986 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "გადმოწერა" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ka/files_encryption.po b/l10n/ka/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..5321e594c35c54b88517db4e7908682ec4767ed3 --- /dev/null +++ b/l10n/ka/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/ka/files_external.po b/l10n/ka/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..7a32ea95b0b4b33609c94bdd8dd913ac0b9a70e1 --- /dev/null +++ b/l10n/ka/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:398 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:401 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "მომხმარებლები" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:154 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/ka/files_sharing.po b/l10n/ka/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..f4c48c38cd09e9e393ad0f5fe4b0628fc8626398 --- /dev/null +++ b/l10n/ka/files_sharing.po @@ -0,0 +1,49 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Lasha GeTto , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2013-02-27 04:40+0000\n" +"Last-Translator: GeoCybers \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "პაროლი" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:10 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:13 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:19 templates/public.php:37 +msgid "Download" +msgstr "გადმოწერა" + +#: templates/public.php:34 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:43 +msgid "web services under your control" +msgstr "" diff --git a/l10n/ka/files_trashbin.po b/l10n/ka/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..1c461d5f9d5b4a8c4da19a6f26450000ba577a1d --- /dev/null +++ b/l10n/ka/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-01-31 16:03+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/ka/files_versions.po b/l10n/ka/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..49695914395eb76f053c960c93ce1b86948efd3f --- /dev/null +++ b/l10n/ka/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:7 +msgid "Enable" +msgstr "" diff --git a/l10n/ka/lib.po b/l10n/ka/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..70d1ab92117df8e52e7de0a60e295f3e6e326257 --- /dev/null +++ b/l10n/ka/lib.po @@ -0,0 +1,259 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Lasha GeTto , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: app.php:349 +msgid "Help" +msgstr "შველა" + +#: app.php:362 +msgid "Personal" +msgstr "პერსონა" + +#: app.php:373 +msgid "Settings" +msgstr "" + +#: app.php:385 +msgid "Users" +msgstr "მომხმარებლები" + +#: app.php:398 +msgid "Apps" +msgstr "" + +#: app.php:406 +msgid "Admin" +msgstr "ადმინისტრატორი" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "ZIP გადმოწერა გამორთულია" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "ფაილები" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "წამის წინ" + +#: template.php:114 +msgid "1 minute ago" +msgstr "1 წუთის წინ" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "%d წუთის წინ" + +#: template.php:116 +msgid "1 hour ago" +msgstr "1 საათის წინ" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "დღეს" + +#: template.php:119 +msgid "yesterday" +msgstr "გუშინ" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "%d დღის წინ" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:81 +msgid "up to date" +msgstr "" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/ka/settings.po b/l10n/ka/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..494239e38919ae623f74bf956b8047af33e88c34 --- /dev/null +++ b/l10n/ka/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "პაროლი" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/ka/user_ldap.po b/l10n/ka/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..02d9abacc5922d8732cc81cd913115784514e719 --- /dev/null +++ b/l10n/ka/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:36 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:39 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:43 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:18 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:23 +msgid "Host" +msgstr "" + +#: templates/settings.php:25 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:26 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:27 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:28 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:30 +msgid "User DN" +msgstr "" + +#: templates/settings.php:32 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:33 +msgid "Password" +msgstr "პაროლი" + +#: templates/settings.php:36 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:37 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:40 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:41 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:42 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:45 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:46 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:47 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:50 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:51 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:55 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:57 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:57 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:58 +msgid "Port" +msgstr "" + +#: templates/settings.php:59 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:59 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:60 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:61 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:61 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:62 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:63 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:64 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:64 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:64 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:65 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:67 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:69 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:69 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:70 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:70 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:71 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:71 templates/settings.php:74 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:72 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:72 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:73 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:73 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:74 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:75 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:77 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:80 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:82 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:86 +msgid "Help" +msgstr "შველა" diff --git a/l10n/ka/user_webdavauth.po b/l10n/ka/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..3c15980932ecc82f6d5b7c3821f62c6566a20322 --- /dev/null +++ b/l10n/ka/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ka\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/ka_GE/core.po b/l10n/ka_GE/core.po index 74de8601d7d130476e30adf2d2385c54750abf38..bf41a76a467267688267d136fe2487d0775b3e29 100644 --- a/l10n/ka_GE/core.po +++ b/l10n/ka_GE/core.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# Romeo Pirtskhalava , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 06:10+0000\n" +"Last-Translator: drlinux64 \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,24 +19,24 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "" -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "" -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -51,8 +52,9 @@ msgid "No category to add?" msgstr "არ არის კატეგორია დასამატებლად?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "კატეგორია უკვე არსებობს" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -80,135 +82,135 @@ msgstr "სარედაქტირებელი კატეგორი msgid "Error removing %s from favorites." msgstr "" -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "კვირა" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "ორშაბათი" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "სამშაბათი" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "ოთხშაბათი" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "ხუთშაბათი" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "პარასკევი" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "შაბათი" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "იანვარი" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "თებერვალი" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "მარტი" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "აპრილი" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "მაისი" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "ივნისი" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "ივლისი" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "აგვისტო" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "სექტემბერი" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "ოქტომბერი" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "ნოემბერი" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "დეკემბერი" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "პარამეტრები" -#: js/js.js:760 +#: js/js.js:768 msgid "seconds ago" msgstr "წამის წინ" -#: js/js.js:761 +#: js/js.js:769 msgid "1 minute ago" msgstr "1 წუთის წინ" -#: js/js.js:762 +#: js/js.js:770 msgid "{minutes} minutes ago" msgstr "{minutes} წუთის წინ" -#: js/js.js:763 +#: js/js.js:771 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:772 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:773 msgid "today" msgstr "დღეს" -#: js/js.js:766 +#: js/js.js:774 msgid "yesterday" msgstr "გუშინ" -#: js/js.js:767 +#: js/js.js:775 msgid "{days} days ago" msgstr "{days} დღის წინ" -#: js/js.js:768 +#: js/js.js:776 msgid "last month" msgstr "გასულ თვეში" -#: js/js.js:769 +#: js/js.js:777 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:778 msgid "months ago" msgstr "თვის წინ" -#: js/js.js:771 +#: js/js.js:779 msgid "last year" msgstr "ბოლო წელს" -#: js/js.js:772 +#: js/js.js:780 msgid "years ago" msgstr "წლის წინ" @@ -238,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "შეცდომა" @@ -251,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "გაზიარება" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "გაზიარება" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "შეცდომა გაზიარების დროს" @@ -291,7 +293,7 @@ msgstr "გაუზიარე ლინკით" msgid "Password protect" msgstr "პაროლით დაცვა" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 msgid "Password" msgstr "პაროლი" @@ -317,7 +319,7 @@ msgstr "გააზიარე მეილზე" #: js/share.js:229 msgid "No people found" -msgstr "გვერდი არ არის ნაპოვნი" +msgstr "მომხმარებელი არ არის ნაპოვნი" #: js/share.js:256 msgid "Resharing is not allowed" @@ -355,23 +357,23 @@ msgstr "წაშლა" msgid "share" msgstr "გაზიარება" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "პაროლით დაცული" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "შეცდომა ვადის გასვლის მოხსნის დროს" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "შეცდომა ვადის გასვლის მითითების დროს" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -386,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud პაროლის შეცვლა" @@ -406,14 +408,14 @@ msgstr "" msgid "Request failed!" msgstr "" -#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 #: templates/login.php:28 msgid "Username" msgstr "მომხმარებელი" #: lostpassword/templates/lostpassword.php:14 msgid "Request reset" -msgstr "რესეტის მოთხოვნა" +msgstr "პაროლის შეცვლის მოთხოვნა" #: lostpassword/templates/resetpassword.php:4 msgid "Your password was reset" @@ -429,7 +431,7 @@ msgstr "ახალი პაროლი" #: lostpassword/templates/resetpassword.php:11 msgid "Reset password" -msgstr "პაროლის რესეტი" +msgstr "პაროლის შეცვლა" #: strings.php:5 msgid "Personal" @@ -467,11 +469,11 @@ msgstr "კატეგორიების რედაქტირება" msgid "Add" msgstr "დამატება" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:24 templates/installation.php:31 msgid "Security Warning" msgstr "უსაფრთხოების გაფრთხილება" -#: templates/installation.php:24 +#: templates/installation.php:25 msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." @@ -485,63 +487,68 @@ msgstr "შემთხვევითი სიმბოლოების გ #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." msgstr "" -#: templates/installation.php:36 +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:37 msgid "Create an admin account" -msgstr "შექმენი ადმინ ექაუნტი" +msgstr "შექმენი ადმინ ექაუნტი" -#: templates/installation.php:50 +#: templates/installation.php:55 msgid "Advanced" msgstr "Advanced" -#: templates/installation.php:52 +#: templates/installation.php:57 msgid "Data folder" msgstr "მონაცემთა საქაღალდე" -#: templates/installation.php:59 +#: templates/installation.php:66 msgid "Configure the database" -msgstr "ბაზის კონფიგურირება" +msgstr "მონაცემთა ბაზის კონფიგურირება" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 msgid "will be used" msgstr "გამოყენებული იქნება" -#: templates/installation.php:107 +#: templates/installation.php:129 msgid "Database user" -msgstr "ბაზის მომხმარებელი" +msgstr "მონაცემთა ბაზის მომხმარებელი" -#: templates/installation.php:111 +#: templates/installation.php:134 msgid "Database password" -msgstr "ბაზის პაროლი" +msgstr "მონაცემთა ბაზის პაროლი" -#: templates/installation.php:115 +#: templates/installation.php:139 msgid "Database name" -msgstr "ბაზის სახელი" +msgstr "მონაცემთა ბაზის სახელი" -#: templates/installation.php:123 +#: templates/installation.php:149 msgid "Database tablespace" msgstr "ბაზის ცხრილის ზომა" -#: templates/installation.php:129 +#: templates/installation.php:156 msgid "Database host" -msgstr "ბაზის ჰოსტი" +msgstr "მონაცემთა ბაზის ჰოსტი" -#: templates/installation.php:134 +#: templates/installation.php:162 msgid "Finish setup" msgstr "კონფიგურაციის დასრულება" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "თქვენი კონტროლის ქვეშ მყოფი ვებ სერვისები" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "გამოსვლა" diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po index 828806cc05d69c48d718a3e8ef07b175c4e826ac..e09e646cfd34827efe18761ad1b943416dd6e504 100644 --- a/l10n/ka_GE/files.po +++ b/l10n/ka_GE/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "შეცდომა დისკზე ჩაწერისას" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "ფაილები" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "გაზიარების მოხსნა" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "წაშლა" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "გადარქმევა" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "მოცდის რეჟიმში" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} უკვე არსებობს" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "შეცვლა" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "სახელის შემოთავაზება" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "უარყოფა" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} შეცვლილია" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "დაბრუნება" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} შეცვლილია {old_name}–ით" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "შეცდომა ატვირთვისას" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "დახურვა" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "მოცდის რეჟიმში" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 ფაილის ატვირთვა" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} ფაილი იტვირთება" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "ატვირთვა შეჩერებულ იქნა." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "სახელი" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ზომა" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "შეცვლილია" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 საქაღალდე" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} საქაღალდე" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ფაილი" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ფაილი" @@ -263,7 +274,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "აქ არაფერი არ არის. ატვირთე msgid "Download" msgstr "ჩამოტვირთვა" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "გაზიარების მოხსნა" + #: templates/index.php:105 msgid "Upload too large" msgstr "ასატვირთი ფაილი ძალიან დიდია" diff --git a/l10n/ka_GE/files_encryption.po b/l10n/ka_GE/files_encryption.po index 3bdaa16e10235a60fafcd0750222c7ce66e916a3..81a4932c1409182a70474f9d0a71f83e388b21e5 100644 --- a/l10n/ka_GE/files_encryption.po +++ b/l10n/ka_GE/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/ka_GE/files_external.po b/l10n/ka_GE/files_external.po index eb5eb8256c9a9d93318ea12f81d6d14118e2b91f..b2e62bc7f8ee28e04401838e2a4a732edcf33421 100644 --- a/l10n/ka_GE/files_external.po +++ b/l10n/ka_GE/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "მომხმარებელი" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "წაშლა" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ka_GE/files_trashbin.po b/l10n/ka_GE/files_trashbin.po index b79b1af3d2b34694117dfcda565f2582c7feb817..a93e459f4c9d5d9409de1750ccaa07d8aa351b60 100644 --- a/l10n/ka_GE/files_trashbin.po +++ b/l10n/ka_GE/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "სახელი" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 საქაღალდე" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} საქაღალდე" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ფაილი" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} ფაილი" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "წაშლა" diff --git a/l10n/ka_GE/files_versions.po b/l10n/ka_GE/files_versions.po index aafddd05a3cf1aef375f984e522f53ef5de35d28..56f77fc85270532cc4e1c5d5fa3cea964362ecf5 100644 --- a/l10n/ka_GE/files_versions.po +++ b/l10n/ka_GE/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/ka_GE/lib.po b/l10n/ka_GE/lib.po index f43fa26c139991902a1771e67bfeba7870064645..a31bc08bf89c7ed76576e4ccf24ea04f919bddaa 100644 --- a/l10n/ka_GE/lib.po +++ b/l10n/ka_GE/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "დახმარება" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "პირადი" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "პარამეტრები" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "მომხმარებელი" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "აპლიკაციები" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "ადმინისტრატორი" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -86,6 +86,108 @@ msgstr "ტექსტი" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "წამის წინ" @@ -138,16 +240,16 @@ msgstr "ბოლო წელს" msgid "years ago" msgstr "წლის წინ" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "განახლებულია" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "განახლების ძებნა გათიშულია" diff --git a/l10n/ka_GE/settings.po b/l10n/ka_GE/settings.po index 2f73884030edcf3708488cc09b136dd21caf574b..a2498bd7718cd1ae1e4fb0d61491920ad901ebe9 100644 --- a/l10n/ka_GE/settings.po +++ b/l10n/ka_GE/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "აპლიკაციების სია ვერ ჩამოიტვირთა App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "ავთენტიფიკაციის შეცდომა" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "არასწორი მოთხოვნა" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "მომხმარებლის დამატება ვერ მოხეხდა ჯგუფში %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "შეცდომა" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "შენახვა..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "დაბრუნება" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "ჯგუფი" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "ჯგუფის ადმინისტრატორი" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "წაშლა" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "უსაფრთხოების გაფრთხილება" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "დაამატე შენი აპლიკაცია" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "უფრო მეტი აპლიკაციები" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "აირჩიეთ აპლიკაცია" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "ნახეთ აპლიკაციის გვერდი apps.owncloud.com –ზე" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-ლიცენსირებულია " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "განახლება" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,116 +384,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "კლიენტები" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "პაროლი" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "თქვენი პაროლი შეიცვალა" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "თქვენი პაროლი არ შეიცვალა" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "მიმდინარე პაროლი" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "ახალი პაროლი" -#: templates/personal.php:28 -msgid "show" -msgstr "გამოაჩინე" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "პაროლის შეცვლა" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "იმეილი" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "თქვენი იმეილ მისამართი" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "შეავსეთ იმეილ მისამართის ველი პაროლის აღსადგენად" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "ენა" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "თარგმნის დახმარება" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "ჯგუფი" - #: templates/users.php:32 msgid "Create" msgstr "შექმნა" @@ -296,34 +472,26 @@ msgstr "შექმნა" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "სხვა" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "ჯგუფის ადმინისტრატორი" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "წაშლა" diff --git a/l10n/ka_GE/user_ldap.po b/l10n/ka_GE/user_ldap.po index a84ba3cd3c897b458da25e11f8956449f4feab73..2e2cd16393e53fe74c2211d1bbcb4ed81d111871 100644 --- a/l10n/ka_GE/user_ldap.po +++ b/l10n/ka_GE/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/ko/core.po b/l10n/ko/core.po index 5f7bca9c09bfb21b069251b569806c1c6bf52e36..4d5ca8bf43b0d1c5a0ef4f35de56896ba9161f93 100644 --- a/l10n/ko/core.po +++ b/l10n/ko/core.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -55,8 +55,9 @@ msgid "No category to add?" msgstr "추가할 분류가 없습니까?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "이 분류는 이미 존재합니다:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -160,59 +161,59 @@ msgstr "11월" msgid "December" msgstr "12월" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "설정" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "초 전" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1분 전" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes}분 전" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1시간 전" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours}시간 전" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "오늘" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "어제" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days}일 전" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "지난 달" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months}개월 전" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "개월 전" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "작년" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "년 전" @@ -242,8 +243,8 @@ msgid "The object type is not specified." msgstr "객체 유형이 지정되지 않았습니다." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "오류" @@ -255,15 +256,15 @@ msgstr "앱 이름이 지정되지 않았습니다." msgid "The required file {file} is not installed!" msgstr "필요한 파일 {file}이(가) 설치되지 않았습니다!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "공유" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "공유됨" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "공유" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "공유하는 중 오류 발생" @@ -359,23 +360,23 @@ msgstr "삭제" msgid "share" msgstr "공유" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "암호로 보호됨" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "만료 날짜 해제 오류" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "만료 날짜 설정 오류" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "전송 중..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "이메일 발송됨" @@ -390,7 +391,7 @@ msgstr "업데이트가 실패하였습니다. 이 문제를 documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "관리자 계정 만들기" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "고급" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "데이터 폴더" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "데이터베이스 설정" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "사용될 예정" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "데이터베이스 사용자" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "데이터베이스 암호" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "데이터베이스 이름" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "데이터베이스 테이블 공간" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "데이터베이스 호스트" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "설치 완료" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "내가 관리하는 웹 서비스" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "로그아웃" diff --git a/l10n/ko/files.po b/l10n/ko/files.po index 6ab4e6667eb8558f7f8730a4ef1976432bfc3389..82f8c7ec960a39bd6af0241afa4741706687d941 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,20 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s 항목을 이딩시키지 못하였음" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "파일 이름바꾸기 할 수 없음" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다" @@ -59,8 +73,8 @@ msgid "Failed to write to disk" msgstr "디스크에 쓰지 못했습니다" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "여유 공간이 부족합니다" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -70,51 +84,52 @@ msgstr "올바르지 않은 디렉터리입니다." msgid "Files" msgstr "파일" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "공유 해제" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "삭제" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "이름 바꾸기" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "보류 중" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name}이(가) 이미 존재함" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "바꾸기" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "이름 제안" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "취소" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name}을(를) 대체함" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "실행 취소" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{old_name}이(가) {new_name}(으)로 대체됨" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -140,78 +155,74 @@ msgstr "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "업로드 오류" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "닫기" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "보류 중" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "파일 1개 업로드 중" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "파일 {count}개 업로드 중" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "업로드가 취소되었습니다." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL을 입력해야 합니다." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "폴더 이름이 유효하지 않습니다. " -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "이름" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "크기" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "수정됨" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "폴더 1개" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "폴더 {count}개" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "파일 1개" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "파일 {count}개" @@ -268,7 +279,7 @@ msgid "From link" msgstr "링크에서" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -283,6 +294,10 @@ msgstr "내용이 없습니다. 업로드할 수 있습니다!" msgid "Download" msgstr "다운로드" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "공유 해제" + #: templates/index.php:105 msgid "Upload too large" msgstr "업로드 용량 초과" diff --git a/l10n/ko/files_encryption.po b/l10n/ko/files_encryption.po index 22d55b969793f2ada908060acab00b34a73bd845..79f1c6ae60785936c91116c9a7ae1b0ca8f3ccd1 100644 --- a/l10n/ko/files_encryption.po +++ b/l10n/ko/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "ownCloud로 전환한 다음 암호화에 사용할 암호를 변경하면 변환이 완료됩니다." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "클라이언트 암호화로 변경됨" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "암호화 암호를 로그인 암호로 변경" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "암호를 확인한 다음 다시 시도하십시오." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "암호화 암호를 로그인 암호로 변경할 수 없습니다" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "암호화" diff --git a/l10n/ko/files_external.po b/l10n/ko/files_external.po index 0c7bf2da326442bdecdff46833ae07b0d6880bda..a117a8411081d71e3c8de1984b3142fccf3302be 100644 --- a/l10n/ko/files_external.po +++ b/l10n/ko/files_external.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 17:02+0100\n" -"PO-Revision-Date: 2013-01-31 08:10+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Shinjo Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -29,11 +29,11 @@ msgstr "접근 허가됨" msgid "Error configuring Dropbox storage" msgstr "Dropbox 저장소 설정 오류" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" msgstr "접근 권한 부여" -#: js/dropbox.js:73 js/google.js:73 +#: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" msgstr "모든 필수 항목을 입력하십시오" @@ -41,17 +41,17 @@ msgstr "모든 필수 항목을 입력하십시오" msgid "Please provide a valid Dropbox app key and secret." msgstr "올바른 Dropbox 앱 키와 암호를 입력하십시오." -#: js/google.js:26 js/google.js:74 js/google.js:79 +#: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "Google 드라이브 저장소 설정 오류" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "경고: \"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유 자원에 연결할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오." -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -119,6 +119,6 @@ msgstr "사용자별 외부 저장소 마운트 허용" msgid "SSL root certificates" msgstr "SSL 루트 인증서" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "루트 인증서 가져오기" diff --git a/l10n/ko/files_trashbin.po b/l10n/ko/files_trashbin.po index ad7567a0058fcd8f52163c5a89b4babb368447fa..dc232ecb307c61b2d243e11829c7ab3938b05475 100644 --- a/l10n/ko/files_trashbin.po +++ b/l10n/ko/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "이름" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "폴더 1개" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "폴더 {count}개" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "파일 1개" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "파일 {count}개" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "복원" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "삭제" diff --git a/l10n/ko/files_versions.po b/l10n/ko/files_versions.po index 0fe524b7701685c6fdf5c99b9a06f42e2765f3ce..9e99e48e77159f8770015315596cb4b6027f8827 100644 --- a/l10n/ko/files_versions.po +++ b/l10n/ko/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -19,10 +19,45 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "역사" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "파일 버전 관리" diff --git a/l10n/ko/lib.po b/l10n/ko/lib.po index ffbaa11a4ec6f63dc568d0a6088f0c678fd567da..b5155c8f1d9bad5d81202757c39e66f07e843f5d 100644 --- a/l10n/ko/lib.po +++ b/l10n/ko/lib.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 17:02+0100\n" -"PO-Revision-Date: 2013-01-31 08:10+0000\n" -"Last-Translator: Shinjo Park \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,27 +20,27 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "도움말" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "개인" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "설정" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "사용자" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "앱" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "관리자" @@ -52,15 +52,15 @@ msgstr "ZIP 다운로드가 비활성화되었습니다." msgid "Files need to be downloaded one by one." msgstr "파일을 개별적으로 다운로드해야 합니다." -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "파일로 돌아가기" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "선택한 파일들은 ZIP 파일을 생성하기에 너무 큽니다." -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "결정할 수 없음" @@ -88,6 +88,108 @@ msgstr "텍스트" msgid "Images" msgstr "그림" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "초 전" @@ -140,16 +242,16 @@ msgstr "작년" msgid "years ago" msgstr "년 전" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s을(를) 사용할 수 있습니다. 자세한 정보 보기" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "최신" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "업데이트 확인이 비활성화됨" diff --git a/l10n/ko/settings.po b/l10n/ko/settings.po index 65a8c9d6e2222a345a380fb6b3a2de65395e3165..331f157580654483dab1c86e79619bf35580d1c5 100644 --- a/l10n/ko/settings.po +++ b/l10n/ko/settings.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -26,12 +26,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "앱 스토어에서 목록을 가져올 수 없습니다" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "인증 오류" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -75,17 +75,17 @@ msgstr "잘못된 요청" msgid "Admins can't remove themself from the admin group" msgstr "관리자 자신을 관리자 그룹에서 삭제할 수 없습니다" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "그룹 %s에 사용자를 추가할 수 없습니다." -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "그룹 %s에서 사용자를 삭제할 수 없습니다." -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -121,59 +121,265 @@ msgstr "오류" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "저장 중..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "삭제" + +#: js/users.js:30 +msgid "undo" +msgstr "실행 취소" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "그룹" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "그룹 관리자" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "삭제" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "한국어" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "보안 경고" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "데이터 디렉터리와 파일을 인터넷에서 접근할 수 있는 것 같습니다. ownCloud에서 제공한 .htaccess 파일이 작동하지 않습니다. 웹 서버를 다시 설정하여 데이터 디렉터리에 접근할 수 없도록 하거나 문서 루트 바깥쪽으로 옮기는 것을 추천합니다." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "더 중요함" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "버전" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "ownCloud 커뮤니티에 의해서 개발되었습니다. 원본 코드AGPL에 따라 사용이 허가됩니다." + +#: templates/apps.php:11 msgid "Add your App" msgstr "앱 추가" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "더 많은 앱" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "앱 선택" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "apps.owncloud.com에 있는 앱 페이지를 참고하십시오" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-라이선스됨: " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "업데이트" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "사용자 문서" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "관리자 문서" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "온라인 문서" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "포럼" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "버그 트래커" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "상업용 지원" @@ -182,116 +388,86 @@ msgstr "상업용 지원" msgid "You have used %s of the available %s" msgstr "현재 공간 %s/%s을(를) 사용 중입니다" -#: templates/personal.php:12 -msgid "Clients" -msgstr "클라이언트" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "데스크톱 클라이언트 다운로드" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "안드로이드 클라이언트 다운로드" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS 클라이언트 다운로드" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "첫 실행 마법사 다시 보이기" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "암호" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "암호가 변경되었습니다" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "암호를 변경할 수 없음" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "현재 암호" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "새 암호" -#: templates/personal.php:28 -msgid "show" -msgstr "보이기" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "암호 변경" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "표시 이름" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "이메일" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "이메일 주소" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "암호 찾기 기능을 사용하려면 이메일 주소를 입력하십시오." -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "언어" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "번역 돕기" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "파일 관리자에서 ownCloud에 접속하려면 이 주소를 사용하십시오." -#: templates/personal.php:85 -msgid "Version" -msgstr "버전" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "ownCloud 커뮤니티에 의해서 개발되었습니다. 원본 코드AGPL에 따라 사용이 허가됩니다." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "로그인 이름" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "그룹" - #: templates/users.php:32 msgid "Create" msgstr "만들기" @@ -300,34 +476,26 @@ msgstr "만들기" msgid "Default Storage" msgstr "기본 저장소" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "무제한" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "기타" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "그룹 관리자" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "저장소" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "표시 이름 변경" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "새 암호 설정" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "기본값" - -#: templates/users.php:165 -msgid "Delete" -msgstr "삭제" diff --git a/l10n/ko/user_ldap.po b/l10n/ko/user_ldap.po index 93e6a601aa0543846be83e90df8dd8f6fc7a6801..df1f2796b47c1de0ca5c880d3b343de1ca5d0181 100644 --- a/l10n/ko/user_ldap.po +++ b/l10n/ko/user_ldap.po @@ -5,14 +5,15 @@ # Translators: # , 2013. # 남자사람 , 2012. +# Harim Park , 2013. # Shinjo Park , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: Harim Park \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -50,7 +51,7 @@ msgstr "" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "설정을 유지합니까?" #: js/settings.js:97 msgid "Cannot add server configuration" @@ -58,11 +59,11 @@ msgstr "" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "연결 시험 성공" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "연결 시험 실패" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" @@ -175,11 +176,11 @@ msgstr "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=po #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "연결 설정" #: templates/settings.php:33 msgid "Configuration Active" -msgstr "" +msgstr "구성 활성화" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." @@ -191,7 +192,7 @@ msgstr "포트" #: templates/settings.php:35 msgid "Backup (Replica) Host" -msgstr "" +msgstr "백업 (복제) 포트" #: templates/settings.php:35 msgid "" @@ -201,11 +202,11 @@ msgstr "" #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "백업 (복제) 포트" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "주 서버 비활성화" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." @@ -216,8 +217,8 @@ msgid "Use TLS" msgstr "TLS 사용" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "SSL 연결 시 사용하는 경우 연결되지 않습니다." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -243,7 +244,7 @@ msgstr "초. 항목 변경 시 캐시가 갱신됩니다." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "디렉토리 설정" #: templates/settings.php:45 msgid "User Display Name Field" @@ -263,7 +264,7 @@ msgstr "사용자 DN을 한 줄에 하나씩 입력하십시오" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "사용자 검색 속성" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" @@ -287,7 +288,7 @@ msgstr "그룹 기본 DN을 한 줄에 하나씩 입력하십시오" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "그룹 검색 속성" #: templates/settings.php:51 msgid "Group-Member association" diff --git a/l10n/ku_IQ/core.po b/l10n/ku_IQ/core.po index 9811940473381cee6cc686be436ba35d8c9ecc8f..f665ac3e0afff487b8a349562d93f172066c6419 100644 --- a/l10n/ku_IQ/core.po +++ b/l10n/ku_IQ/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -51,7 +51,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -156,59 +157,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "ده‌ستكاری" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -467,7 +468,7 @@ msgstr "" msgid "Add" msgstr "زیادکردن" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "هه‌ڵبژاردنی پیشكه‌وتوو" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "زانیاری فۆڵده‌ر" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "به‌كارهێنه‌ری داتابه‌یس" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "وشه‌ی نهێنی داتا به‌یس" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "ناوی داتابه‌یس" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "هۆستی داتابه‌یس" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "كۆتایی هات ده‌ستكاریه‌كان" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "چوونەدەرەوە" diff --git a/l10n/ku_IQ/files.po b/l10n/ku_IQ/files.po index 8f5359f7a0dae0213343eae9ce33447afb6801dc..ae4edcd2826017d9e4fb8eafb8c6d0e5ccdf0673 100644 --- a/l10n/ku_IQ/files.po +++ b/l10n/ku_IQ/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,20 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -53,7 +67,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -148,64 +163,60 @@ msgstr "" msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:272 msgid "Close" msgstr "داخستن" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:311 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:314 js/files.js:369 js/files.js:384 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:387 js/files.js:422 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:496 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:569 msgid "URL cannot be empty." msgstr "ناونیشانی به‌سته‌ر نابێت به‌تاڵ بێت." -#: js/files.js:580 +#: js/files.js:574 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:948 templates/index.php:67 msgid "Name" msgstr "ناو" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:949 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:950 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:974 +#: js/files.js:969 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:971 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:979 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:981 msgid "{count} files" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "داگرتن" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/ku_IQ/files_encryption.po b/l10n/ku_IQ/files_encryption.po index db1496b70d914f0c4eea68f72a5a6078227c2640..25da3eec3afd9567186f2759b49c4c8eb826fab8 100644 --- a/l10n/ku_IQ/files_encryption.po +++ b/l10n/ku_IQ/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "نهێنیکردن" diff --git a/l10n/ku_IQ/files_trashbin.po b/l10n/ku_IQ/files_trashbin.po index 5a86701073516463ad33dc2a9074ed0caec126f9..a4a5d2ace62988e283d89d40d84cc07b3907597a 100644 --- a/l10n/ku_IQ/files_trashbin.po +++ b/l10n/ku_IQ/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "ناو" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/ku_IQ/files_versions.po b/l10n/ku_IQ/files_versions.po index b3fa1af6357b8cd90832f0ad93d5d156353d8bc6..d241d5d28b974669b8661767e803ec2bea8a45a7 100644 --- a/l10n/ku_IQ/files_versions.po +++ b/l10n/ku_IQ/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "مێژوو" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "وه‌شانی په‌ڕگه" diff --git a/l10n/ku_IQ/lib.po b/l10n/ku_IQ/lib.po index 64ee0185d35dcabb78ef321cc64526b701a45f2c..42b6f4b92ef673cc576257c291826a9c143955ab 100644 --- a/l10n/ku_IQ/lib.po +++ b/l10n/ku_IQ/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "یارمەتی" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "ده‌ستكاری" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "به‌كارهێنه‌ر" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/ku_IQ/settings.po b/l10n/ku_IQ/settings.po index 7973f6b16d5456230be9d009b208c9a0bb84cff2..60417dfa73486be1da2ef227fd29aa47ac371022 100644 --- a/l10n/ku_IQ/settings.po +++ b/l10n/ku_IQ/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -21,12 +21,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,59 +116,265 @@ msgstr "هه‌ڵه" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "پاشکه‌وتده‌کات..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "نوێکردنه‌وه" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -177,116 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "وشەی تێپەربو" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "وشەی نهێنی نوێ" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "ئیمه‌یل" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/ku_IQ/user_ldap.po b/l10n/ku_IQ/user_ldap.po index 33cf75e5ea1dab1fd3eafd4d72a3938569087202..88137f8ee4722baa41399756006bd4114d539a7f 100644 --- a/l10n/ku_IQ/user_ldap.po +++ b/l10n/ku_IQ/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/l10n.pl b/l10n/l10n.pl index 346a21bfef6fa7b4be138aca2c3a8489bdbc3cc2..b07d6d686bc4a9fb77d7187f59ee10156816e07a 100644 --- a/l10n/l10n.pl +++ b/l10n/l10n.pl @@ -104,7 +104,7 @@ if( $task eq 'read' ){ my $language = ( $file =~ /\.js$/ ? 'Python' : 'PHP'); my $joinexisting = ( -e $output ? '--join-existing' : ''); print " Reading $file\n"; - `xgettext --output="$output" $joinexisting --keyword=$keyword --language=$language "$file"`; + `xgettext --output="$output" $joinexisting --keyword=$keyword --language=$language "$file" --from-code=UTF-8 --package-version="5.0.0" --package-name="ownCloud Core" --msgid-bugs-address="translations\@owncloud.org"`; } chdir( $whereami ); } diff --git a/l10n/lb/core.po b/l10n/lb/core.po index 1bbbfe7cdcfe82d1ffd7b9e83f494323ef9893b7..e15a264f1a77410f9f5bb9ef96e42bccc04c86df 100644 --- a/l10n/lb/core.po +++ b/l10n/lb/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "Keng Kategorie fir bäizesetzen?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Des Kategorie existéiert schonn:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "November" msgid "December" msgstr "Dezember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Astellungen" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "vrun 1 Stonn" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "vru {hours} Stonnen" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "Läschte Mount" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "vru {months} Méint" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "Méint hier" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "Läscht Joer" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "Joren hier" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fehler" @@ -252,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Deelen" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Deelen" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -356,23 +357,23 @@ msgstr "läschen" msgid "share" msgstr "deelen" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud Passwuert reset" @@ -468,7 +469,7 @@ msgstr "Kategorien editéieren" msgid "Add" msgstr "Bäisetzen" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Sécherheets Warnung" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "En Admin Account uleeën" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avancéiert" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Daten Dossier" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Datebank konfiguréieren" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "wärt benotzt ginn" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Datebank Benotzer" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Datebank Passwuert" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Datebank Numm" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Datebank Tabelle-Gréisst" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Datebank Server" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Installatioun ofschléissen" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Web Servicer ënnert denger Kontroll" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Ausloggen" diff --git a/l10n/lb/files.po b/l10n/lb/files.po index 251898c3e53b63160751e68897f66d2a8e965080..444f1bafb895d94de9659eb1932662d0a74e7fe8 100644 --- a/l10n/lb/files.po +++ b/l10n/lb/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "Konnt net op den Disk schreiwen" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "Dateien" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Net méi deelen" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Läschen" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "ofbriechen" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "réckgängeg man" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kann deng Datei net eroplueden well et en Dossier ass oder 0 byte grouss ass." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Fehler beim eroplueden" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zoumaachen" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Upload ofgebrach." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Numm" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Gréisst" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Geännert" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -263,7 +274,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "Hei ass näischt. Lued eppes rop!" msgid "Download" msgstr "Eroflueden" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Net méi deelen" + #: templates/index.php:105 msgid "Upload too large" msgstr "Upload ze grouss" diff --git a/l10n/lb/files_encryption.po b/l10n/lb/files_encryption.po index c8fc462a15b95b57be2e66c6b2620f26e81b9617..6705693de91df00da7c2573070ba095e813f58f1 100644 --- a/l10n/lb/files_encryption.po +++ b/l10n/lb/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/lb/files_external.po b/l10n/lb/files_external.po index 42ed0ce33df42fa5608a5029aaa8e687043730bd..adbd2f2bfa04862624a0fef04ddb5c788e3d6434 100644 --- a/l10n/lb/files_external.po +++ b/l10n/lb/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Läschen" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/lb/files_trashbin.po b/l10n/lb/files_trashbin.po index ae9caf692e03617e307415fd3995e1804dd3f42b..57a40d95699bbd7783ac216dc224bdb8f3167b3c 100644 --- a/l10n/lb/files_trashbin.po +++ b/l10n/lb/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Numm" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Läschen" diff --git a/l10n/lb/files_versions.po b/l10n/lb/files_versions.po index 3eeeda4f0635e9b4247671892ed36fe24276d8ee..1b9a2bc1c06b8ee38d49beffd52d211d59002eb7 100644 --- a/l10n/lb/files_versions.po +++ b/l10n/lb/files_versions.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 12:27+0000\n" -"Last-Translator: sim0n \n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Historique" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Fichier's Versionéierung " diff --git a/l10n/lb/lib.po b/l10n/lb/lib.po index b7995af6442a4d6bac3226a757f0dc3fade48819..fff83c08b66e675d30de8df6df545bdd0f128a41 100644 --- a/l10n/lb/lib.po +++ b/l10n/lb/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-26 13:36+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,47 +17,47 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hëllef" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Perséinlech" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Astellungen" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "" @@ -85,6 +85,108 @@ msgstr "SMS" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "Läscht Joer" msgid "years ago" msgstr "Joren hier" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/lb/settings.po b/l10n/lb/settings.po index 021e271d8fe8d265e16e2e93250b55d74076403c..31ccb692123b2b312b966523c8d17501f2fa4d3d 100644 --- a/l10n/lb/settings.po +++ b/l10n/lb/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Konnt Lescht net vum App Store lueden" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Authentifikatioun's Fehler" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "Ongülteg Requête" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "Fehler" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Speicheren..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "geläscht" + +#: js/users.js:30 +msgid "undo" +msgstr "réckgängeg man" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruppen" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppen Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Läschen" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sécherheets Warnung" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Setz deng App bei" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Wiel eng Applikatioun aus" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Kuck dir d'Applicatioun's Säit op apps.owncloud.com un" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,116 +384,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clienten" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Passwuert" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Konnt däin Passwuert net änneren" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Momentan 't Passwuert" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Neit Passwuert" -#: templates/personal.php:28 -msgid "show" -msgstr "weisen" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Passwuert änneren" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Deng Email Adress" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Gëff eng Email Adress an fir d'Passwuert recovery ze erlaben" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Sprooch" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hëllef iwwersetzen" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruppen" - #: templates/users.php:32 msgid "Create" msgstr "Erstellen" @@ -296,34 +472,26 @@ msgstr "Erstellen" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Aner" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppen Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Läschen" diff --git a/l10n/lb/user_ldap.po b/l10n/lb/user_ldap.po index a7cdcba6fe6621c49f634fdd0062b5d38e9a75cf..dae69e9634d27903c5bd5d21758e18a664171c0b 100644 --- a/l10n/lb/user_ldap.po +++ b/l10n/lb/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/lt_LT/core.po b/l10n/lt_LT/core.po index c1773e3cf7860c0141c08cc62e88372df90cd943..50c0876c7f7d57bafcc8aa79a832489fded654b4 100644 --- a/l10n/lt_LT/core.po +++ b/l10n/lt_LT/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "Nepridėsite jokios kategorijos?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Tokia kategorija jau yra:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "Lapkritis" msgid "December" msgstr "Gruodis" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Nustatymai" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "prieš sekundę" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "Prieš 1 minutę" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "Prieš {count} minutes" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "šiandien" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "vakar" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "Prieš {days} dienas" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "praeitą mėnesį" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "prieš mėnesį" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "praeitais metais" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "prieš metus" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Klaida" @@ -252,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Dalintis" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Dalintis" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Klaida, dalijimosi metu" @@ -356,23 +357,23 @@ msgstr "ištrinti" msgid "share" msgstr "dalintis" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Apsaugota slaptažodžiu" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Klaida nuimant galiojimo laiką" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Klaida nustatant galiojimo laiką" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud slaptažodžio atkūrimas" @@ -468,7 +469,7 @@ msgstr "Redaguoti kategorijas" msgid "Add" msgstr "Pridėti" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Saugumo pranešimas" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "Saugaus atsitiktinių skaičių generatoriaus nėra, prašome įjungti PHP OpenSSL modulį." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Be saugaus atsitiktinių skaičių generatoriaus, piktavaliai gali atspėti Jūsų slaptažodį ir pasisavinti paskyrą." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Jūsų duomenų aplankalas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess, kuris duodamas, neveikia. Mes rekomenduojame susitvarkyti savo nustatymsu taip, kad failai nebūtų pasiekiami per internetą, arba persikelti juos kitur." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Sukurti administratoriaus paskyrą" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Išplėstiniai" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Duomenų katalogas" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Nustatyti duomenų bazę" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "bus naudojama" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Duomenų bazės vartotojas" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Duomenų bazės slaptažodis" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Duomenų bazės pavadinimas" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Duomenų bazės loginis saugojimas" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Duomenų bazės serveris" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Baigti diegimą" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "jūsų valdomos web paslaugos" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Atsijungti" diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po index c6bf98088b6ea7dd1d6ff92bb9ab24e8975e00bb..e24b5f629815be9edc7a3385c3c6ef31c53d83f5 100644 --- a/l10n/lt_LT/files.po +++ b/l10n/lt_LT/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -56,7 +70,7 @@ msgid "Failed to write to disk" msgstr "Nepavyko įrašyti į diską" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -67,51 +81,52 @@ msgstr "" msgid "Files" msgstr "Failai" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Nebesidalinti" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Ištrinti" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Pervadinti" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Laukiantis" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} jau egzistuoja" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "pakeisti" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "pasiūlyti pavadinimą" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "atšaukti" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "pakeiskite {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "anuliuoti" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "pakeiskite {new_name} į {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,78 +152,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Įkėlimo klaida" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Užverti" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Laukiantis" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "įkeliamas 1 failas" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} įkeliami failai" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Įkėlimas atšauktas." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Pavadinimas" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dydis" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Pakeista" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 aplankalas" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} aplankalai" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 failas" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} failai" @@ -265,7 +276,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Čia tuščia. Įkelkite ką nors!" msgid "Download" msgstr "Atsisiųsti" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Nebesidalinti" + #: templates/index.php:105 msgid "Upload too large" msgstr "Įkėlimui failas per didelis" diff --git a/l10n/lt_LT/files_encryption.po b/l10n/lt_LT/files_encryption.po index 6e52ef83bbb03749920804faba05588e56ca6dd2..2e398b6292a5689094aa76fe367ee4934d5ce699 100644 --- a/l10n/lt_LT/files_encryption.po +++ b/l10n/lt_LT/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Šifravimas" diff --git a/l10n/lt_LT/files_external.po b/l10n/lt_LT/files_external.po index 6e6e944d5afd49cc2be12d039093f44635a62f79..b46644c1c76c155cea74b39be05e8d2cc51ad08d 100644 --- a/l10n/lt_LT/files_external.po +++ b/l10n/lt_LT/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Prašome įvesti teisingus Dropbox \"app key\" ir \"secret\"." msgid "Error configuring Google Drive storage" msgstr "Klaida nustatinėjant Google Drive talpyklą" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Vartotojai" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Ištrinti" @@ -113,10 +113,10 @@ msgstr "Įjungti vartotojų išorines saugyklas" msgid "Allow users to mount their own external storage" msgstr "Leisti vartotojams pridėti savo išorines saugyklas" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL sertifikatas" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Įkelti pagrindinį sertifikatą" diff --git a/l10n/lt_LT/files_trashbin.po b/l10n/lt_LT/files_trashbin.po index 674308b81be429f9311dc7a98063346907182619..d212c6fa4e52ca82a3232792dabde5b0f1038fa5 100644 --- a/l10n/lt_LT/files_trashbin.po +++ b/l10n/lt_LT/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Pavadinimas" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 aplankalas" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} aplankalai" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 failas" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} failai" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Ištrinti" diff --git a/l10n/lt_LT/files_versions.po b/l10n/lt_LT/files_versions.po index b3cf7ff9e978ab8b5ef9a628ced95a88ec2d37a9..42087e7e323cd27d948e99443f08876777d0e2a3 100644 --- a/l10n/lt_LT/files_versions.po +++ b/l10n/lt_LT/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -19,10 +19,45 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Istorija" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Failų versijos" diff --git a/l10n/lt_LT/lib.po b/l10n/lt_LT/lib.po index 1f676fdd4ec966b1288da74ff9f7bce44075183a..ef437a287d4bd0fabf501c2c31a0e9fe9ea1f610 100644 --- a/l10n/lt_LT/lib.po +++ b/l10n/lt_LT/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pagalba" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Asmeniniai" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Nustatymai" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Vartotojai" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Programos" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administravimas" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP atsisiuntimo galimybė yra išjungta." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Failai turi būti parsiunčiami vienas po kito." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Atgal į Failus" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Pasirinkti failai per dideli archyvavimui į ZIP." @@ -87,6 +87,108 @@ msgstr "Žinučių" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "prieš kelias sekundes" @@ -139,16 +241,16 @@ msgstr "pereitais metais" msgid "years ago" msgstr "prieš metus" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s yra galimas. Platesnė informacija čia" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "pilnai atnaujinta" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "atnaujinimų tikrinimas išjungtas" diff --git a/l10n/lt_LT/settings.po b/l10n/lt_LT/settings.po index e1ef964d696b148abde96e9cb2addfb5a363be14..f6bfa41c0813f72f557e99a499c5bb36c96bd8cc 100644 --- a/l10n/lt_LT/settings.po +++ b/l10n/lt_LT/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Neįmanoma įkelti sąrašo iš Programų Katalogo" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentikacijos klaida" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "Klaidinga užklausa" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "Klaida" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Saugoma.." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "anuliuoti" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupės" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Ištrinti" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Kalba" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Saugumo pranešimas" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Jūsų duomenų aplankalas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess, kuris duodamas, neveikia. Mes rekomenduojame susitvarkyti savo nustatymsu taip, kad failai nebūtų pasiekiami per internetą, arba persikelti juos kitur." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Daugiau" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Pridėti programėlę" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Daugiau aplikacijų" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Pasirinkite programą" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "- autorius" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Atnaujinti" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -179,116 +385,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klientai" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Slaptažodis" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Jūsų slaptažodis buvo pakeistas" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Neįmanoma pakeisti slaptažodžio" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Dabartinis slaptažodis" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Naujas slaptažodis" -#: templates/personal.php:28 -msgid "show" -msgstr "rodyti" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Pakeisti slaptažodį" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "El. paštas" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Jūsų el. pašto adresas" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Pamiršto slaptažodžio atkūrimui įveskite savo el. pašto adresą" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Kalba" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Padėkite išversti" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupės" - #: templates/users.php:32 msgid "Create" msgstr "Sukurti" @@ -297,34 +473,26 @@ msgstr "Sukurti" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Kita" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Ištrinti" diff --git a/l10n/lt_LT/user_ldap.po b/l10n/lt_LT/user_ldap.po index 360405cc4d1cac05b3d0ccf5b8bd9a71c21ccbb0..a0eca3ff0fc86a28e15cfe1981edea365e3f9388 100644 --- a/l10n/lt_LT/user_ldap.po +++ b/l10n/lt_LT/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -214,7 +214,7 @@ msgid "Use TLS" msgstr "Naudoti TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/lv/core.po b/l10n/lv/core.po index dc5ca491cfd0a11db010f37b0b32ac2906af8f68..55f705bdd4778b2add527f083b1f7b3651d76724 100644 --- a/l10n/lv/core.po +++ b/l10n/lv/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "Nav kategoriju, ko pievienot?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Šāda kategorija jau eksistē:" +#, php-format +msgid "This category already exists: %s" +msgstr "Šāda kategorija jau eksistē — %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "Novembris" msgid "December" msgstr "Decembris" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Iestatījumi" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekundes atpakaļ" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "pirms 1 minūtes" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "pirms {minutes} minūtēm" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "pirms 1 stundas" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "pirms {hours} stundām" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "šodien" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "vakar" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "pirms {days} dienām" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "pagājušajā mēnesī" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "pirms {months} mēnešiem" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "mēnešus atpakaļ" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "gājušajā gadā" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "gadus atpakaļ" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "Nav norādīts objekta tips." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Kļūda" @@ -252,15 +253,15 @@ msgstr "Nav norādīts lietotnes nosaukums." msgid "The required file {file} is not installed!" msgstr "Pieprasītā datne {file} nav instalēta!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Dalīties" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Kopīgs" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Dalīties" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Kļūda, daloties" @@ -356,23 +357,23 @@ msgstr "dzēst" msgid "share" msgstr "dalīties" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Aizsargāts ar paroli" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Kļūda, noņemot termiņa datumu" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Kļūda, iestatot termiņa datumu" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sūta..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Vēstule nosūtīta" @@ -387,7 +388,7 @@ msgstr "Atjaunināšana beidzās nesekmīgi. Lūdzu, ziņojiet par šo problēmu msgid "The update was successful. Redirecting you to ownCloud now." msgstr "Atjaunināšana beidzās sekmīgi. Tagad pārsūta jūs uz ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud paroles maiņa" @@ -468,7 +469,7 @@ msgstr "Rediģēt kategoriju" msgid "Add" msgstr "Pievienot" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Brīdinājums par drošību" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "Nav pieejams drošs nejaušu skaitļu ģenerators. Lūdzu, aktivējiet PHP OpenSSL paplašinājumu." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Bez droša nejaušu skaitļu ģeneratora uzbrucējs var paredzēt paroļu atjaunošanas marķierus un pārņem jūsu kontu." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Visticamāk, jūsu datu direktorija un datnes ir pieejamas no interneta, jo .htaccess datne nedarbojas." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes." +"For information how to properly configure your server, please see the documentation." +msgstr "Lai uzzinātu, kā pareizi jākonfigurē šis serveris, skatiet dokumentāciju." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Izveidot administratora kontu" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Paplašināti" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datu mape" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurēt datubāzi" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "tiks izmantots" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Datubāzes lietotājs" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Datubāzes parole" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Datubāzes nosaukums" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Datubāzes tabulas telpa" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Datubāzes serveris" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Pabeigt iestatīšanu" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "jūsu vadībā esošie tīmekļa servisi" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Izrakstīties" @@ -574,7 +579,7 @@ msgstr "Ierakstīties" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternatīvās pieteikšanās" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/lv/files.po b/l10n/lv/files.po index a003b4fdf1a718864342c842e954ca4574453fce..c1fa3bd8931e334132db77bf3b39fb9cf81e50e9 100644 --- a/l10n/lv/files.po +++ b/l10n/lv/files.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,20 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nevarēja pārvietot %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nevarēja pārsaukt datni" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Netika augšupielādēta neviena datne. Nezināma kļūda" @@ -56,8 +70,8 @@ msgid "Failed to write to disk" msgstr "Neizdevās saglabāt diskā" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nepietiek brīvas vietas" +msgid "Not enough storage available" +msgstr "Nav pietiekami daudz vietas" #: ajax/upload.php:83 msgid "Invalid directory." @@ -67,51 +81,52 @@ msgstr "Nederīga direktorija." msgid "Files" msgstr "Datnes" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Pārtraukt dalīšanos" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Dzēst pavisam" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Dzēst" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Pārsaukt" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Gaida savu kārtu" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} jau eksistē" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "aizvietot" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "ieteiktais nosaukums" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "atcelt" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "aizvietots {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "atsaukt" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "aizvietoja {new_name} ar {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "veikt dzēšanas darbību" @@ -137,78 +152,74 @@ msgstr "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tās izmērs ir 0 baiti" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Kļūda augšupielādējot" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Aizvērt" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Gaida savu kārtu" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "Augšupielādē 1 datni" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "augšupielādē {count} datnes" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Augšupielāde ir atcelta." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL nevar būt tukšs." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nederīgs mapes nosaukums. “Koplietots” izmantojums ir rezervēts ownCloud servisam." -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nosaukums" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Izmērs" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Mainīts" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 mape" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mapes" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 datne" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} datnes" @@ -265,8 +276,8 @@ msgid "From link" msgstr "No saites" #: templates/index.php:40 -msgid "Trash" -msgstr "Miskaste" +msgid "Deleted files" +msgstr "Dzēstās datnes" #: templates/index.php:46 msgid "Cancel upload" @@ -280,6 +291,10 @@ msgstr "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!" msgid "Download" msgstr "Lejupielādēt" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Pārtraukt dalīšanos" + #: templates/index.php:105 msgid "Upload too large" msgstr "Datne ir par lielu, lai to augšupielādētu" diff --git a/l10n/lv/files_encryption.po b/l10n/lv/files_encryption.po index c5f33459a225ff9914d1de03f9030b9eda12fd5d..845062cf87778dfcdba1c07b1d57b51366bc2a3d 100644 --- a/l10n/lv/files_encryption.po +++ b/l10n/lv/files_encryption.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 20:40+0000\n" -"Last-Translator: Rūdolfs Mazurs \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,28 +18,6 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Pārslēdzās uz klienta puses šifrēšanu" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Mainīt šifrēšanas paroli uz ierakstīšanās paroli" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Šifrēšana" diff --git a/l10n/lv/files_external.po b/l10n/lv/files_external.po index c4fdcae07443fcbc69c6b632d188c57dce7c7eb4..ada5bed70f6b5a2ebe8e4eeddbf558214ecbc9e5 100644 --- a/l10n/lv/files_external.po +++ b/l10n/lv/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 18:30+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu." msgid "Error configuring Google Drive storage" msgstr "Kļūda, konfigurējot Google Drive krātuvi" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Brīdinājums: nav uzinstalēts “smbclient”. Nevar montēt CIFS/SMB koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē." -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Ļaut lietotājiem montēt pašiem savu ārējo krātuvi" msgid "SSL root certificates" msgstr "SSL saknes sertifikāti" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importēt saknes sertifikātus" diff --git a/l10n/lv/files_trashbin.po b/l10n/lv/files_trashbin.po index 0cd0f39d48740f22538a96dee1a3322c49e4d6b0..f4af7a84510218d6451f0d78626670f00c47bd9b 100644 --- a/l10n/lv/files_trashbin.po +++ b/l10n/lv/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Nevarēja pilnībā izdzēst %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Nevarēja atjaunot %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "veikt atjaunošanu" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "dzēst datni pavisam" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Dzēst pavisam" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nosaukums" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Dzēsts" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mape" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mapes" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 datne" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} datnes" @@ -57,3 +71,7 @@ msgstr "Šeit nekā nav. Jūsu miskaste ir tukša!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Atjaunot" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Dzēst" diff --git a/l10n/lv/files_versions.po b/l10n/lv/files_versions.po index fa500081cc3ccc763eb0817d44a4b010508545d5..7d9e6940598b477656c5bce1246427c16e39838e 100644 --- a/l10n/lv/files_versions.po +++ b/l10n/lv/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 10:50+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 12:20+0000\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Nevarēja atgriezt — %s" + +#: history.php:40 +msgid "success" +msgstr "veiksme" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Datne %s tika atgriezt uz versiju %s" + +#: history.php:49 +msgid "failure" +msgstr "neveiksme" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Datni %s nevarēja atgriezt uz versiju %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nav pieejamu vecāku versiju" + +#: history.php:73 +msgid "No path specified" +msgstr "Nav norādīts ceļš" + #: js/versions.js:16 msgid "History" msgstr "Vēsture" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Atgriez datni uz iepriekšēju versiju, spiežot uz tās atgriešanas pogu" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Datņu versiju izskošana" diff --git a/l10n/lv/lib.po b/l10n/lv/lib.po index 3dd07bcc2b247500353bad75657b9ec23206bdea..94eb6c29aa070ac77c73fc062a43e0fec32b2667 100644 --- a/l10n/lv/lib.po +++ b/l10n/lv/lib.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 21:40+0000\n" -"Last-Translator: Rūdolfs Mazurs \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,27 +18,27 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: app.php:313 +#: app.php:349 msgid "Help" msgstr "Palīdzība" -#: app.php:320 +#: app.php:362 msgid "Personal" msgstr "Personīgi" -#: app.php:325 +#: app.php:373 msgid "Settings" msgstr "Iestatījumi" -#: app.php:330 +#: app.php:385 msgid "Users" msgstr "Lietotāji" -#: app.php:337 +#: app.php:398 msgid "Apps" msgstr "Lietotnes" -#: app.php:339 +#: app.php:406 msgid "Admin" msgstr "Administratori" @@ -50,15 +50,15 @@ msgstr "ZIP lejupielādēšana ir izslēgta." msgid "Files need to be downloaded one by one." msgstr "Datnes var lejupielādēt tikai katru atsevišķi." -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Atpakaļ pie datnēm" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Izvēlētās datnes ir pārāk lielas, lai izveidotu zip datni." -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "nevarēja noteikt" @@ -86,6 +86,108 @@ msgstr "Teksts" msgid "Images" msgstr "Attēli" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Iestatiet administratora lietotājvārdu." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Iestatiet administratora paroli." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Norādiet datu mapi." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s ievadiet datubāzes lietotājvārdu." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s ievadiet datubāzes nosaukumu." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s datubāžu nosaukumos nedrīkst izmantot punktus" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s iestatiet datubāžu serveri." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nav derīga PostgreSQL parole un/vai lietotājvārds" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Jums jāievada vai nu esošs vai administratora konts." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nav derīga Oracle parole un/vai lietotājvārds" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nav derīga MySQL parole un/vai lietotājvārds" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DB kļūda — “%s”" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Vainīgā komanda bija “%s”" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL lietotājs %s'@'localhost' jau eksistē." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Izmest šo lietotāju no MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL lietotājs '%s'@'%%' jau eksistē" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Izmest šo lietotāju no MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Vainīgā komanda bija \"%s\", vārds: %s, parole: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Jūsu serveris vēl nav pareizi iestatīts, lai ļautu sinhronizēt datnes, jo izskatās, ka WebDAV saskarne ir salauzta." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Lūdzu, vēlreiz pārbaudiet instalēšanas palīdzību." + #: template.php:113 msgid "seconds ago" msgstr "sekundes atpakaļ" @@ -138,16 +240,16 @@ msgstr "gājušajā gadā" msgid "years ago" msgstr "gadus atpakaļ" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s ir pieejams. Iegūt vairāk informācijas" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ir aktuāls" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "atjauninājumu pārbaude ir deaktivēta" diff --git a/l10n/lv/settings.po b/l10n/lv/settings.po index daca3930d1ac564e24b19a492a6bd2353bb2fb9a..dbc9dac15a81157038b99c11680f740d77073975 100644 --- a/l10n/lv/settings.po +++ b/l10n/lv/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -24,14 +24,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nevar lejupielādēt sarakstu no lietotņu veikala" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentifikācijas kļūda" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Nevarēja mainīt redzamo vārdu" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,17 +73,17 @@ msgstr "Nederīgs pieprasījums" msgid "Admins can't remove themself from the admin group" msgstr "Administratori nevar izņemt paši sevi no administratoru grupas" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Nevar pievienot lietotāju grupai %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Nevar izņemt lietotāju no grupas %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Nevarēja atjaunināt lietotni." @@ -119,59 +119,265 @@ msgstr "Kļūda" msgid "Updated" msgstr "Atjaunināta" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Saglabā..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "izdzests" + +#: js/users.js:30 +msgid "undo" +msgstr "atsaukt" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Nevar izņemt lietotāju" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupas" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupas administrators" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Dzēst" + +#: js/users.js:191 +msgid "add group" +msgstr "pievienot grupu" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Jānorāda derīgs lietotājvārds" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Kļūda, veidojot lietotāju" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Jānorāda derīga parole" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__valodas_nosaukums__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Brīdinājums par drošību" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Iestatīšanas brīdinājums" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Jūsu serveris vēl nav pareizi iestatīts, lai ļautu sinhronizēt datnes, jo izskatās, ka WebDAV saskarne ir salauzta." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Lūdzu, vēlreiz pārbaudiet instalēšanas palīdzību." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Trūkst modulis “fileinfo”" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Lokāle nestrādā" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Interneta savienojums nedarbojas" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Šim ownCloud serverim nav strādājoša interneta savienojuma. Tas nozīmē, ka dažas no šīm iespējām, piemēram, ārējas krātuves montēšana, paziņošana par atjauninājumiem vai trešās puses programmatūras instalēšana nestrādā. Varētu nestrādāt attālināta piekļuve pie datnēm un paziņojumu e-pasta vēstuļu sūtīšana. Mēs iesakām aktivēt interneta savienojumu šim serverim, ja vēlaties visas ownCloud iespējas." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Izpildīt vienu uzdevumu ar katru ielādēto lapu" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php ir reģistrēts webcron servisā. Izsauciet cron.php lapu ownCloud saknē caur http reizi sekundē." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Izmantot sistēmas cron servisu. Izsauciet cron.php datni ownCloud mapē caur sistēmas cornjob reizi minūtē." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Dalīšanās" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Aktivēt koplietošanas API" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Ļauj lietotnēm izmantot koplietošanas API" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Atļaut saites" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Ļaut lietotājiem publiski dalīties ar vienumiem, izmantojot saites" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Atļaut atkārtotu koplietošanu" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Ļaut lietotājiem dalīties ar vienumiem atkārtoti" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Ļaut lietotājiem dalīties ar visiem" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Ļaut lietotājiem dalīties ar lietotājiem to grupās" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Drošība" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Uzspiest HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Piespiež klientus savienoties ar ownCloud caur šifrētu savienojumu." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Lūdzu, savienojieties ar šo ownCloud pakalpojumu caur HTTPS, lai aktivētu vai deaktivētu SSL piemērošanu." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Žurnāls" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Žurnāla līmenis" + +#: templates/admin.php:223 +msgid "More" +msgstr "Vairāk" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versija" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "IzstrādājusiownCloud kopiena,pirmkodukurš ir licencēts zem AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Pievieno savu lietotni" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Vairāk lietotņu" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Izvēlies lietotni" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Apskati lietotņu lapu — apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licencēts no " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Atjaunināt" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Lietotāja dokumentācija" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administratora dokumentācija" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Tiešsaistes dokumentācija" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forums" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Kļūdu sekotājs" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Komerciālais atbalsts" @@ -180,116 +386,86 @@ msgstr "Komerciālais atbalsts" msgid "You have used %s of the available %s" msgstr "Jūs lietojat %s no pieejamajiem %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienti" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Lejupielādēt darbvirsmas klientus" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Lejupielādēt Android klientu" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Lejupielādēt iOS klientu" +msgid "Get the apps to sync your files" +msgstr "Saņem lietotnes, lai sinhronizētu savas datnes" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Vēlreiz rādīt pirmās palaišanas vedni" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Parole" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Jūru parole tika nomainīta" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Nevar nomainīt jūsu paroli" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Pašreizējā parole" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Jauna parole" -#: templates/personal.php:28 -msgid "show" -msgstr "parādīt" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Mainīt paroli" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Redzamais vārds" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Jūsu redzamais vārds tika mainīts" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Nevarēja mainīt jūsu redzamo vārdu" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Mainīt redzamo vārdu" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-pasts" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Jūsu e-pasta adrese" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Ievadiet epasta adresi, lai vēlāk varētu atgūt paroli, ja būs nepieciešamība" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Valoda" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Palīdzi tulkot" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Izmanto šo adresi, lai, izmantojot datņu pārvaldnieku, savienotos ar savu ownCloud" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versija" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "IzstrādājusiownCloud kopiena,pirmkodukurš ir licencēts zem AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Ierakstīšanās vārds" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupas" - #: templates/users.php:32 msgid "Create" msgstr "Izveidot" @@ -298,34 +474,26 @@ msgstr "Izveidot" msgid "Default Storage" msgstr "Noklusējuma krātuve" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Neierobežota" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Cits" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupas administrators" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Krātuve" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "mainīt redzamo vārdu" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "iestatīt jaunu paroli" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Noklusējuma" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Dzēst" diff --git a/l10n/lv/user_ldap.po b/l10n/lv/user_ldap.po index ac6a97fa0f2bf48fa29616528222dccf09f25bde..3635e7a278705669c244830272c38a072ebe907b 100644 --- a/l10n/lv/user_ldap.po +++ b/l10n/lv/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 14:21+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 12:20+0000\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "Lietot TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Neizmanto to SSL savienojumiem, tas neizdosies." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Neizmanto papildu LDAPS savienojumus! Tas nestrādās." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/mk/core.po b/l10n/mk/core.po index 907d9476d360e534facbb40aa309f17ac0e7078b..297237da8c72d8c2d06816c8fe85f138d955a37f 100644 --- a/l10n/mk/core.po +++ b/l10n/mk/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "Нема категорија да се додаде?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Оваа категорија веќе постои:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "Ноември" msgid "December" msgstr "Декември" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Поставки" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "пред секунди" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "пред 1 минута" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "пред {minutes} минути" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "пред 1 час" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "пред {hours} часови" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "денеска" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "вчера" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "пред {days} денови" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "минатиот месец" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "пред {months} месеци" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "пред месеци" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "минатата година" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "пред години" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "Не е специфициран типот на објект." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Грешка" @@ -253,15 +254,15 @@ msgstr "Името на апликацијата не е специфицира msgid "The required file {file} is not installed!" msgstr "Задолжителната датотека {file} не е инсталирана!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Сподели" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Сподели" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Грешка при споделување" @@ -357,23 +358,23 @@ msgstr "избриши" msgid "share" msgstr "сподели" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Заштитено со лозинка" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Грешка при тргање на рокот на траење" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Грешка при поставување на рок на траење" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Праќање..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Е-порака пратена" @@ -388,7 +389,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ресетирање на лозинка за ownCloud" @@ -469,7 +470,7 @@ msgstr "Уреди категории" msgid "Add" msgstr "Додади" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Безбедносно предупредување" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "Не е достапен безбеден генератор на случајни броеви, Ве молам озвоможете го OpenSSL PHP додатокот." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Без сигурен генератор на случајни броеви напаѓач може да ги предвиди жетоните за ресетирање на лозинка и да преземе контрола врз Вашата сметка. " +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Вашата папка со податоци и датотеките е најверојатно достапна од интернет. .htaccess датотеката што ја овозможува ownCloud не фунционира. Силно препорачуваме да го исконфигурирате вашиот сервер за вашата папка со податоци не е достапна преку интернетт или преместете ја надвор од коренот на веб серверот." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Направете администраторска сметка" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Напредно" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Фолдер со податоци" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Конфигурирај ја базата" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "ќе биде користено" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Корисник на база" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Лозинка на база" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Име на база" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Табела во базата на податоци" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Сервер со база" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Заврши го подесувањето" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "веб сервиси под Ваша контрола" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Одјава" diff --git a/l10n/mk/files.po b/l10n/mk/files.po index 040ed8a2a7f53f4dd64246761f19130b807b3029..0d386182636e22eb9b380e993fa4606d0e57c4fe 100644 --- a/l10n/mk/files.po +++ b/l10n/mk/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ниту еден фајл не се вчита. Непозната грешка" @@ -56,7 +70,7 @@ msgid "Failed to write to disk" msgstr "Неуспеав да запишам на диск" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -67,51 +81,52 @@ msgstr "" msgid "Files" msgstr "Датотеки" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Не споделувај" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Избриши" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Преименувај" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Чека" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} веќе постои" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "замени" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "предложи име" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "откажи" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "земенета {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "врати" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "заменета {new_name} со {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,78 +152,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Грешка при преземање" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Затвои" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Чека" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 датотека се подига" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} датотеки се подигаат" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Преземањето е прекинато." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Адресата неможе да биде празна." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Име" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Големина" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Променето" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папки" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 датотека" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} датотеки" @@ -265,7 +276,7 @@ msgid "From link" msgstr "Од врска" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Тука нема ништо. Снимете нешто!" msgid "Download" msgstr "Преземи" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Не споделувај" + #: templates/index.php:105 msgid "Upload too large" msgstr "Датотеката е премногу голема" diff --git a/l10n/mk/files_encryption.po b/l10n/mk/files_encryption.po index 56ed5df95cdb2f9495721da778f34f1a7dc4cdbd..3eab97885bd975b38368d60a7f71db0f30e93b8f 100644 --- a/l10n/mk/files_encryption.po +++ b/l10n/mk/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Енкрипција" diff --git a/l10n/mk/files_external.po b/l10n/mk/files_external.po index 586863c6b166002a6580a6eceec0793893bdc61b..90c33f06a611642f294c6a02b5d0f25b5d06f42e 100644 --- a/l10n/mk/files_external.po +++ b/l10n/mk/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-29 00:07+0100\n" -"PO-Revision-Date: 2012-12-28 09:20+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Georgi Stanojevski \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Ве молам доставите валиден Dropbox клуч и т msgid "Error configuring Google Drive storage" msgstr "Грешка при конфигурација на Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Внимание: \"smbclient\" не е инсталиран. Не е можно монтирање на CIFS/SMB дискови. Замолете го Вашиот систем администратор да го инсталира." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Дозволи им на корисниците да монтираат msgid "SSL root certificates" msgstr "SSL root сертификати" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Увези" diff --git a/l10n/mk/files_trashbin.po b/l10n/mk/files_trashbin.po index 99097d14e0872a69f62522e500aa4e3b0e041a04..733fe1f429c76dc876f8007d95efc69e899001b9 100644 --- a/l10n/mk/files_trashbin.po +++ b/l10n/mk/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Име" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 папка" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} папки" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 датотека" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} датотеки" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Избриши" diff --git a/l10n/mk/files_versions.po b/l10n/mk/files_versions.po index 3f4e68131e372c0dca0c39cfaa54dd4935d9f4f9..3ea9e4d20c3aa84693391653346c2c90333285f0 100644 --- a/l10n/mk/files_versions.po +++ b/l10n/mk/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Историја" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Верзии на датотеки" diff --git a/l10n/mk/lib.po b/l10n/mk/lib.po index ada37660729dba1fe825e22d5c03f6a40b29c1c6..f78cd8ab7676e4f0f7eb432ef01fc4b35a645ce1 100644 --- a/l10n/mk/lib.po +++ b/l10n/mk/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Помош" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Лично" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Параметри" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Корисници" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Аппликации" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Админ" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Преземање во ZIP е исклучено" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Датотеките треба да се симнат една по една." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Назад кон датотеки" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Избраните датотеки се преголеми за да се генерира zip." @@ -86,6 +86,108 @@ msgstr "Текст" msgid "Images" msgstr "Слики" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "пред секунди" @@ -138,16 +240,16 @@ msgstr "минатата година" msgid "years ago" msgstr "пред години" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s е достапно. Земи повеќе информации" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ажурно" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "проверката за ажурирања е оневозможена" diff --git a/l10n/mk/settings.po b/l10n/mk/settings.po index f441c26ada434200048bdf207938c81d717a2866..907f9576c1778b892aad8c94f1845557beb2821d 100644 --- a/l10n/mk/settings.po +++ b/l10n/mk/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Неможам да вчитам листа од App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Грешка во автентикација" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "неправилно барање" msgid "Admins can't remove themself from the admin group" msgstr "Администраторите неможе да се избришат себеси од админ групата" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Неможе да додадам корисник во група %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Неможе да избришам корисник од група %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -119,59 +119,265 @@ msgstr "Грешка" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Снимам..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "врати" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Групи" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Администратор на група" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Избриши" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Безбедносно предупредување" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Вашата папка со податоци и датотеките е најверојатно достапна од интернет. .htaccess датотеката што ја овозможува ownCloud не фунционира. Силно препорачуваме да го исконфигурирате вашиот сервер за вашата папка со податоци не е достапна преку интернетт или преместете ја надвор од коренот на веб серверот." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Повеќе" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Верзија" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Развој од ownCloud заедницата, изворниот код е лиценциран соAGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Додадете ја Вашата апликација" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Повеќе аппликации" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Избери аппликација" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Види ја страницата со апликации на apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-лиценцирано од " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Ажурирај" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Корисничка документација" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Администраторска документација" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Документација на интернет" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Форум" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Комерцијална подршка" @@ -180,116 +386,86 @@ msgstr "Комерцијална подршка" msgid "You have used %s of the available %s" msgstr "Имате искористено %s од достапните %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Клиенти" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Преземи клиенти за десктоп" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Преземи клиент за Андроид" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Преземи iOS клиент" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Лозинка" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Вашата лозинка беше променета." -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Вашата лозинка неможе да се смени" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Моментална лозинка" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Нова лозинка" -#: templates/personal.php:28 -msgid "show" -msgstr "прикажи" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Смени лозинка" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Е-пошта" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Вашата адреса за е-пошта" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Пополни ја адресата за е-пошта за да може да ја обновуваш лозинката" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Јазик" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Помогни во преводот" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Користете ја оваа адреса да " -#: templates/personal.php:85 -msgid "Version" -msgstr "Верзија" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Развој од ownCloud заедницата, изворниот код е лиценциран соAGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Групи" - #: templates/users.php:32 msgid "Create" msgstr "Создај" @@ -298,34 +474,26 @@ msgstr "Создај" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Останато" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Администратор на група" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Избриши" diff --git a/l10n/mk/user_ldap.po b/l10n/mk/user_ldap.po index 7380a12ef3386447a4c5de3493c7abe78ae1d134..78d3ca3305f8d324ca83f4b3d104423b4da80204 100644 --- a/l10n/mk/user_ldap.po +++ b/l10n/mk/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -214,7 +214,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/ms_MY/core.po b/l10n/ms_MY/core.po index 239b6a5dd602cd6d2dde239778c58411ada0dc4c..61b35a09fc77041b1b46c173d88ecf88aeb6c8ae 100644 --- a/l10n/ms_MY/core.po +++ b/l10n/ms_MY/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "Tiada kategori untuk di tambah?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Kategori ini telah wujud" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "November" msgid "December" msgstr "Disember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Tetapan" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Ralat" @@ -253,15 +254,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Kongsi" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Kongsi" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -357,23 +358,23 @@ msgstr "" msgid "share" msgstr "" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -388,7 +389,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Set semula kata lalaun ownCloud" @@ -469,7 +470,7 @@ msgstr "Edit kategori" msgid "Add" msgstr "Tambah" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Amaran keselamatan" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "buat akaun admin" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Maju" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Fail data" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurasi pangkalan data" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "akan digunakan" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Nama pengguna pangkalan data" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Kata laluan pangkalan data" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nama pangkalan data" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Hos pangkalan data" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Setup selesai" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Perkhidmatan web di bawah kawalan anda" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Log keluar" diff --git a/l10n/ms_MY/files.po b/l10n/ms_MY/files.po index d27c0cdafb0380f84052dc1f9b9ba8f2053b0608..2a3bee93b764abe3501cc58124a3447fb00dd83b 100644 --- a/l10n/ms_MY/files.po +++ b/l10n/ms_MY/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,20 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Tiada fail dimuatnaik. Ralat tidak diketahui." @@ -57,7 +71,7 @@ msgid "Failed to write to disk" msgstr "Gagal untuk disimpan" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -68,51 +82,52 @@ msgstr "" msgid "Files" msgstr "fail" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Padam" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Dalam proses" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ganti" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "Batal" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -138,78 +153,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tidak boleh memuatnaik fail anda kerana mungkin ianya direktori atau saiz fail 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Muat naik ralat" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Tutup" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Dalam proses" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Muatnaik dibatalkan." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nama " -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Saiz" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -266,7 +277,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -281,6 +292,10 @@ msgstr "Tiada apa-apa di sini. Muat naik sesuatu!" msgid "Download" msgstr "Muat turun" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "Muat naik terlalu besar" diff --git a/l10n/ms_MY/files_encryption.po b/l10n/ms_MY/files_encryption.po index 5c9ecb2f2284f915c5eac09678a0b1155bd1cab3..b87b0fa030b53428cdc22f6f6ca0a954fb707e94 100644 --- a/l10n/ms_MY/files_encryption.po +++ b/l10n/ms_MY/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/ms_MY/files_external.po b/l10n/ms_MY/files_external.po index 5e943b19f64c6878cd5de52a766e728fc0320e93..3d0efc11524981bd3032c1fb637e197123f17b0f 100644 --- a/l10n/ms_MY/files_external.po +++ b/l10n/ms_MY/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Pengguna" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Padam" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ms_MY/files_trashbin.po b/l10n/ms_MY/files_trashbin.po index 7ae2747a242836aa48abea9fa1ac2688b25e84db..457ed8d886e8999efe9e030b6841a65257d6661d 100644 --- a/l10n/ms_MY/files_trashbin.po +++ b/l10n/ms_MY/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nama" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Padam" diff --git a/l10n/ms_MY/files_versions.po b/l10n/ms_MY/files_versions.po index 389afec231ee983acdb43ebc513da720d1830f1b..c6fa87619d2eff5deca0304c1636eb3dfdb67367 100644 --- a/l10n/ms_MY/files_versions.po +++ b/l10n/ms_MY/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/ms_MY/lib.po b/l10n/ms_MY/lib.po index 5365e602ba13b63caa40ca4397d97f6c9b308cc7..398f8ce8d92097cbec486ba347f43d41a53f5097 100644 --- a/l10n/ms_MY/lib.po +++ b/l10n/ms_MY/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 21:57+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Bantuan" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Peribadi" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Tetapan" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Pengguna" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "Teks" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/ms_MY/settings.po b/l10n/ms_MY/settings.po index b04dd7bcb1367154fd911bacbb193ec051690f1d..ead0af974b426f96a7eafa94a050eb9c6d9e8581 100644 --- a/l10n/ms_MY/settings.po +++ b/l10n/ms_MY/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -25,12 +25,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Ralat pengesahan" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -74,17 +74,17 @@ msgstr "Permintaan tidak sah" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -120,59 +120,265 @@ msgstr "Ralat" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Simpan..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "dihapus" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Kumpulan" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Padam" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "_nama_bahasa_" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Amaran keselamatan" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Tambah apps anda" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Pilih aplikasi" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Lihat halaman applikasi di apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Kemaskini" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -181,116 +387,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "klien" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Kata laluan " -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Gagal mengubah kata laluan anda " -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Kata laluan semasa" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Kata laluan baru" -#: templates/personal.php:28 -msgid "show" -msgstr "Papar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Ubah kata laluan" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Emel" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Alamat emel anda" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Isi alamat emel anda untuk membolehkan pemulihan kata laluan" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Bahasa" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Bantu terjemah" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Kumpulan" - #: templates/users.php:32 msgid "Create" msgstr "Buat" @@ -299,34 +475,26 @@ msgstr "Buat" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Lain" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Padam" diff --git a/l10n/ms_MY/user_ldap.po b/l10n/ms_MY/user_ldap.po index 7728f96e12c33328774e81b64a82a713c31785e1..5d5fac287389f26d2191b2964870341ef60103d1 100644 --- a/l10n/ms_MY/user_ldap.po +++ b/l10n/ms_MY/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/my_MM/core.po b/l10n/my_MM/core.po new file mode 100644 index 0000000000000000000000000000000000000000..f7b5644106dfa0b8972e250ddd3f3f4cd263fbb6 --- /dev/null +++ b/l10n/my_MM/core.po @@ -0,0 +1,594 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Pyae Sone , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2013-02-24 11:20+0000\n" +"Last-Translator: Pyae Sone \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/share.php:97 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:99 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:101 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:104 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "ထည့်ရန်ခေါင်းစဉ်မရှိဘူးလား" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "ဖျက်ရန်အတွက်ခေါင်းစဉ်မရွေးထားပါ" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:34 +msgid "Sunday" +msgstr "" + +#: js/config.php:35 +msgid "Monday" +msgstr "" + +#: js/config.php:36 +msgid "Tuesday" +msgstr "" + +#: js/config.php:37 +msgid "Wednesday" +msgstr "" + +#: js/config.php:38 +msgid "Thursday" +msgstr "" + +#: js/config.php:39 +msgid "Friday" +msgstr "" + +#: js/config.php:40 +msgid "Saturday" +msgstr "" + +#: js/config.php:45 +msgid "January" +msgstr "ဇန်နဝါရီ" + +#: js/config.php:46 +msgid "February" +msgstr "ဖေဖော်ဝါရီ" + +#: js/config.php:47 +msgid "March" +msgstr "မတ်" + +#: js/config.php:48 +msgid "April" +msgstr "ဧပြီ" + +#: js/config.php:49 +msgid "May" +msgstr "မေ" + +#: js/config.php:50 +msgid "June" +msgstr "ဇွန်" + +#: js/config.php:51 +msgid "July" +msgstr "ဇူလိုင်" + +#: js/config.php:52 +msgid "August" +msgstr "ဩဂုတ်" + +#: js/config.php:53 +msgid "September" +msgstr "စက်တင်ဘာ" + +#: js/config.php:54 +msgid "October" +msgstr "အောက်တိုဘာ" + +#: js/config.php:55 +msgid "November" +msgstr "နိုဝင်ဘာ" + +#: js/config.php:56 +msgid "December" +msgstr "ဒီဇင်ဘာ" + +#: js/js.js:286 +msgid "Settings" +msgstr "" + +#: js/js.js:767 +msgid "seconds ago" +msgstr "စက္ကန့်အနည်းငယ်က" + +#: js/js.js:768 +msgid "1 minute ago" +msgstr "၁ မိနစ်အရင်က" + +#: js/js.js:769 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:770 +msgid "1 hour ago" +msgstr "၁ နာရီ အရင်က" + +#: js/js.js:771 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:772 +msgid "today" +msgstr "ယနေ့" + +#: js/js.js:773 +msgid "yesterday" +msgstr "မနေ့က" + +#: js/js.js:774 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:775 +msgid "last month" +msgstr "ပြီးခဲ့သောလ" + +#: js/js.js:776 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:777 +msgid "months ago" +msgstr "" + +#: js/js.js:778 +msgid "last year" +msgstr "မနှစ်က" + +#: js/js.js:779 +msgid "years ago" +msgstr "နှစ် အရင်က" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "ရွေးချယ်" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "ပယ်ဖျက်မည်" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "မဟုတ်ဘူး" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "ဟုတ်" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "အိုကေ" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "" + +#: js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:141 js/share.js:622 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:46 templates/login.php:35 +msgid "Password" +msgstr "စကားဝှက်" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "သက်တမ်းကုန်ဆုံးမည့်ရက်သတ်မှတ်မည်" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "သက်တမ်းကုန်ဆုံးမည့်ရက်" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "အီးမေးလ်ဖြင့်ဝေမျှမည် -" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "ပြန်လည်ဝေမျှခြင်းခွင့်မပြုပါ" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "ပြင်ဆင်နိုင်" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "ဖန်တီးမည်" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "ဖျက်မည်" + +#: js/share.js:339 +msgid "share" +msgstr "ဝေမျှမည်" + +#: js/share.js:373 js/share.js:569 +msgid "Password protected" +msgstr "စကားဝှက်ဖြင့်ကာကွယ်ထားသည်" + +#: js/share.js:582 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:594 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:609 +msgid "Sending ..." +msgstr "" + +#: js/share.js:620 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:48 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "အီးမေးလ်မှတစ်ဆင့် သင်၏စကားဝှက်ကို ပြန်ဖော်ရန်အတွက် Link တစ်ခုလက်ခံရရှိပါလိမ့်မယ်။" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:40 +#: templates/login.php:28 +msgid "Username" +msgstr "သုံးစွဲသူအမည်" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "သင်၏စကားဝှက်ကိုပြန်ဖော်ပြီးပါပြီ။" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "ဝင်ရောက်သည့်စာမျက်နှာသို့" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "စကားဝှက်အသစ်" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "" + +#: strings.php:6 +msgid "Users" +msgstr "သုံးစွဲသူ" + +#: strings.php:7 +msgid "Apps" +msgstr "Apps" + +#: strings.php:8 +msgid "Admin" +msgstr "အက်ဒမင်" + +#: strings.php:9 +msgid "Help" +msgstr "အကူအညီ" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "မတွေ့ရှိမိပါ" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "ပေါင်းထည့်" + +#: templates/installation.php:23 templates/installation.php:30 +msgid "Security Warning" +msgstr "လုံခြုံရေးသတိပေးချက်" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:25 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an admin account" +msgstr "အက်ဒမင်အကောင့်တစ်ခုဖန်တီးမည်" + +#: templates/installation.php:54 +msgid "Advanced" +msgstr "အဆင့်မြင့်" + +#: templates/installation.php:56 +msgid "Data folder" +msgstr "အချက်အလက်ဖိုလ်ဒါလ်" + +#: templates/installation.php:65 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:70 templates/installation.php:82 +#: templates/installation.php:93 templates/installation.php:104 +msgid "will be used" +msgstr "" + +#: templates/installation.php:117 +msgid "Database user" +msgstr "Database သုံးစွဲသူ" + +#: templates/installation.php:122 +msgid "Database password" +msgstr "Database စကားဝှက်" + +#: templates/installation.php:127 +msgid "Database name" +msgstr "Database အမည်" + +#: templates/installation.php:137 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:144 +msgid "Database host" +msgstr "" + +#: templates/installation.php:150 +msgid "Finish setup" +msgstr "တပ်ဆင်ခြင်းပြီးပါပြီ။" + +#: templates/layout.guest.php:35 +msgid "web services under your control" +msgstr "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services" + +#: templates/layout.user.php:53 +msgid "Log out" +msgstr "" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "သင်၏စကားဝှက်ပျောက်သွားပြီလား။" + +#: templates/login.php:41 +msgid "remember" +msgstr "မှတ်မိစေသည်" + +#: templates/login.php:43 +msgid "Log in" +msgstr "ဝင်ရောက်ရန်" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "ယခင်" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "နောက်သို့" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/my_MM/files.po b/l10n/my_MM/files.po new file mode 100644 index 0000000000000000000000000000000000000000..dd29715a24f12bc628fa2924886b1726e49d385b --- /dev/null +++ b/l10n/my_MM/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:30 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:31 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:33 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:82 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "ဖိုင်များ" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:225 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:262 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:262 +msgid "Upload Error" +msgstr "" + +#: js/files.js:273 +msgid "Close" +msgstr "" + +#: js/files.js:312 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:315 js/files.js:370 js/files.js:385 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:388 js/files.js:423 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:497 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:570 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:575 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:953 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:954 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:955 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:974 +msgid "1 folder" +msgstr "" + +#: js/files.js:976 +msgid "{count} folders" +msgstr "" + +#: js/files.js:984 +msgid "1 file" +msgstr "" + +#: js/files.js:986 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "ဒေါင်းလုတ်" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/my_MM/files_encryption.po b/l10n/my_MM/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..e6b714b2cb460fbd85c758c882e31530d92ae51b --- /dev/null +++ b/l10n/my_MM/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/my_MM/files_external.po b/l10n/my_MM/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..43ef867a3e920cc803590ae2bbc07f2962340778 --- /dev/null +++ b/l10n/my_MM/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:398 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:401 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "သုံးစွဲသူ" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:154 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/my_MM/files_sharing.po b/l10n/my_MM/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..b960c995af19b0114235c3ac8feb258fceff3f68 --- /dev/null +++ b/l10n/my_MM/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "စကားဝှက်" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "ထည့်သွင်းမည်" + +#: templates/public.php:10 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:13 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:19 templates/public.php:37 +msgid "Download" +msgstr "ဒေါင်းလုတ်" + +#: templates/public.php:34 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:43 +msgid "web services under your control" +msgstr "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services" diff --git a/l10n/my_MM/files_trashbin.po b/l10n/my_MM/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..33f2492dba14bf55db78e51a75fa8dcf5c384cf6 --- /dev/null +++ b/l10n/my_MM/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/my_MM/files_versions.po b/l10n/my_MM/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..4fac18084e142bd583d79d2af9f36f1253cc1958 --- /dev/null +++ b/l10n/my_MM/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/my_MM/lib.po b/l10n/my_MM/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..eae78215aa05cc19ac33b4ae7691bd9c3ca41964 --- /dev/null +++ b/l10n/my_MM/lib.po @@ -0,0 +1,259 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Pyae Sone , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: app.php:349 +msgid "Help" +msgstr "အကူအညီ" + +#: app.php:362 +msgid "Personal" +msgstr "" + +#: app.php:373 +msgid "Settings" +msgstr "" + +#: app.php:385 +msgid "Users" +msgstr "သုံးစွဲသူ" + +#: app.php:398 +msgid "Apps" +msgstr "Apps" + +#: app.php:406 +msgid "Admin" +msgstr "အက်ဒမင်" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "ZIP ဒေါင်းလုတ်ကိုပိတ်ထားသည်" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "ဖိုင်များသည် တစ်ခုပြီး တစ်ခုဒေါင်းလုတ်ချရန်လိုအပ်သည်" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "ဖိုင်သို့ပြန်သွားမည်" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "zip ဖိုင်အဖြစ်ပြုလုပ်ရန် ရွေးချယ်ထားသောဖိုင်များသည် အရမ်းကြီးလွန်းသည်" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "မဆုံးဖြတ်နိုင်ပါ။" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "ခွင့်ပြုချက်မအောင်မြင်" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "ဖိုင်များ" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "စာသား" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "ပုံရိပ်များ" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "စက္ကန့်အနည်းငယ်က" + +#: template.php:114 +msgid "1 minute ago" +msgstr "၁ မိနစ်အရင်က" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "%d မိနစ်အရင်က" + +#: template.php:116 +msgid "1 hour ago" +msgstr "၁ နာရီ အရင်က" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "%d နာရီအရင်က" + +#: template.php:118 +msgid "today" +msgstr "ယနေ့" + +#: template.php:119 +msgid "yesterday" +msgstr "မနေ့က" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "%d ရက် အရင်က" + +#: template.php:121 +msgid "last month" +msgstr "ပြီးခဲ့သောလ" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "%d လအရင်က" + +#: template.php:123 +msgid "last year" +msgstr "မနှစ်က" + +#: template.php:124 +msgid "years ago" +msgstr "နှစ် အရင်က" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "%s ကိုရရှိနိုင်ပါပြီ။ နောက်ထပ်အချက်အလက်များရယူပါ။" + +#: updater.php:81 +msgid "up to date" +msgstr "နောက်ဆုံးပေါ်" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "နောက်ဆုံးပေါ်စစ်ဆေးခြင်းကိုပိတ်ထားသည်" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ" diff --git a/l10n/my_MM/settings.po b/l10n/my_MM/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..4e5175098a3ce1b6847ceddcbe1426e4e6f7eac7 --- /dev/null +++ b/l10n/my_MM/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "ခွင့်ပြုချက်မအောင်မြင်" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "တောင်းဆိုချက်မမှန်ကန်ပါ" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "လုံခြုံရေးသတိပေးချက်" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "စကားဝှက်" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "စကားဝှက်အသစ်" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/my_MM/user_ldap.po b/l10n/my_MM/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..918b95dbf3475f8c60fe27b1056047cadccb563d --- /dev/null +++ b/l10n/my_MM/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-25 00:05+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:36 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:39 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:43 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:18 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:23 +msgid "Host" +msgstr "" + +#: templates/settings.php:25 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:26 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:27 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:28 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:30 +msgid "User DN" +msgstr "" + +#: templates/settings.php:32 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:33 +msgid "Password" +msgstr "စကားဝှက်" + +#: templates/settings.php:36 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:37 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:40 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:41 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:42 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:45 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:46 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:47 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:50 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:51 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:55 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:57 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:57 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:58 +msgid "Port" +msgstr "" + +#: templates/settings.php:59 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:59 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:60 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:61 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:61 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:62 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:63 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:64 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:64 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:64 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:65 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:67 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:69 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:69 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:70 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:70 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:71 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:71 templates/settings.php:74 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:72 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:72 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:73 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:73 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:74 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:75 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:77 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:80 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:82 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:86 +msgid "Help" +msgstr "အကူအညီ" diff --git a/l10n/my_MM/user_webdavauth.po b/l10n/my_MM/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..45d8ff660d388dd101717e231cf7dd418558d14f --- /dev/null +++ b/l10n/my_MM/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: my_MM\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/nb_NO/core.po b/l10n/nb_NO/core.po index d5c9ee553ae9b4b19585f910c31fdaf47fb38b62..70efb0326bed142859a487b258a3d3da8e862fd1 100644 --- a/l10n/nb_NO/core.po +++ b/l10n/nb_NO/core.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -57,8 +57,9 @@ msgid "No category to add?" msgstr "Ingen kategorier å legge til?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Denne kategorien finnes allerede:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -162,59 +163,59 @@ msgstr "November" msgid "December" msgstr "Desember" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Innstillinger" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekunder siden" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minutt siden" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minutter siden" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 time siden" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} timer siden" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "i dag" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "i går" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dager siden" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "forrige måned" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} måneder siden" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "måneder siden" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "forrige år" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "år siden" @@ -244,8 +245,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Feil" @@ -257,15 +258,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Del" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Del" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Feil under deling" @@ -361,23 +362,23 @@ msgstr "slett" msgid "share" msgstr "del" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Passordbeskyttet" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Kan ikke sette utløpsdato" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Sender..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-post sendt" @@ -392,7 +393,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Tilbakestill ownCloud passord" @@ -473,7 +474,7 @@ msgstr "Rediger kategorier" msgid "Add" msgstr "Legg til" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Sikkerhetsadvarsel" @@ -483,71 +484,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "opprett en administrator-konto" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avansert" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datamappe" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurer databasen" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vil bli brukt" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Databasebruker" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Databasepassord" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Databasenavn" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Database tabellområde" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Databasevert" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Fullfør oppsetting" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "nettjenester under din kontroll" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Logg ut" diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po index eb59e0831fb9b659c164434bfd0c552280564c8d..2268eca43ad1671e32b17c7133270c669ec81e4a 100644 --- a/l10n/nb_NO/files.po +++ b/l10n/nb_NO/files.po @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -26,6 +26,20 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer ble lastet opp. Ukjent feil." @@ -62,7 +76,7 @@ msgid "Failed to write to disk" msgstr "Klarte ikke å skrive til disk" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -73,51 +87,52 @@ msgstr "" msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Avslutt deling" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slett" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Omdøp" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ventende" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} finnes allerede" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "erstatt" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "erstatt {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "angre" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "erstatt {new_name} med {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -143,78 +158,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Opplasting feilet" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Lukk" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ventende" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fil lastes opp" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} filer laster opp" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Opplasting avbrutt." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL-en kan ikke være tom." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Navn" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Størrelse" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Endret" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fil" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} filer" @@ -271,7 +282,7 @@ msgid "From link" msgstr "Fra link" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -286,6 +297,10 @@ msgstr "Ingenting her. Last opp noe!" msgid "Download" msgstr "Last ned" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Avslutt deling" + #: templates/index.php:105 msgid "Upload too large" msgstr "Opplasting for stor" diff --git a/l10n/nb_NO/files_encryption.po b/l10n/nb_NO/files_encryption.po index c8657a91e1b7433f9aa6bf97e5c875f3c8dcc598..7be43b41df8fbfb3b0096b8c82578194cf320a7d 100644 --- a/l10n/nb_NO/files_encryption.po +++ b/l10n/nb_NO/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Kryptering" diff --git a/l10n/nb_NO/files_external.po b/l10n/nb_NO/files_external.po index 1888463488e7af817f6988e9b6401f47704fafa4..32b2593a2a91c5c1c79d8b310b84dd93ab6fca87 100644 --- a/l10n/nb_NO/files_external.po +++ b/l10n/nb_NO/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "Brukere" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Slett" @@ -112,10 +112,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/nb_NO/files_trashbin.po b/l10n/nb_NO/files_trashbin.po index c2c66d6ca135aaab2f5e5de3eb177fc47eb3ad91..4bb1f08e6d7ec35922a1354c2e95abb8f1443466 100644 --- a/l10n/nb_NO/files_trashbin.po +++ b/l10n/nb_NO/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Navn" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mappe" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mapper" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fil" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} filer" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Slett" diff --git a/l10n/nb_NO/files_versions.po b/l10n/nb_NO/files_versions.po index 38f8fbe36fe8167a315a0738dd00c8f3a00b7f56..4441ba7870d81331942d0e6a81f55cc362271571 100644 --- a/l10n/nb_NO/files_versions.po +++ b/l10n/nb_NO/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -19,10 +19,45 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Historie" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Fil versjonering" diff --git a/l10n/nb_NO/lib.po b/l10n/nb_NO/lib.po index 4de870048561ef4ce19b48e9dc01e99235c8b70f..0bfcd400be07264d935bbad146129c20da1ae52d 100644 --- a/l10n/nb_NO/lib.po +++ b/l10n/nb_NO/lib.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -22,43 +22,43 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hjelp" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personlig" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Innstillinger" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Brukere" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apper" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP-nedlasting av avslått" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Filene må lastes ned en om gangen" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Tilbake til filer" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "De valgte filene er for store til å kunne generere ZIP-fil" @@ -90,6 +90,108 @@ msgstr "Tekst" msgid "Images" msgstr "Bilder" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "sekunder siden" @@ -142,16 +244,16 @@ msgstr "i fjor" msgid "years ago" msgstr "år siden" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s er tilgjengelig. Få mer informasjon" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "oppdatert" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "versjonssjekk er avslått" diff --git a/l10n/nb_NO/settings.po b/l10n/nb_NO/settings.po index f96018e116979fdba38e3057463398e91b8dd3f3..923293d7f650624a2ad6398f4253a33085e0057d 100644 --- a/l10n/nb_NO/settings.po +++ b/l10n/nb_NO/settings.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -29,12 +29,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Lasting av liste fra App Store feilet." -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentikasjonsfeil" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -78,17 +78,17 @@ msgstr "Ugyldig forespørsel" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Kan ikke legge bruker til gruppen %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Kan ikke slette bruker fra gruppen %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -124,59 +124,265 @@ msgstr "Feil" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Lagrer..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "slettet" + +#: js/users.js:30 +msgid "undo" +msgstr "angre" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupper" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppeadministrator" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Slett" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Sikkerhetsadvarsel" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mer" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versjon" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Legg til din App" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Flere Apps" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Velg en app" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Se applikasjonens side på apps.owncloud.org" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Oppdater" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Brukerdokumentasjon" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administratordokumentasjon" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kommersiell støtte" @@ -185,116 +391,86 @@ msgstr "Kommersiell støtte" msgid "You have used %s of the available %s" msgstr "Du har brukt %s av tilgjengelig %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienter" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Last ned skrivebordsklienter" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Last ned Android-klient" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Last ned iOS-klient" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Passord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Passord har blitt endret" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Kunne ikke endre passordet ditt" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Nåværende passord" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nytt passord" -#: templates/personal.php:28 -msgid "show" -msgstr "vis" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Endre passord" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-post" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Din e-postadresse" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Oppi epostadressen du vil tilbakestille passordet for" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Språk" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Bidra til oversettelsen" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versjon" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupper" - #: templates/users.php:32 msgid "Create" msgstr "Opprett" @@ -303,34 +479,26 @@ msgstr "Opprett" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Annet" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppeadministrator" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Slett" diff --git a/l10n/nb_NO/user_ldap.po b/l10n/nb_NO/user_ldap.po index 26b645f7673ff7ae4983723a5fbb0b9551225c67..6b6fa98ff04a97992385efd8c2afecfebe4398f5 100644 --- a/l10n/nb_NO/user_ldap.po +++ b/l10n/nb_NO/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "Bruk TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/nl/core.po b/l10n/nl/core.po index 84dd24a065376f8e22304d7c6bb01db4dd51f40f..18f1551101b5c10e92ad11c12a8e5bbfd8698102 100644 --- a/l10n/nl/core.po +++ b/l10n/nl/core.po @@ -21,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -64,8 +64,9 @@ msgid "No category to add?" msgstr "Geen categorie toevoegen?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Deze categorie bestaat al." +#, php-format +msgid "This category already exists: %s" +msgstr "Deze categorie bestaat al: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -169,59 +170,59 @@ msgstr "november" msgid "December" msgstr "december" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Instellingen" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "seconden geleden" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minuut geleden" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minuten geleden" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 uur geleden" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} uren geleden" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "vandaag" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "gisteren" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dagen geleden" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "vorige maand" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} maanden geleden" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "maanden geleden" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "vorig jaar" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "jaar geleden" @@ -251,8 +252,8 @@ msgid "The object type is not specified." msgstr "Het object type is niet gespecificeerd." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fout" @@ -264,15 +265,15 @@ msgstr "De app naam is niet gespecificeerd." msgid "The required file {file} is not installed!" msgstr "Het vereiste bestand {file} is niet geïnstalleerd!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Delen" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Gedeeld" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Delen" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Fout tijdens het delen" @@ -368,23 +369,23 @@ msgstr "verwijderen" msgid "share" msgstr "deel" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Wachtwoord beveiligd" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Fout tijdens het verwijderen van de verval datum" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Fout tijdens het instellen van de vervaldatum" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Versturen ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-mail verzonden" @@ -399,7 +400,7 @@ msgstr "De update is niet geslaagd. Meld dit probleem aan bij de documentation." +msgstr "Informatie over het configureren van uw server is hier te vinden documentatie." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Maak een beheerdersaccount aan" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Geavanceerd" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Gegevensmap" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configureer de database" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "zal gebruikt worden" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Gebruiker database" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Wachtwoord database" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Naam database" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Database tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Database server" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Installatie afronden" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Webdiensten in eigen beheer" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Afmelden" @@ -586,7 +591,7 @@ msgstr "Meld je aan" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternatieve inlogs" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index f21914fb2999965e840e635f426dfaef5d1d6b38..337697f53e8a23b0405bcfc2d8dfd528eeb384d5 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/files.po @@ -19,9 +19,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,6 +29,20 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Kon %s niet verplaatsen" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Kan bestand niet hernoemen" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Er was geen bestand geladen. Onbekende fout" @@ -65,8 +79,8 @@ msgid "Failed to write to disk" msgstr "Schrijven naar schijf mislukt" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Niet genoeg ruimte beschikbaar" +msgid "Not enough storage available" +msgstr "Niet genoeg opslagruimte beschikbaar" #: ajax/upload.php:83 msgid "Invalid directory." @@ -76,51 +90,52 @@ msgstr "Ongeldige directory." msgid "Files" msgstr "Bestanden" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Stop delen" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Verwijder definitief" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Verwijder" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Hernoem" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Wachten" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} bestaat al" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "vervang" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "Stel een naam voor" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "annuleren" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "verving {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "ongedaan maken" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "verving {new_name} met {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "uitvoeren verwijderactie" @@ -146,78 +161,74 @@ msgstr "Uw opslagruimte zit vol, Bestanden kunnen niet meer worden ge-upload of msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Upload Fout" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Sluit" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Wachten" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 bestand wordt ge-upload" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} bestanden aan het uploaden" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Uploaden geannuleerd." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL kan niet leeg zijn." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ongeldige mapnaam. Gebruik van'Gedeeld' is voorbehouden aan Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Naam" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Bestandsgrootte" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Laatst aangepast" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 map" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} mappen" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 bestand" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} bestanden" @@ -274,8 +285,8 @@ msgid "From link" msgstr "Vanaf link" #: templates/index.php:40 -msgid "Trash" -msgstr "Verwijderen" +msgid "Deleted files" +msgstr "Verwijderde bestanden" #: templates/index.php:46 msgid "Cancel upload" @@ -289,6 +300,10 @@ msgstr "Er bevindt zich hier niets. Upload een bestand!" msgid "Download" msgstr "Download" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Stop delen" + #: templates/index.php:105 msgid "Upload too large" msgstr "Bestanden te groot" diff --git a/l10n/nl/files_encryption.po b/l10n/nl/files_encryption.po index 4aafb1900df4a04ba2a99fc7e667c40b5424ad51..c287efb9f79568a9589c75f6b7baad47f60a41f6 100644 --- a/l10n/nl/files_encryption.po +++ b/l10n/nl/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André Koot , 2013. # Lennart Weijl , 2013. # Richard Bos , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -19,43 +20,21 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "overgeschakeld naar client side encryptie" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Verander encryptie wachtwoord naar login wachtwoord" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Controleer uw wachtwoorden en probeer het opnieuw." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Versleuteling" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Bestandsversleuteling geactiveerd." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "De volgende bestandstypen zullen niet worden versleuteld:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Sluit de volgende bestandstypen uit van versleuteling:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/nl/files_external.po b/l10n/nl/files_external.po index 73a37735f70aab6d69e17b4abc0fb5e63267e58e..8f85164214a007829f28627d7c2816c4d05cc416 100644 --- a/l10n/nl/files_external.po +++ b/l10n/nl/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-21 00:09+0100\n" -"PO-Revision-Date: 2012-12-20 17:34+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Geef een geldige Dropbox key en secret." msgid "Error configuring Google Drive storage" msgstr "Fout tijdens het configureren van Google Drive opslag" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Waarschuwing: \"smbclient\" is niet geïnstalleerd. Mounten van CIFS/SMB shares is niet mogelijk. Vraag uw beheerder om smbclient te installeren." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "Sta gebruikers toe om hun eigen externe opslag aan te koppelen" msgid "SSL root certificates" msgstr "SSL root certificaten" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importeer root certificaat" diff --git a/l10n/nl/files_trashbin.po b/l10n/nl/files_trashbin.po index 14b518d6dd9fe56b2797afd4b37b12943e1fb432..0c2f17636ad056c0e14346be4719c08c963c18e0 100644 --- a/l10n/nl/files_trashbin.po +++ b/l10n/nl/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Kon %s niet permanent verwijderen" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Kon %s niet herstellen" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "uitvoeren restore operatie" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "verwijder bestanden definitief" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Verwijder definitief" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Naam" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Verwijderd" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 map" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mappen" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 bestand" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} bestanden" @@ -57,3 +71,7 @@ msgstr "Niets te vinden. Uw prullenbak is leeg!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Herstellen" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Verwijder" diff --git a/l10n/nl/files_versions.po b/l10n/nl/files_versions.po index 95169bacce0f20595fc67649f6f92a9d1a797392..71bb6e63b1e94601424242c290f5e07ada8a4a28 100644 --- a/l10n/nl/files_versions.po +++ b/l10n/nl/files_versions.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André Koot , 2013. # Richard Bos , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Kon niet terugdraaien: %s" + +#: history.php:40 +msgid "success" +msgstr "succes" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Bestand %s is teruggedraaid naar versie %s" + +#: history.php:49 +msgid "failure" +msgstr "mislukking" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Bestand %s kon niet worden teruggedraaid naar versie %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Geen oudere versies beschikbaar" + +#: history.php:73 +msgid "No path specified" +msgstr "Geen pad opgegeven" + #: js/versions.js:16 msgid "History" msgstr "Geschiedenis" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Draai een bestand terug naar een voorgaande versie door te klikken op de terugdraai knop" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Bestand versies" diff --git a/l10n/nl/lib.po b/l10n/nl/lib.po index 2ae038b9e406daf42b280db369bce47f52794cce..1dc126dfa7909b0cc35d6b604a8475ab9dfedf47 100644 --- a/l10n/nl/lib.po +++ b/l10n/nl/lib.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-19 00:04+0100\n" -"PO-Revision-Date: 2013-01-18 09:03+0000\n" -"Last-Translator: André Koot \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,43 +21,43 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Help" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Persoonlijk" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Instellingen" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Gebruikers" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Beheerder" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP download is uitgeschakeld." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Bestanden moeten één voor één worden gedownload." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Terug naar bestanden" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "De geselecteerde bestanden zijn te groot om een zip bestand te maken." @@ -89,6 +89,108 @@ msgstr "Tekst" msgid "Images" msgstr "Afbeeldingen" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Stel de gebruikersnaam van de beheerder in." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Stel een beheerderswachtwoord in." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Geef een datamap op." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s opgeven database gebruikersnaam." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s opgeven databasenaam." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s er mogen geen puntjes in de databasenaam voorkomen" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s instellen databaseservernaam." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL gebruikersnaam en/of wachtwoord ongeldig" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Geef of een bestaand account op of het beheerdersaccount." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle gebruikersnaam en/of wachtwoord ongeldig" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL gebruikersnaam en/of wachtwoord ongeldig" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "DB Fout: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Onjuiste commande was: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "MySQL gebruiker '%s'@'localhost' bestaat al." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Verwijder deze gebruiker uit MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "MySQL gebruiker '%s'@'%%' bestaat al" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Verwijder deze gebruiker uit MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Onjuiste commando was: \"%s\", naam: %s, wachtwoord: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Uw webserver is nog niet goed ingesteld voor bestandssynchronisatie omdat de WebDAV interface verbroken lijkt." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Conntroleer de installatie handleiding goed." + #: template.php:113 msgid "seconds ago" msgstr "seconden geleden" @@ -141,16 +243,16 @@ msgstr "vorig jaar" msgid "years ago" msgstr "jaar geleden" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s is beschikbaar. Verkrijg meer informatie" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "bijgewerkt" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "Meest recente versie controle is uitgeschakeld" diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po index 86d93f44aa15b28108d58920a058cc0603bb0d67..075d5a41e10851ff7866f0ee4bbb2a15c5a10b22 100644 --- a/l10n/nl/settings.po +++ b/l10n/nl/settings.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -32,14 +32,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Kan de lijst niet van de App store laden" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Authenticatie fout" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Kon de weergavenaam niet wijzigen" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -81,17 +81,17 @@ msgstr "Ongeldig verzoek" msgid "Admins can't remove themself from the admin group" msgstr "Admins kunnen zichzelf niet uit de admin groep verwijderen" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Niet in staat om gebruiker toe te voegen aan groep %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Niet in staat om gebruiker te verwijderen uit groep %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Kon de app niet bijwerken." @@ -113,7 +113,7 @@ msgstr "Even geduld aub...." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Bijwerken...." #: js/apps.js:87 msgid "Error while updating app" @@ -127,59 +127,265 @@ msgstr "Fout" msgid "Updated" msgstr "Bijgewerkt" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Aan het bewaren....." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "verwijderd" + +#: js/users.js:30 +msgid "undo" +msgstr "ongedaan maken" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Kon gebruiker niet verwijderen" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Groepen" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Groep beheerder" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "verwijderen" + +#: js/users.js:191 +msgid "add group" +msgstr "toevoegen groep" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Er moet een geldige gebruikersnaam worden opgegeven" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Fout bij aanmaken gebruiker" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Er moet een geldig wachtwoord worden opgegeven" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Nederlands" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Beveiligingswaarschuwing" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Uw data is waarschijnlijk toegankelijk vanaf net internet. Het .htaccess bestand dat ownCloud levert werkt niet goed. U wordt aangeraden om de configuratie van uw webserver zodanig aan te passen dat de data folders niet meer publiekelijk toegankelijk zijn. U kunt ook de data folder verplaatsen naar een folder buiten de webserver document folder." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Instellingswaarschuwing" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Uw webserver is nog niet goed ingesteld voor bestandssynchronisatie omdat de WebDAV interface verbroken lijkt." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Conntroleer de installatie handleiding goed." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Module 'fileinfo' ontbreekt" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "De PHP module 'fileinfo' ontbreekt. We adviseren met klem om deze module te activeren om de beste resultaten te bereiken voor mime-type detectie." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Taalbestand werkt niet" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Internet verbinding werkt niet" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Deze ownCloud server heeft geen actieve internet verbinding. dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internet verbinding voor deze server in te schakelen als u alle functies van ownCloud wilt gebruiken." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Bij laden van elke pagina één taak uitvoeren" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php is geregistreerd bij een webcron service. Roep eens per minuut de cron.php pagina aan over http in de ownCloud root." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Gebruik de systems cron service. Roep eens per minuut de cron.php file in de ownCloud map via een systeem cronjob." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Delen" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Activeren Share API" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Apps toestaan de Share API te gebruiken" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Toestaan links" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Toestaan dat gebruikers objecten met links delen met anderen" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Toestaan opnieuw delen" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Toestaan dat gebruikers objecten die anderen met hun gedeeld hebben zelf ook weer delen met anderen" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Toestaan dat gebruikers met iedereen delen" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Instellen dat gebruikers alleen met leden binnen hun groepen delen" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Beveiliging" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Afdwingen HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Afdwingen dat de clients alleen via versleutelde verbinding contact maken met ownCloud." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Maak via HTTPS verbinding met deze ownCloud inrichting om het afdwingen van gebruik van SSL te activeren of deactiveren." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Log" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Log niveau" + +#: templates/admin.php:223 +msgid "More" +msgstr "Meer" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versie" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Ontwikkeld door de ownCloud gemeenschap, de bron code is gelicenseerd onder de AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "App toevoegen" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Meer apps" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selecteer een app" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Zie de applicatiepagina op apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-Gelicenseerd door " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Bijwerken" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Gebruikersdocumentatie" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Beheerdersdocumentatie" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online documentatie" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Commerciële ondersteuning" @@ -188,116 +394,86 @@ msgstr "Commerciële ondersteuning" msgid "You have used %s of the available %s" msgstr "U heeft %s van de %s beschikbaren gebruikt" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klanten" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Download Desktop Clients" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Download Android Client" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Download iOS Client" +msgid "Get the apps to sync your files" +msgstr "Download de apps om bestanden te synchen" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Toon de Eerste start Wizard opnieuw" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Wachtwoord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Je wachtwoord is veranderd" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Niet in staat om uw wachtwoord te wijzigen" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Huidig wachtwoord" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nieuw wachtwoord" -#: templates/personal.php:28 -msgid "show" -msgstr "weergeven" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Wijzig wachtwoord" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Weergavenaam" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Uw weergavenaam is gewijzigd" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Kon de weergavenaam niet wijzigen" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Wijzig weergavenaam" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mailadres" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Uw e-mailadres" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Vul een e-mailadres in om wachtwoord reset uit te kunnen voeren" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Taal" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Help met vertalen" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Gebruik dit adres om te verbinden met uw ownCloud in uw bestandsbeheer" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versie" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Ontwikkeld door de ownCloud gemeenschap, de bron code is gelicenseerd onder de AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Inlognaam" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Groepen" - #: templates/users.php:32 msgid "Create" msgstr "Creëer" @@ -306,34 +482,26 @@ msgstr "Creëer" msgid "Default Storage" msgstr "Default opslag" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ongelimiteerd" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Andere" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Groep beheerder" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Opslag" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "wijzig weergavenaam" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "Instellen nieuw wachtwoord" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Default" - -#: templates/users.php:165 -msgid "Delete" -msgstr "verwijderen" diff --git a/l10n/nl/user_ldap.po b/l10n/nl/user_ldap.po index 16374f657075e76b01835997a0e1e8e9cd108515..2640a49d7ebeb5a92fea2be55f9df6f6f6d1445e 100644 --- a/l10n/nl/user_ldap.po +++ b/l10n/nl/user_ldap.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +32,7 @@ msgstr "De configuratie is geldig en de verbinding is geslaagd!" msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens." #: ajax/testConfiguration.php:40 msgid "" @@ -175,7 +175,7 @@ msgstr "zonder een placeholder, bijv. \"objectClass=posixGroup\"" #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Verbindingsinstellingen" #: templates/settings.php:33 msgid "Configuration Active" @@ -183,7 +183,7 @@ msgstr "Configuratie actief" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Als dit niet is ingeschakeld wordt deze configuratie overgeslagen." #: templates/settings.php:34 msgid "Port" @@ -197,7 +197,7 @@ msgstr "Backup (Replica) Host" msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Opgeven optionele backup host. Het moet een replica van de hoofd LDAP/AD server." #: templates/settings.php:36 msgid "Backup (Replica) Port" @@ -216,8 +216,8 @@ msgid "Use TLS" msgstr "Gebruik TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Gebruik niet voor SSL connecties, deze mislukken." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Gebruik het niet voor LDAPS verbindingen, dat gaat niet lukken." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -243,7 +243,7 @@ msgstr "in seconden. Een verandering maakt de cache leeg." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Mapinstellingen" #: templates/settings.php:45 msgid "User Display Name Field" @@ -263,7 +263,7 @@ msgstr "Een User Base DN per regel" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "Attributen voor gebruikerszoekopdrachten" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" @@ -287,7 +287,7 @@ msgstr "Een Group Base DN per regel" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "Attributen voor groepszoekopdrachten" #: templates/settings.php:51 msgid "Group-Member association" @@ -295,7 +295,7 @@ msgstr "Groepslid associatie" #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Speciale attributen" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index f9d7583a1a6bae8831d9c6616881c3773eef64cb..9146472fcc906eade2b326cf7279dd058b95cd8e 100644 --- a/l10n/nn_NO/core.po +++ b/l10n/nn_NO/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -52,7 +52,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -157,59 +158,59 @@ msgstr "November" msgid "December" msgstr "Desember" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "Innstillingar" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -468,7 +469,7 @@ msgstr "" msgid "Add" msgstr "Legg til" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Lag ein admin-konto" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avansert" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datamappe" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurer databasen" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vil bli nytta" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Databasebrukar" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Databasepassord" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Databasenamn" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Databasetenar" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Fullfør oppsettet" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Vev tjenester under din kontroll" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Logg ut" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index 555ee143593f9a053d88247fa5b3871ec33e2e46..335991cd164dc45446c60f3c7a629f9fdbbf2058 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -55,7 +69,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -66,51 +80,52 @@ msgstr "" msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Slett" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -136,78 +151,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Lukk" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Namn" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Storleik" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Endra" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -264,7 +275,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -279,6 +290,10 @@ msgstr "Ingenting her. Last noko opp!" msgid "Download" msgstr "Last ned" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "For stor opplasting" diff --git a/l10n/nn_NO/files_encryption.po b/l10n/nn_NO/files_encryption.po index 4db0ffa21b923e2295195154dfc34f9a836b82b7..5b5ba56793880ef8d642b10754c107ab8356bd54 100644 --- a/l10n/nn_NO/files_encryption.po +++ b/l10n/nn_NO/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/nn_NO/files_external.po b/l10n/nn_NO/files_external.po index eb83e9d2a129c2c9f460fef97c7c999cd0c64ea3..7926cc6c4780fafa052eeb93bad1390eb612f047 100644 --- a/l10n/nn_NO/files_external.po +++ b/l10n/nn_NO/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Brukarar" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Slett" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/nn_NO/files_trashbin.po b/l10n/nn_NO/files_trashbin.po index 9047a8f1cef1e8c537f7c059105e3ccb257b292b..222802a4c90b32967003b28fe4361e075eedce39 100644 --- a/l10n/nn_NO/files_trashbin.po +++ b/l10n/nn_NO/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Namn" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Slett" diff --git a/l10n/nn_NO/files_versions.po b/l10n/nn_NO/files_versions.po index 3d20ded946a69df6026534e9d5c2aa9a1d458051..3ed063fcb555de323582f0b356ab4249dfc1c062 100644 --- a/l10n/nn_NO/files_versions.po +++ b/l10n/nn_NO/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/nn_NO/lib.po b/l10n/nn_NO/lib.po index 5d33fc1e808ab605434a43ee61fac7b370699980..043fe1fd0a7aa00747b4f39b05b433fe8836e7cb 100644 --- a/l10n/nn_NO/lib.po +++ b/l10n/nn_NO/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hjelp" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personleg" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Innstillingar" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Brukarar" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "Tekst" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po index 0d0f12e96e567c78db418795c920d83610ef3390..a4361ebb42e3942b6cf5c66ef5841edccdcea600 100644 --- a/l10n/nn_NO/settings.po +++ b/l10n/nn_NO/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Klarer ikkje å laste inn liste fra App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Feil i autentisering" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "Ugyldig førespurnad" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "Feil" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupper" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Slett" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Nynorsk" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Vel ein applikasjon" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Oppdater" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -179,116 +385,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klientar" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Passord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Klarte ikkje å endra passordet" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Passord" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nytt passord" -#: templates/personal.php:28 -msgid "show" -msgstr "vis" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Endra passord" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Epost" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Din epost addresse" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Fyll inn din e-post addresse for og kunne motta passord tilbakestilling" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Språk" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hjelp oss å oversett" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupper" - #: templates/users.php:32 msgid "Create" msgstr "Lag" @@ -297,34 +473,26 @@ msgstr "Lag" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Anna" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Slett" diff --git a/l10n/nn_NO/user_ldap.po b/l10n/nn_NO/user_ldap.po index a4e1c38181a227c4c1e1f24b63d2334f730b658d..d2cf7889567f56628e5422e14f30e2b873777dfe 100644 --- a/l10n/nn_NO/user_ldap.po +++ b/l10n/nn_NO/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/oc/core.po b/l10n/oc/core.po index a239c325316e832c5a26d2bb0298f3c2dd2c3905..a2b487f6866d69ee9f412cf31f98de1d13bb78b6 100644 --- a/l10n/oc/core.po +++ b/l10n/oc/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -51,8 +51,9 @@ msgid "No category to add?" msgstr "Pas de categoria d'ajustar ?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "La categoria exista ja :" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -156,59 +157,59 @@ msgstr "Novembre" msgid "December" msgstr "Decembre" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Configuracion" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "segonda a" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minuta a" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "uèi" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ièr" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "mes passat" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "meses a" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "an passat" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "ans a" @@ -238,8 +239,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Error" @@ -251,15 +252,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Parteja" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Parteja" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Error al partejar" @@ -355,23 +356,23 @@ msgstr "escafa" msgid "share" msgstr "parteja" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Parat per senhal" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Error al metre de la data d'expiracion" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Error setting expiration date" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -386,7 +387,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "senhal d'ownCloud tornat botar" @@ -467,7 +468,7 @@ msgstr "Edita categorias" msgid "Add" msgstr "Ajusta" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Avertiment de securitat" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crea un compte admin" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avançat" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Dorsièr de donadas" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configura la basa de donadas" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "serà utilizat" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Usancièr de la basa de donadas" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Senhal de la basa de donadas" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nom de la basa de donadas" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Espandi de taula de basa de donadas" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Òste de basa de donadas" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Configuracion acabada" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Services web jos ton contraròtle" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Sortida" diff --git a/l10n/oc/files.po b/l10n/oc/files.po index 16d511d2e4622aedc791e45d72392d661edca459..cac46c4b49523262660d48383e71bcd2441b79c0 100644 --- a/l10n/oc/files.po +++ b/l10n/oc/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "L'escriptura sul disc a fracassat" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "Fichièrs" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Non parteja" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Escafa" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Torna nomenar" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Al esperar" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "remplaça" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "nom prepausat" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "anulla" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "defar" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossible d'amontcargar lo teu fichièr qu'es un repertòri o que ten pas que 0 octet." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Error d'amontcargar" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Al esperar" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 fichièr al amontcargar" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Amontcargar anullat." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. " -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nom" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Talha" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -263,7 +274,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "Pas res dedins. Amontcarga qualquaren" msgid "Download" msgstr "Avalcarga" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Non parteja" + #: templates/index.php:105 msgid "Upload too large" msgstr "Amontcargament tròp gròs" diff --git a/l10n/oc/files_encryption.po b/l10n/oc/files_encryption.po index a912cb58e7142afa1f9d616fd8fb9acbd450129f..4db4079a8e0dcd4d6cc5bcfc7db55fd1c29bcf67 100644 --- a/l10n/oc/files_encryption.po +++ b/l10n/oc/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/oc/files_external.po b/l10n/oc/files_external.po index fcf2b75be30efd9ae03b6af1822e0c3d81b5aa23..576e527deb9bf28d8e560deff7bc57197f0bdb18 100644 --- a/l10n/oc/files_external.po +++ b/l10n/oc/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Usancièrs" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Escafa" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/oc/files_trashbin.po b/l10n/oc/files_trashbin.po index 7ddc063e1b04b4910ea4b876f69e6d2eb8baf2f1..f3b37f49d9ddb126f3956e6da02a1fd829eca05b 100644 --- a/l10n/oc/files_trashbin.po +++ b/l10n/oc/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nom" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Escafa" diff --git a/l10n/oc/files_versions.po b/l10n/oc/files_versions.po index e8848887184a9f8bd37eab27ccbe67538ab2d3db..ed722b6022254dfe08b89cde46724a0a4a28fa59 100644 --- a/l10n/oc/files_versions.po +++ b/l10n/oc/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/oc/lib.po b/l10n/oc/lib.po index 7a056315f6d6c9a494d9f9b2ecfe17a3f46d2e2f..005e945b230b8d92a32ccc2cbe0028869b62cbfd 100644 --- a/l10n/oc/lib.po +++ b/l10n/oc/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ajuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Configuracion" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usancièrs" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Apps" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Avalcargar los ZIP es inactiu." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Los fichièrs devan èsser avalcargats un per un." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Torna cap als fichièrs" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -86,6 +86,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "segonda a" @@ -138,16 +240,16 @@ msgstr "an passat" msgid "years ago" msgstr "ans a" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "a jorn" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "la verificacion de mesa a jorn es inactiva" diff --git a/l10n/oc/settings.po b/l10n/oc/settings.po index 2c3d180e39322e381dbd389f9da434561049ef0b..3dd4a1a3fd4c7fbbfb0279705fab75a104e398f6 100644 --- a/l10n/oc/settings.po +++ b/l10n/oc/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Pas possible de cargar la tièra dempuèi App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Error d'autentificacion" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "Demanda invalida" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Pas capable d'apondre un usancièr al grop %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Pas capable de tira un usancièr del grop %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "Error" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Enregistra..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "escafat" + +#: js/users.js:30 +msgid "undo" +msgstr "defar" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grops" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grop Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Escafa" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Avertiment de securitat" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 msgid "Add your App" msgstr "Ajusta ton App" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selecciona una applicacion" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Agacha la pagina d'applications en cò de apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licençiat per " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,116 +384,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Practica" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Senhal" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ton senhal a cambiat" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Pas possible de cambiar ton senhal" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Senhal en cors" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Senhal novèl" -#: templates/personal.php:28 -msgid "show" -msgstr "mòstra" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Cambia lo senhal" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Corrièl" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Ton adreiça de corrièl" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Emplena una adreiça de corrièl per permetre lo mandadís del senhal perdut" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Lenga" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ajuda a la revirada" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grops" - #: templates/users.php:32 msgid "Create" msgstr "Crea" @@ -296,34 +472,26 @@ msgstr "Crea" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Autres" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grop Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Escafa" diff --git a/l10n/oc/user_ldap.po b/l10n/oc/user_ldap.po index db410b6652db9d25df56b1e0243b65a246777163..56fd18cfc3318180ed75a34efdca78f1cd4175ec 100644 --- a/l10n/oc/user_ldap.po +++ b/l10n/oc/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/pl/core.po b/l10n/pl/core.po index be55347d047f5143b0d742e04f98c2033d97b473..4bd37a75f22794380b0cdb0199126ceea97e5cc5 100644 --- a/l10n/pl/core.po +++ b/l10n/pl/core.po @@ -9,6 +9,7 @@ # , 2012. # Marcin Małecki , 2011, 2012. # Marcin Małecki , 2011. +# Marco Oliver Grunwald , 2013. # , 2011. # , 2012. # Piotr Sokół , 2012. @@ -17,9 +18,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: mgrvnwald \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -60,8 +61,9 @@ msgid "No category to add?" msgstr "Brak kategorii" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ta kategoria już istnieje" +#, php-format +msgid "This category already exists: %s" +msgstr "Ta kategoria już istnieje: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -165,59 +167,59 @@ msgstr "Listopad" msgid "December" msgstr "Grudzień" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ustawienia" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekund temu" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minute temu" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minut temu" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 godzine temu" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} godzin temu" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "dziś" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "wczoraj" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dni temu" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "ostani miesiąc" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} miesięcy temu" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "miesięcy temu" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "ostatni rok" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "lat temu" @@ -247,8 +249,8 @@ msgid "The object type is not specified." msgstr "Typ obiektu nie jest określony." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Błąd" @@ -260,15 +262,15 @@ msgstr "Nazwa aplikacji nie jest określona." msgid "The required file {file} is not installed!" msgstr "Żądany plik {file} nie jest zainstalowany!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Udostępnij" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Udostępniono" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Udostępnij" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Błąd podczas współdzielenia" @@ -364,23 +366,23 @@ msgstr "usuń" msgid "share" msgstr "współdziel" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Zabezpieczone hasłem" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Błąd niszczenie daty wygaśnięcia" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Błąd podczas ustawiania daty wygaśnięcia" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Wysyłanie..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Wyślij Email" @@ -389,13 +391,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Aktualizacja zakończyła się niepowodzeniem. Proszę zgłosić ten problem spoleczności ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "restart hasła" @@ -476,7 +478,7 @@ msgstr "Edytuj kategorię" msgid "Add" msgstr "Dodaj" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Ostrzeżenie o zabezpieczeniach" @@ -486,71 +488,75 @@ msgid "" "OpenSSL extension." msgstr "Niedostępny bezpieczny generator liczb losowych, należy włączyć rozszerzenie OpenSSL w PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Bez bezpiecznego generatora liczb losowych, osoba atakująca może być w stanie przewidzieć resetujące hasło tokena i przejąć kontrolę nad swoim kontem." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Twój katalog danych i pliki są prawdopodobnie dostępne z poziomu internetu, ponieważ plik .htaccess nie działa." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Katalog danych (data) i pliki są prawdopodobnie dostępnego z Internetu. Sprawdź plik .htaccess oraz konfigurację serwera (hosta). Sugerujemy, skonfiguruj swój serwer w taki sposób, żeby dane katalogu nie były dostępne lub przenieść katalog danych spoza głównego dokumentu webserwera." +"For information how to properly configure your server, please see the documentation." +msgstr "W celu uzyskania informacji dotyczących prawidłowego skonfigurowania serwera sięgnij do dokumentacji." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Tworzenie konta administratora" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Zaawansowane" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Katalog danych" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfiguracja bazy danych" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "zostanie użyte" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Użytkownik bazy danych" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Hasło do bazy danych" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nazwa bazy danych" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Obszar tabel bazy danych" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Komputer bazy danych" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Zakończ konfigurowanie" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "usługi internetowe pod kontrolą" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Wylogowuje użytkownika" @@ -582,7 +588,7 @@ msgstr "Zaloguj" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternatywne loginy" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index 86f9c33c283c0faeb4141371abbb986779147f96..8026bf04e6d0591e70cb0a8cd3fdbfad42b5691d 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -7,6 +7,7 @@ # Cyryl Sochacki <>, 2012. # Cyryl Sochacki , 2012-2013. # Marcin Małecki , 2011-2012. +# Mariusz , 2013. # , 2011. # , 2012. # Piotr Sokół , 2012. @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2013-02-25 12:42+0000\n" +"Last-Translator: Cyryl Sochacki \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,6 +26,20 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Nie można było przenieść %s - Plik o takiej nazwie już istnieje" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nie można było przenieść %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nie można zmienić nazwy pliku" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Plik nie został załadowany. Nieznany błąd" @@ -44,27 +59,27 @@ msgid "" "the HTML form" msgstr "Rozmiar przesłanego pliku przekracza maksymalną wartość dyrektywy upload_max_filesize, zawartą formularzu HTML" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Plik przesłano tylko częściowo" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Nie przesłano żadnego pliku" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Brak katalogu tymczasowego" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Błąd zapisu na dysk" -#: ajax/upload.php:52 -msgid "Not enough space available" +#: ajax/upload.php:51 +msgid "Not enough storage available" msgstr "Za mało miejsca" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Zła ścieżka." @@ -72,53 +87,54 @@ msgstr "Zła ścieżka." msgid "Files" msgstr "Pliki" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Nie udostępniaj" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Trwale usuń" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Usuwa element" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Zmień nazwę" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Oczekujące" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} już istnieje" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "zastap" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "zasugeruj nazwę" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "anuluj" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "zastąpiony {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "wróć" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "zastąpiony {new_name} z {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "wykonywanie operacji usuwania" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -136,56 +152,52 @@ msgstr "Niepoprawna nazwa, Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz ' #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Dysk jest pełny, pliki nie mogą być aktualizowane lub zsynchronizowane!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Twój dysk jest prawie pełny ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Pobieranie jest przygotowywane. Może to zająć trochę czasu, jeśli pliki są duże." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nie można wczytać pliku jeśli jest katalogiem lub ma 0 bajtów" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Błąd wczytywania" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zamknij" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Oczekujące" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 plik wczytany" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} przesyłanie plików" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Wczytywanie anulowane." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Wysyłanie pliku jest w toku. Teraz opuszczając stronę wysyłanie zostanie anulowane." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL nie może być pusty." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nazwa folderu nieprawidłowa. Wykorzystanie \"Shared\" jest zarezerwowane przez Owncloud" @@ -270,8 +282,8 @@ msgid "From link" msgstr "Z linku" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Pliki usnięte" #: templates/index.php:46 msgid "Cancel upload" @@ -285,6 +297,10 @@ msgstr "Brak zawartości. Proszę wysłać pliki!" msgid "Download" msgstr "Pobiera element" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Nie udostępniaj" + #: templates/index.php:105 msgid "Upload too large" msgstr "Wysyłany plik ma za duży rozmiar" @@ -305,4 +321,4 @@ msgstr "Aktualnie skanowane" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Uaktualnianie plików pamięci podręcznej..." diff --git a/l10n/pl/files_encryption.po b/l10n/pl/files_encryption.po index acf7f3f06eba0c08339d13a921763628c3cf67b5..ee5832f42daeb8eae9b872b8ce2c8df8eaea2416 100644 --- a/l10n/pl/files_encryption.po +++ b/l10n/pl/files_encryption.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Bartek Krawczyk , 2013. # Cyryl Sochacki <>, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: bbartlomiej \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +19,21 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Szyfrowanie" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Szyfrowanie plików jest włączone" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Poniższe typy plików nie będą szyfrowane:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Wyłącz poniższe typy plików z szyfrowania:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/pl/files_external.po b/l10n/pl/files_external.po index a6a1c7b5483615224ca20696b69611aea0cb9842..1793a6d1e181be1ff77428ee1da07d61fadaa14e 100644 --- a/l10n/pl/files_external.po +++ b/l10n/pl/files_external.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-12 11:26+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Marcin Małecki \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -44,13 +44,13 @@ msgstr "Proszę podać prawidłowy klucz aplikacji Dropbox i klucz sekretny." msgid "Error configuring Google Drive storage" msgstr "Wystąpił błąd podczas konfigurowania zasobu Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Ostrzeżenie: \"smbclient\" nie jest zainstalowany. Zamontowanie katalogów CIFS/SMB nie jest możliwe. Skontaktuj sie z administratorem w celu zainstalowania." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -102,7 +102,7 @@ msgid "Users" msgstr "Użytkownicy" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Usuń" @@ -114,10 +114,10 @@ msgstr "Włącz zewnętrzne zasoby dyskowe użytkownika" msgid "Allow users to mount their own external storage" msgstr "Zezwalaj użytkownikom na montowanie ich własnych zewnętrznych zasobów dyskowych" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Główny certyfikat SSL" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importuj główny certyfikat" diff --git a/l10n/pl/files_trashbin.po b/l10n/pl/files_trashbin.po index 3f8e7a95647ae176f691d7a6971e716a36ca05d8..6efc5cc75dde7b3c8f3655fd08380e534a7ebb02 100644 --- a/l10n/pl/files_trashbin.po +++ b/l10n/pl/files_trashbin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Cyryl Sochacki , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2013-02-25 12:13+0000\n" +"Last-Translator: Cyryl Sochacki \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,42 +18,60 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Nie można trwale usunąć %s" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Nie można przywrócić %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "wykonywanie operacji przywracania" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "trwale usuń plik" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Trwale usuń" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nazwa" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Usunięte" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 folder" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} foldery" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 plik" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} pliki" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Nic tu nie ma. Twój kosz jest pusty!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Przywróć" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Usuń" diff --git a/l10n/pl/files_versions.po b/l10n/pl/files_versions.po index a2020d78f2dbc930d608f0d6987acddbb87a5ead..70b17a7c959183f291b9bafcaed997f89fb640db 100644 --- a/l10n/pl/files_versions.po +++ b/l10n/pl/files_versions.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Bartek Krawczyk , 2013. # Cyryl Sochacki <>, 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 09:46+0000\n" +"Last-Translator: bbartlomiej \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Nie można było przywrócić: %s" + +#: history.php:40 +msgid "success" +msgstr "sukces" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Plik %s został przywrócony do wersji %s" + +#: history.php:49 +msgid "failure" +msgstr "porażka" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Plik %s nie mógł być przywrócony do wersji %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nie są dostępne żadne starsze wersje" + +#: history.php:73 +msgid "No path specified" +msgstr "Nie podano ścieżki" + #: js/versions.js:16 msgid "History" msgstr "Historia" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Przywróć plik do poprzedniej wersji klikając w jego przycisk przywrócenia" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Wersjonowanie plików" diff --git a/l10n/pl/lib.po b/l10n/pl/lib.po index 917ce3b654bdfdac25939cf9ba2aa379ff891768..968eb2826f2e3f8fe05540e97e0b5b4f6760d7f9 100644 --- a/l10n/pl/lib.po +++ b/l10n/pl/lib.po @@ -4,15 +4,15 @@ # # Translators: # Cyryl Sochacki <>, 2012. -# Cyryl Sochacki , 2012. +# Cyryl Sochacki , 2012-2013. # Marcin Małecki , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-29 00:05+0100\n" -"PO-Revision-Date: 2013-01-28 19:59+0000\n" -"Last-Translator: Marcin Małecki \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,47 +20,47 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pomoc" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Osobiste" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ustawienia" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Użytkownicy" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplikacje" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Administrator" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Pobieranie ZIP jest wyłączone." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Pliki muszą zostać pobrane pojedynczo." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Wróć do plików" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Wybrane pliki są zbyt duże, aby wygenerować plik zip." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "nie może zostać znaleziony" @@ -88,6 +88,108 @@ msgstr "Połączenie tekstowe" msgid "Images" msgstr "Obrazy" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Ustaw nazwę administratora." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Ustaw hasło administratora." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Określ folder danych." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s wpisz nazwę użytkownika do bazy" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s wpisz nazwę bazy." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s nie można używać kropki w nazwie bazy danych" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s ustaw hosta bazy danych." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL: Nazwa użytkownika i/lub hasło jest niepoprawne" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Należy wprowadzić istniejące konto użytkownika lub administratora." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle: Nazwa użytkownika i/lub hasło jest niepoprawne" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL: Nazwa użytkownika i/lub hasło jest niepoprawne" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Błąd DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Niepoprawna komenda: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Użytkownik MySQL '%s'@'localhost' już istnieje" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Usuń tego użytkownika z MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Użytkownik MySQL '%s'@'%%t' już istnieje" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Usuń tego użytkownika z MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Serwer www nie jest jeszcze poprawnie ustawiony, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony. Sprawdź ustawienia serwera." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Proszę sprawdź ponownie przewodnik instalacji." + #: template.php:113 msgid "seconds ago" msgstr "sekund temu" @@ -140,16 +242,16 @@ msgstr "ostatni rok" msgid "years ago" msgstr "lat temu" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s jest dostępna. Uzyskaj więcej informacji" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "Aktualne" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "wybór aktualizacji jest wyłączony" diff --git a/l10n/pl/settings.po b/l10n/pl/settings.po index 7849faf3679ca3b8a8a66e2449cd9b718530de2f..b5b39fc576978006f3d53cd0e4ecc24dfc2e4c51 100644 --- a/l10n/pl/settings.po +++ b/l10n/pl/settings.po @@ -4,12 +4,14 @@ # # Translators: # , 2013. +# Bartek Krawczyk , 2013. # Cyryl Sochacki <>, 2012. # Cyryl Sochacki , 2012-2013. # , 2012. # Kamil Domański , 2011. # Marcin Małecki , 2011, 2012. # Marcin Małecki , 2011. +# Michał Plichta , 2013. # , 2011. # , 2012. # Piotr Sokół , 2012. @@ -18,8 +20,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -32,14 +34,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nie mogę załadować listy aplikacji" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Błąd uwierzytelniania" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Nie można zmienić nazwy wyświetlanej" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -81,23 +83,23 @@ msgstr "Nieprawidłowe żądanie" msgid "Admins can't remove themself from the admin group" msgstr "Administratorzy nie mogą usunąć się sami z grupy administratorów." -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Nie można dodać użytkownika do grupy %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Nie można usunąć użytkownika z grupy %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Nie można uaktualnić aplikacji" #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Aktualizacja do {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -109,15 +111,15 @@ msgstr "Włącz" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Prosze czekać..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Aktualizacja w toku..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Błąd podczas aktualizacji aplikacji" #: js/apps.js:87 msgid "Error" @@ -125,61 +127,267 @@ msgstr "Błąd" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Zaktualizowano" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Zapisywanie..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "skasuj" + +#: js/users.js:30 +msgid "undo" +msgstr "wróć" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Nie można usunąć użytkownika" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupy" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupa Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Usuń" + +#: js/users.js:191 +msgid "add group" +msgstr "Dodaj drupę" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Należy podać nazwę uzytkownika" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Błąd przy tworzeniu użytkownika" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Należy podać hasło" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Polski" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Ostrzeżenie o zabezpieczeniach" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Katalog danych (data) i pliki są prawdopodobnie dostępnego z Internetu. Sprawdź plik .htaccess oraz konfigurację serwera (hosta). Sugerujemy, skonfiguruj swój serwer w taki sposób, żeby dane katalogu nie były dostępne lub przenieść katalog danych spoza głównego dokumentu webserwera." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Otrzeżenia konfiguracji" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Serwer www nie jest jeszcze poprawnie ustawiony, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony. Sprawdź ustawienia serwera." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Proszę sprawdź ponownie przewodnik instalacji." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Brak modułu \"fileinfo\"" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Brakuje modułu PHP \"fileinfo\". Zalecamy włączyć ten moduł, aby uzyskać najlepsze wyniki z wykrywania typu mime." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Lokalnie nie działa" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Połączenie internetowe nie działa" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Ten serwer OwnCloud nie ma połączenia z Internetem. Oznacza to, że niektóre z funkcji, takich jak montowanie zewnętrznych zasobów, powiadomienia o aktualizacji lub trzecie aplikacje mogą nie działać. Dostęp do plików z zewnątrz i wysyłanie powiadomienia e-mail nie może również działać. Sugerujemy, aby włączyć połączenia internetowego dla tego serwera, jeśli chcesz mieć wszystkie cechy ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Wykonanie jednego zadania z każdej strony wczytywania" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php jest zarejestrowany w usłudze webcron. Przywołaj stronę cron.php w katalogu głównym owncloud raz na minute przez http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Użyj usługi systemowej cron. Przywołaj plik cron.php z katalogu owncloud przez systemowe cronjob raz na minute." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Udostępnianij" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Włącz udostępniane API" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Zezwalaj aplikacjom na używanie API" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Zezwalaj na łącza" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Zezwalaj użytkownikom na puliczne współdzielenie elementów za pomocą linków" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Zezwól na ponowne udostępnianie" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Zezwalaj użytkownikom na ponowne współdzielenie elementów już z nimi współdzilonych" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Zezwalaj użytkownikom na współdzielenie z kimkolwiek" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Zezwalaj użytkownikom współdzielić z użytkownikami ze swoich grup" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Bezpieczeństwo" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Wymuś HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Wymusza na klientach na łączenie się ownCloud za pośrednictwem połączenia szyfrowanego." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Proszę połącz się do tej instancji ownCloud za pośrednictwem protokołu HTTPS, aby włączyć lub wyłączyć stosowanie protokołu SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Logi" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Poziom logów" + +#: templates/admin.php:223 +msgid "More" +msgstr "Więcej" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Wersja" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Stworzone przez społeczność ownCloud, the kod źródłowy na licencji AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Dodaj aplikacje" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Więcej aplikacji" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Zaznacz aplikacje" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Zobacz stronę aplikacji na apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licencjonowane przez " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Zaktualizuj" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Dokumentacja użytkownika" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Dokumentacja Administratora" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Dokumentacja Online" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Zgłaszanie błędów" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Wsparcie komercyjne" @@ -188,115 +396,85 @@ msgstr "Wsparcie komercyjne" msgid "You have used %s of the available %s" msgstr "Korzystasz z %s z dostępnych %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienci" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Pobierz klienta dla Komputera" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Pobierz klienta dla Androida" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Pobierz klienta dla iOS" +msgid "Get the apps to sync your files" +msgstr "Pobierz aplikacje żeby synchronizować swoje pliki" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Uruchom ponownie kreatora pierwszego uruchomienia" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Hasło" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Twoje hasło zostało zmienione" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Nie można zmienić hasła" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Bieżące hasło" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nowe hasło" -#: templates/personal.php:28 -msgid "show" -msgstr "Wyświetlanie" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Zmień hasło" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Wyświetlana nazwa" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Twoja nazwa wyświetlana została zmieniona" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Nie można zmianić wyświetlanej nazwy" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Zmiana wyświetlanej nazwy" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Adres e-mail użytkownika" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Proszę wprowadzić adres e-mail, aby uzyskać możliwość odzyskania hasła" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Język" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Pomóż w tłumaczeniu" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Użyj tego adresu aby podłączyć zasób ownCloud w menedżerze plików" -#: templates/personal.php:85 -msgid "Version" -msgstr "Wersja" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Stworzone przez społeczność ownCloud, the kod źródłowy na licencji AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupy" +msgstr "Login" #: templates/users.php:32 msgid "Create" @@ -306,34 +484,26 @@ msgstr "Utwórz" msgid "Default Storage" msgstr "Domyślny magazyn" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Bez limitu" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Inne" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupa Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Magazyn" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "zmień nazwę wyświetlaną" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "zmień hasło" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Domyślny" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Usuń" diff --git a/l10n/pl/user_ldap.po b/l10n/pl/user_ldap.po index 1e8b58da0e5164d07e041b230340d18c190dabd0..057b35c85ef47d4d4007c85181a58f178a766f4b 100644 --- a/l10n/pl/user_ldap.po +++ b/l10n/pl/user_ldap.po @@ -4,15 +4,16 @@ # # Translators: # Cyryl Sochacki <>, 2012. +# Cyryl Sochacki , 2013. # Marcin Małecki , 2012. # Paweł Ciecierski , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 10:10+0000\n" +"Last-Translator: Cyryl Sochacki \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,23 +23,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Nie można usunąć konfiguracji serwera" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Konfiguracja jest prawidłowa i można ustanowić połączenie!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Konfiguracja jest prawidłowa, ale Bind nie. Sprawdź ustawienia serwera i poświadczenia." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Konfiguracja jest nieprawidłowa. Proszę przejrzeć logi dziennika ownCloud " #: js/settings.js:66 msgid "Deletion failed" @@ -46,31 +47,31 @@ msgstr "Skasowanie nie powiodło się" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Przejmij ustawienia z ostatnich konfiguracji serwera?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Zachować ustawienia?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Nie można dodać konfiguracji serwera" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Test połączenia udany" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Test połączenia nie udany" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Czy chcesz usunąć bieżącą konfigurację serwera?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Potwierdź usunięcie" #: templates/settings.php:8 msgid "" @@ -83,230 +84,230 @@ msgstr "Ostrzeżenie: Aplikacje user_ldap i user_webdavauth nie są komp msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Ostrzeżenie: Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Konfiguracja servera" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Dodaj konfigurację servera" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Host" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Baza DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" -msgstr "" +msgstr "Jedna baza DN na linię" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "Użytkownik DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN użytkownika klienta, z którym powiązanie wykonuje się, np. uid=agent,dc=example,dc=com. Dla dostępu anonimowego pozostawić DN i hasło puste" -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Hasło" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Dla dostępu anonimowego pozostawić DN i hasło puste." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Filtr logowania użytkownika" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definiuje filtr do zastosowania, gdy podejmowana jest próba logowania. %%uid zastępuje nazwę użytkownika w działaniu logowania." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Użyj %%uid zastępczy, np. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Lista filtrów użytkownika" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiuje filtry do zastosowania, podczas pobierania użytkowników." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=person\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Grupa filtrów" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiuje filtry do zastosowania, podczas pobierania grup." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\"." -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Konfiguracja połączeń" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Konfiguracja archiwum" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Gdy niezaznaczone, ta konfiguracja zostanie pominięta." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Port" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Kopia zapasowa (repliki) host" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Dać opcjonalnie hosta kopii zapasowej . To musi być repliką głównego serwera LDAP/AD." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Kopia zapasowa (repliki) Port" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Wyłącz serwer główny" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Po włączeniu, ownCloud tylko połączy się z serwerem repliki." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Użyj TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Nie używaj SSL dla połączeń, jeśli się nie powiedzie." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Nie używaj go dodatkowo dla połączeń protokołu LDAPS, zakończy się niepowodzeniem." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "Wielkość liter serwera LDAP (Windows)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Wyłączyć sprawdzanie poprawności certyfikatu SSL." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Niezalecane, użyj tylko testowo." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "w sekundach. Zmiana opróżnia pamięć podręczną." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Ustawienia katalogów" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Pole wyświetlanej nazwy użytkownika" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud." -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Drzewo bazy użytkowników" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" -msgstr "" +msgstr "Jeden użytkownik Bazy DN na linię" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Szukaj atrybutów" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Opcjonalnie; jeden atrybut w wierszu" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Pole wyświetlanej nazwy grupy" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atrybut LDAP służy do generowania nazwy grup ownCloud." -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Drzewo bazy grup" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" -msgstr "" +msgstr "Jedna grupa bazy DN na linię" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Grupa atrybutów wyszukaj" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Członek grupy stowarzyszenia" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Specjalne atrybuty" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "w bajtach" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Pomoc" diff --git a/l10n/pl_PL/core.po b/l10n/pl_PL/core.po index 29f70cf7c98c6446642b06da968a9d05fba2ac9d..fd6666ba2ddbbb7b5bf46e34e19ac1546b085858 100644 --- a/l10n/pl_PL/core.po +++ b/l10n/pl_PL/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -50,7 +50,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -155,59 +156,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "Ustawienia" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -466,7 +467,7 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -476,71 +477,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "" diff --git a/l10n/pl_PL/files.po b/l10n/pl_PL/files.po index 23c778df2b3765689d9c2338998bf980d0037037..058fd601d411f075817b88ab658940bbad482840 100644 --- a/l10n/pl_PL/files.po +++ b/l10n/pl_PL/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,20 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -53,7 +67,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -148,64 +163,60 @@ msgstr "" msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:272 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:311 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:314 js/files.js:369 js/files.js:384 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:387 js/files.js:422 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:496 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:569 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:574 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:948 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:949 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:950 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:974 +#: js/files.js:969 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:971 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:979 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:981 msgid "{count} files" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/pl_PL/files_encryption.po b/l10n/pl_PL/files_encryption.po index 2e95f4ce7e560e19b7c87c9e422c7f67ea5a65f0..d41a8cb3da55fdae02b4dba55be976f241454567 100644 --- a/l10n/pl_PL/files_encryption.po +++ b/l10n/pl_PL/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/pl_PL/files_trashbin.po b/l10n/pl_PL/files_trashbin.po index 2190a524e92dd1696f95a7dea0a58d598d775ffa..e158e5a65ee4888592e862506522d61190a09177 100644 --- a/l10n/pl_PL/files_trashbin.po +++ b/l10n/pl_PL/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/pl_PL/files_versions.po b/l10n/pl_PL/files_versions.po index 38bf131e3e4b897399337dd0b8a121ed3a4104b9..4423dd3512d086fcd00bc0cc915c8670302bf8c3 100644 --- a/l10n/pl_PL/files_versions.po +++ b/l10n/pl_PL/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/pl_PL/lib.po b/l10n/pl_PL/lib.po index af7e0260b91e80dba60d4291b21e12b043c47ebb..3a14af541f8912cb071316e2df74dd0e0e77d8c6 100644 --- a/l10n/pl_PL/lib.po +++ b/l10n/pl_PL/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: pl_PL\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ustawienia" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/pl_PL/settings.po b/l10n/pl_PL/settings.po index 991c4808c5bb57bbc83efa7991d97a5772c78540..3a1780a3529c09fa493350b1126598b7af0b3ccc 100644 --- a/l10n/pl_PL/settings.po +++ b/l10n/pl_PL/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -21,12 +21,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,59 +116,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Uaktualnienie" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -177,116 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/pl_PL/user_ldap.po b/l10n/pl_PL/user_ldap.po index 1b11dc6b24e3b7bb9bae6374f44c04edde150f3f..6fecd479fb54ff54852c133bc0ca6de5887bf758 100644 --- a/l10n/pl_PL/user_ldap.po +++ b/l10n/pl_PL/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/pt_BR/core.po b/l10n/pt_BR/core.po index d3b3d31ad4b1106430332049e46bfabc1b428d83..f89a43e9dd01cd5e9752d7ca80ab2c2b2c2bbb98 100644 --- a/l10n/pt_BR/core.po +++ b/l10n/pt_BR/core.po @@ -18,9 +18,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,11 +58,12 @@ msgstr "Tipo de categoria não fornecido." #: ajax/vcategories/add.php:30 msgid "No category to add?" -msgstr "Nenhuma categoria adicionada?" +msgstr "Nenhuma categoria a adicionar?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Essa categoria já existe" +#, php-format +msgid "This category already exists: %s" +msgstr "Esta categoria já existe: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -83,7 +84,7 @@ msgstr "Erro ao adicionar %s aos favoritos." #: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 msgid "No categories selected for deletion." -msgstr "Nenhuma categoria selecionada para deletar." +msgstr "Nenhuma categoria selecionada para excluir." #: ajax/vcategories/removeFromFavorites.php:35 #, php-format @@ -120,105 +121,105 @@ msgstr "Sábado" #: js/config.php:33 msgid "January" -msgstr "Janeiro" +msgstr "janeiro" #: js/config.php:33 msgid "February" -msgstr "Fevereiro" +msgstr "fevereiro" #: js/config.php:33 msgid "March" -msgstr "Março" +msgstr "março" #: js/config.php:33 msgid "April" -msgstr "Abril" +msgstr "abril" #: js/config.php:33 msgid "May" -msgstr "Maio" +msgstr "maio" #: js/config.php:33 msgid "June" -msgstr "Junho" +msgstr "junho" #: js/config.php:33 msgid "July" -msgstr "Julho" +msgstr "julho" #: js/config.php:33 msgid "August" -msgstr "Agosto" +msgstr "agosto" #: js/config.php:33 msgid "September" -msgstr "Setembro" +msgstr "setembro" #: js/config.php:33 msgid "October" -msgstr "Outubro" +msgstr "outubro" #: js/config.php:33 msgid "November" -msgstr "Novembro" +msgstr "novembro" #: js/config.php:33 msgid "December" -msgstr "Dezembro" +msgstr "dezembro" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Configurações" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "segundos atrás" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minuto atrás" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minutos atrás" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 hora atrás" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} horas atrás" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hoje" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ontem" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dias atrás" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "último mês" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} meses atrás" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "meses atrás" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "último ano" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "anos atrás" @@ -248,8 +249,8 @@ msgid "The object type is not specified." msgstr "O tipo de objeto não foi especificado." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Erro" @@ -261,15 +262,15 @@ msgstr "O nome do app não foi especificado." msgid "The required file {file} is not installed!" msgstr "O arquivo {file} necessário não está instalado!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Compartilhar" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Compartilhados" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Compartilhar" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Erro ao compartilhar" @@ -365,23 +366,23 @@ msgstr "remover" msgid "share" msgstr "compartilhar" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protegido com senha" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Erro ao remover data de expiração" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Erro ao definir data de expiração" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Enviando ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-mail enviado" @@ -396,7 +397,7 @@ msgstr "A atualização falhou. Por favor, relate este problema para a documentation." +msgstr "Para obter informações sobre como configurar corretamente o seu servidor, consulte a documentação." #: templates/installation.php:36 msgid "Create an admin account" -msgstr "Criar uma conta de administrador" +msgstr "Criar uma conta de administrador" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avançado" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Pasta de dados" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurar o banco de dados" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "será usado" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" -msgstr "Usuário de banco de dados" +msgstr "Usuário do banco de dados" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Senha do banco de dados" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nome do banco de dados" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Espaço de tabela do banco de dados" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" -msgstr "Banco de dados do host" +msgstr "Host do banco de dados" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Concluir configuração" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" -msgstr "web services sob seu controle" +msgstr "serviços web sob seu controle" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Sair" @@ -571,19 +576,19 @@ msgstr "Por favor troque sua senha para tornar sua conta segura novamente." #: templates/login.php:19 msgid "Lost your password?" -msgstr "Esqueçeu sua senha?" +msgstr "Esqueceu sua senha?" #: templates/login.php:41 msgid "remember" -msgstr "lembrete" +msgstr "lembrar" #: templates/login.php:43 msgid "Log in" -msgstr "Log in" +msgstr "Fazer login" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Logins alternativos" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index d9891649b5b755181be808b99feacc05639ce819..f92e74a24d7507a33c65acc1426e4d8b3eaab17a 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/files.po @@ -10,15 +10,16 @@ # Rodrigo Tavares , 2013. # , 2012. # Thiago Vicente , 2012. +# Tulio Simoes Martins Padilha , 2013. # Unforgiving Fallout <>, 2012. # Van Der Fran , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: tuliouel \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,6 +27,20 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Não possível mover %s - Um arquivo com este nome já existe" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Não possível mover %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Impossível renomear arquivo" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nenhum arquivo foi transferido. Erro desconhecido" @@ -62,8 +77,8 @@ msgid "Failed to write to disk" msgstr "Falha ao escrever no disco" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "" +msgid "Not enough storage available" +msgstr "Espaço de armazenamento insuficiente" #: ajax/upload.php:83 msgid "Invalid directory." @@ -73,53 +88,54 @@ msgstr "Diretório inválido." msgid "Files" msgstr "Arquivos" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Descompartilhar" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Excluir permanentemente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Excluir" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Renomear" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendente" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} já existe" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "substituir" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugerir nome" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "substituído {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "desfazer" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "Substituído {old_name} por {new_name} " -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "realizar operação de exclusão" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -137,84 +153,80 @@ msgstr "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Seu armazenamento está cheio, arquivos não serão mais atualizados nem sincronizados!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Seu armazenamento está quase cheio ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossível enviar seus arquivo como diretório ou ele tem 0 bytes." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Erro de envio" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Fechar" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendente" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "enviando 1 arquivo" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "Enviando {count} arquivos" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Upload em andamento. Sair da página agora resultará no cancelamento do envio." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL não pode ficar em branco" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de pasta inválido. O uso de 'Shared' é reservado para o Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamanho" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 arquivo" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} arquivos" @@ -271,8 +283,8 @@ msgid "From link" msgstr "Do link" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Arquivos apagados" #: templates/index.php:46 msgid "Cancel upload" @@ -286,6 +298,10 @@ msgstr "Nada aqui.Carrege alguma coisa!" msgid "Download" msgstr "Baixar" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Descompartilhar" + #: templates/index.php:105 msgid "Upload too large" msgstr "Arquivo muito grande" @@ -306,4 +322,4 @@ msgstr "Scanning atual" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Aprimorando cache do sistema de arquivos..." diff --git a/l10n/pt_BR/files_encryption.po b/l10n/pt_BR/files_encryption.po index 1a4579181b5448005b0d058382d0905a65669340..51cd8db4d819394f56204d0079add124d6f9e4a0 100644 --- a/l10n/pt_BR/files_encryption.po +++ b/l10n/pt_BR/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-14 00:05+0100\n" +"PO-Revision-Date: 2013-02-13 23:00+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,21 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Por favor, vá ao seu cliente ownCloud e mude sua criptografia de senha para completar a conversão." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "alterado para criptografia por parte do cliente" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Mudar senha de criptografia para senha de login" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Por favor, verifique suas senhas e tente novamente." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Criptografia" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "A criptografia de arquivos está ativada." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Os seguintes tipos de arquivo não serão criptografados:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Excluir os seguintes tipos de arquivo da criptografia:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/pt_BR/files_external.po b/l10n/pt_BR/files_external.po index 3c17453294ea29cbe8ae7555580181e37d7b7dfb..bb62fe971e515816580602e4c6ed115162998935 100644 --- a/l10n/pt_BR/files_external.po +++ b/l10n/pt_BR/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 00:27+0100\n" -"PO-Revision-Date: 2013-01-30 15:50+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -27,11 +27,11 @@ msgstr "Acesso concedido" msgid "Error configuring Dropbox storage" msgstr "Erro ao configurar armazenamento do Dropbox" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" msgstr "Permitir acesso" -#: js/dropbox.js:73 js/google.js:73 +#: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" msgstr "Preencha todos os campos obrigatórios" @@ -39,17 +39,17 @@ msgstr "Preencha todos os campos obrigatórios" msgid "Please provide a valid Dropbox app key and secret." msgstr "Por favor forneça um app key e secret válido do Dropbox" -#: js/google.js:26 js/google.js:74 js/google.js:79 +#: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "Erro ao configurar armazenamento do Google Drive" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Aviso: \"smbclient\" não está instalado. Não será possível montar compartilhamentos de CIFS/SMB. Por favor, peça ao seu administrador do sistema para instalá-lo." -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "Permitir usuários a montar seus próprios armazenamentos externos" msgid "SSL root certificates" msgstr "Certificados SSL raíz" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importar Certificado Raíz" diff --git a/l10n/pt_BR/files_sharing.po b/l10n/pt_BR/files_sharing.po index b9d69c31641e4c214c4916b980e2748c1e41c7fe..f6e8856cc62d04ad8c2af75f1d4a91efc9c63125 100644 --- a/l10n/pt_BR/files_sharing.po +++ b/l10n/pt_BR/files_sharing.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-24 02:01+0200\n" -"PO-Revision-Date: 2012-09-23 16:45+0000\n" +"POT-Creation-Date: 2013-02-14 00:05+0100\n" +"PO-Revision-Date: 2013-02-13 22:01+0000\n" "Last-Translator: sedir \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -44,6 +44,6 @@ msgstr "Baixar" msgid "No preview available for" msgstr "Nenhuma visualização disponível para" -#: templates/public.php:37 +#: templates/public.php:35 msgid "web services under your control" msgstr "web services sob seu controle" diff --git a/l10n/pt_BR/files_trashbin.po b/l10n/pt_BR/files_trashbin.po index ef507ea24472ecd2a0bec1551df4eeac467746cf..332e051fae8085d23e4cc550ede23695c6a50fd0 100644 --- a/l10n/pt_BR/files_trashbin.po +++ b/l10n/pt_BR/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Não foi possível excluir %s permanentemente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Não foi possível restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "realizar operação de restauração" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "excluir arquivo permanentemente" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Excluir permanentemente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nome" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Excluído" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 pasta" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} pastas" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 arquivo" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} arquivos" @@ -57,3 +71,7 @@ msgstr "Nada aqui. Sua lixeira está vazia!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Restaurar" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Excluir" diff --git a/l10n/pt_BR/files_versions.po b/l10n/pt_BR/files_versions.po index d6cf483ba38ff2339835208d63dadc474a965131..c809eecec5c1f5ceb001fd497d917e607ea63341 100644 --- a/l10n/pt_BR/files_versions.po +++ b/l10n/pt_BR/files_versions.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# Rodrigo Tavares , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 00:27+0100\n" -"PO-Revision-Date: 2013-01-30 15:50+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-14 00:05+0100\n" +"PO-Revision-Date: 2013-02-13 22:10+0000\n" +"Last-Translator: rodrigost23 \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Não foi possível reverter: %s" + +#: history.php:40 +msgid "success" +msgstr "sucesso" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Arquivo %s revertido à versão %s" + +#: history.php:49 +msgid "failure" +msgstr "falha" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Arquivo %s não pôde ser revertido à versão %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nenhuma versão antiga disponível" + +#: history.php:73 +msgid "No path specified" +msgstr "Nenhum caminho especificado" + #: js/versions.js:16 msgid "History" msgstr "Histórico" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Reverta um arquivo a uma versão anterior clicando no botão reverter" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionamento de Arquivos" diff --git a/l10n/pt_BR/lib.po b/l10n/pt_BR/lib.po index d20d57c814588a89147e2bad69cc528a3584e28a..bd3948317a89cb7ac2a388fe935a888a8adf28b8 100644 --- a/l10n/pt_BR/lib.po +++ b/l10n/pt_BR/lib.po @@ -6,12 +6,13 @@ # , 2012. # , 2012. # , 2012. +# Rodrigo Tavares , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 00:27+0100\n" -"PO-Revision-Date: 2013-01-30 15:50+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -20,27 +21,27 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ajuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Pessoal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ajustes" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Usuários" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicações" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" @@ -52,17 +53,17 @@ msgstr "Download ZIP está desligado." msgid "Files need to be downloaded one by one." msgstr "Arquivos precisam ser baixados um de cada vez." -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Voltar para Arquivos" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Arquivos selecionados são muito grandes para gerar arquivo zip." -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" -msgstr "" +msgstr "não pôde ser determinado" #: json.php:28 msgid "Application is not enabled" @@ -88,6 +89,108 @@ msgstr "Texto" msgid "Images" msgstr "Imagens" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Defina um nome de usuário de administrador." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Defina uma senha de administrador." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especifique uma pasta de dados." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s insira o nome de usuário do banco de dados." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s insira o nome do banco de dados." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s você não pode usar pontos no nome do banco de dados" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s defina o host do banco de dados." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nome de usuário e/ou senha PostgreSQL inválido(s)" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Você precisa inserir uma conta existente ou o administrador." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nome de usuário e/ou senha Oracle inválido(s)" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nome de usuário e/ou senha MySQL inválido(s)" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Erro no BD: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Comando ofensivo era: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "O usuário MySQL '%s'@'localhost' já existe." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Derrubar este usuário do MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Usuário MySQL '%s'@'%%' já existe" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Derrube este usuário do MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Comando ofensivo era: \"%s\", nome: %s, senha: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Seu servidor web não está configurado corretamente para permitir sincronização de arquivos porque a interface WebDAV parece estar quebrada." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, confira os guias de instalação." + #: template.php:113 msgid "seconds ago" msgstr "segundos atrás" @@ -140,16 +243,16 @@ msgstr "último ano" msgid "years ago" msgstr "anos atrás" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s está disponível. Obtenha mais informações" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "atualizado" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "checagens de atualização estão desativadas" diff --git a/l10n/pt_BR/settings.po b/l10n/pt_BR/settings.po index de48363261ed41776e9b587042bcd3ba78364099..3758869ec52b1062e768757c04fda5ac18fb56d4 100644 --- a/l10n/pt_BR/settings.po +++ b/l10n/pt_BR/settings.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -31,14 +31,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Não foi possível carregar lista da App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Erro de autenticação" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Impossível alterar nome de exibição" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -80,23 +80,23 @@ msgstr "Pedido inválido" msgid "Admins can't remove themself from the admin group" msgstr "Admins não podem se remover do grupo admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Não foi possível adicionar usuário ao grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Não foi possível remover usuário do grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Não foi possível atualizar o app." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Atualizar para {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -108,15 +108,15 @@ msgstr "Habilitar" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Por favor, aguarde..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Atualizando..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Erro ao atualizar aplicativo" #: js/apps.js:87 msgid "Error" @@ -124,61 +124,267 @@ msgstr "Erro" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Atualizado" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Guardando..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "excluído" + +#: js/users.js:30 +msgid "undo" +msgstr "desfazer" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Impossível remover usuário" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupo Administrativo" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Excluir" + +#: js/users.js:191 +msgid "add group" +msgstr "adicionar grupo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Forneça um nome de usuário válido" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Erro ao criar usuário" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Forneça uma senha válida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Português (Brasil)" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Aviso de Segurança" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Seu diretório de dados e seus arquivos estão, provavelmente, acessíveis a partir da internet. O .htaccess que o ownCloud fornece não está funcionando. Nós sugerimos que você configure o seu servidor web de uma forma que o diretório de dados esteja mais acessível ou que você mova o diretório de dados para fora da raiz do servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Aviso de Configuração" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Seu servidor web não está configurado corretamente para permitir sincronização de arquivos porque a interface WebDAV parece estar quebrada." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor, confira os guias de instalação." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Módulo 'fileinfo' faltando" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "O módulo PHP 'fileinfo' está faltando. Recomendamos que ative este módulo para obter uma melhor detecção do tipo de mídia (mime-type)." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Localização não funcionando" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Sem conexão com a internet" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Este servidor ownCloud não tem conexão com a internet. Isto significa que alguns dos recursos como montar armazenamento externo, notificar atualizações ou instalar aplicativos de terceiros não funcionam. Acesso remoto a arquivos e envio de e-mails de notificação podem também não funcionar. Sugerimos que habilite a conexão com a internet neste servidor se quiser usufruir de todos os recursos do ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Execute uma tarefa com cada página carregada" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php está registrado no serviço webcron. Chame a página cron.php na raíz do owncloud a cada minuto por http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Usar serviço de cron do sistema. Chama o arquivo cron.php na pasta owncloud via cronjob do sistema a cada minuto." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Compartilhamento" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Habilitar API de Compartilhamento" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permitir que aplicativos usem a API de Compartilhamento" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permitir links" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permitir que usuários compartilhem itens com o público usando links" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permitir recompartilhamento" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permitir que usuários compartilhem novamente itens compartilhados com eles" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permitir que usuários compartilhem com qualquer um" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permitir que usuários compartilhem somente com usuários em seus grupos" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Segurança" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forçar HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Força o cliente a conectar-se ao ownCloud por uma conexão criptografada." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Por favor, conecte-se a esta instância do ownCloud via HTTPS para habilitar ou desabilitar 'Forçar SSL'." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Registro" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nível de registro" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mais" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versão" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desenvolvido pela comunidade ownCloud, o código fonte está licenciado sob AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Adicione seu Aplicativo" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Mais Apps" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selecione um Aplicativo" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Ver página do aplicativo em apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenciado por " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Atualizar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentação de Usuário" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentação de Administrador" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentação Online" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fórum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" -msgstr "" +msgstr "Rastreador de Bugs" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Suporte Comercial" @@ -187,116 +393,86 @@ msgstr "Suporte Comercial" msgid "You have used %s of the available %s" msgstr "Você usou %s do seu espaço de %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Baixar Clientes Desktop" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Baixar Cliente Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Baixar Cliente iOS" +msgid "Get the apps to sync your files" +msgstr "Faça com que os apps sincronize seus arquivos" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Mostrar este Assistente de novo" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Senha" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Sua senha foi alterada" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Não é possivel alterar a sua senha" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Senha atual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nova senha" -#: templates/personal.php:28 -msgid "show" -msgstr "mostrar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Alterar senha" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nome de Exibição" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Seu nome de exibição foi alterado" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Impossível alterar seu nome de exibição" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Alterar nome de exibição" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Seu endereço de e-mail" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Preencha um endereço de e-mail para habilitar a recuperação de senha" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ajude a traduzir" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Usar este endereço para conectar-se ao seu ownCloud no seu gerenciador de arquivos" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versão" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desenvolvido pela comunidade ownCloud, o código fonte está licenciado sob AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nome de Login" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupos" - #: templates/users.php:32 msgid "Create" msgstr "Criar" @@ -305,34 +481,26 @@ msgstr "Criar" msgid "Default Storage" msgstr "Armazenamento Padrão" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ilimitado" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Outro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupo Administrativo" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Armazenamento" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "alterar nome de exibição" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "definir nova senha" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Padrão" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Apagar" diff --git a/l10n/pt_BR/user_ldap.po b/l10n/pt_BR/user_ldap.po index 7c537702150c92cf307e045a21c0570ff113107e..31113fe0d426e34b38a55e3fa2ee7a5d92f8588d 100644 --- a/l10n/pt_BR/user_ldap.po +++ b/l10n/pt_BR/user_ldap.po @@ -4,13 +4,15 @@ # # Translators: # , 2012. +# Rodrigo Tavares , 2013. +# Tulio Simoes Martins Padilha , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 20:00+0000\n" +"Last-Translator: tuliouel \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,23 +22,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Falha ao deletar a configuração do servidor" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "A configuração é válida e a conexão foi estabelecida!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "A configuração é válida, mas o Bind falhou. Confira as configurações do servidor e as credenciais." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "A configuração é inválida. Leia o \"log\" do ownCloud para mais detalhes." #: js/settings.js:66 msgid "Deletion failed" @@ -44,267 +46,267 @@ msgstr "Remoção falhou" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Tomar parámetros de recente configuração de servidor?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Manter ajustes?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Não foi possível adicionar a configuração do servidor" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Teste de conexão bem sucedido" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Teste de conexão falhou" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Você quer realmente deletar as atuais Configurações de Servidor?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Confirmar Exclusão" #: templates/settings.php:8 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "" +msgstr "Aviso: Os aplicativos user_ldap e user_webdavauth são incompatíveis. Você deverá experienciar comportamento inesperado. Por favor, peça ao seu administrador do sistema para desabilitar um deles." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Aviso: O módulo PHP LDAP não está instalado, o backend não funcionará. Por favor, peça ao seu administrador do sistema para instalá-lo." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Configuração de servidor" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Adicionar configuração de servidor" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Host" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "DN Base" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" -msgstr "" +msgstr "Uma base DN por linha" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Você pode especificar DN Base para usuários e grupos na guia Avançada" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "DN Usuário" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Senha" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Filtro de Login de Usuário" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro pra aplicar ao efetuar uma tentativa de login. %%uuid substitui o nome de usuário na ação de login." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "use %%uid placeholder, ex. \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Filtro de Lista de Usuário" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Define filtro a aplicar ao obter usuários." -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=person\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Filtro de Grupo" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define o filtro a aplicar ao obter grupos." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Configurações de conexão" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Configuração ativa" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Quando assinalada, esta configuração será pulada." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Porta" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Desativar Servidor Principal" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Quando ativado, ownCloud somente conectar-se-á ao servidor réplica." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Não use-o para conexões SSL, pois falhará." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Não use adicionalmente para conexões LDAPS, pois falhará." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP sensível à caixa alta (Windows)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Desligar validação de certificado SSL." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Não recomendado, use somente para testes." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "em segundos. Uma mudança esvaziará o cache." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Configurações de Diretório" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Campo Nome de Exibição de Usuário" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "O atributo LDAP para usar para gerar nome ownCloud do usuário." -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Árvore de Usuário Base" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" -msgstr "" +msgstr "Um usuário-base DN por linha" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Atributos de busca de usuário" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Opcional; um atributo por linha" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Campo Nome de Exibição de Grupo" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "O atributo LDAP para usar para gerar nome ownCloud do grupo." -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Árvore de Grupo Base" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" -msgstr "" +msgstr "Um grupo-base DN por linha" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Atributos de busca de grupo" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Associação Grupo-Membro" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Atributos Especiais" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "em bytes" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Ajuda" diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index 59cabef0066e626f94e8168fe512e96fdbb594f3..3a972374e6dd8eff97b981182d3630238451de38 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/core.po @@ -8,16 +8,16 @@ # , 2013. # Duarte Velez Grilo , 2012. # , 2011, 2012. -# Helder Meneses , 2012. +# Helder Meneses , 2012-2013. # Nelson Rosado , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,8 +58,9 @@ msgid "No category to add?" msgstr "Nenhuma categoria para adicionar?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Esta categoria já existe:" +#, php-format +msgid "This category already exists: %s" +msgstr "A categoria já existe: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -163,59 +164,59 @@ msgstr "Novembro" msgid "December" msgstr "Dezembro" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Definições" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "Minutos atrás" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "Há 1 minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minutos atrás" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Há 1 hora" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Há {hours} horas atrás" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hoje" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ontem" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dias atrás" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "ultímo mês" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Há {months} meses atrás" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "meses atrás" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "ano passado" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "anos atrás" @@ -245,8 +246,8 @@ msgid "The object type is not specified." msgstr "O tipo de objecto não foi especificado" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Erro" @@ -258,15 +259,15 @@ msgstr "O nome da aplicação não foi especificado" msgid "The required file {file} is not installed!" msgstr "O ficheiro necessário {file} não está instalado!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Partilhar" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Partilhado" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Partilhar" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Erro ao partilhar" @@ -362,23 +363,23 @@ msgstr "apagar" msgid "share" msgstr "partilhar" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protegido com palavra-passe" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Erro ao retirar a data de expiração" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Erro ao aplicar a data de expiração" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "A Enviar..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-mail enviado" @@ -393,7 +394,7 @@ msgstr "A actualização falhou. Por favor reporte este incidente seguindo este msgid "The update was successful. Redirecting you to ownCloud now." msgstr "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Reposição da password ownCloud" @@ -474,7 +475,7 @@ msgstr "Editar categorias" msgid "Add" msgstr "Adicionar" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Aviso de Segurança" @@ -484,71 +485,75 @@ msgid "" "OpenSSL extension." msgstr "Não existe nenhum gerador seguro de números aleatórios, por favor, active a extensão OpenSSL no PHP." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Sem nenhum gerador seguro de números aleatórios, uma pessoa mal intencionada pode prever a sua password, reiniciar as seguranças adicionais e tomar conta da sua conta. " +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "A pasta de dados do ownCloud e os respectivos ficheiros, estarão provavelmente acessíveis a partir da internet, pois o ficheiros .htaccess não funciona." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir das internet. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web." +"For information how to properly configure your server, please see the documentation." +msgstr "Para obter informações de como configurar correctamente o servidor, veja em: documentation." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Criar uma conta administrativa" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avançado" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Pasta de dados" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configure a base de dados" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vai ser usada" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Utilizador da base de dados" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Password da base de dados" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Nome da base de dados" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tablespace da base de dados" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Anfitrião da base de dados" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Acabar instalação" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "serviços web sob o seu controlo" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Sair" @@ -580,7 +585,7 @@ msgstr "Entrar" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Contas de acesso alternativas" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 284e463f1a2d6a1dc7bd4d0de62130a3a46d69f0..a9cdf6595e44ddd11fc42b236f1741146d6b77ab 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -8,16 +8,16 @@ # , 2013. # Duarte Velez Grilo , 2012. # , 2012. -# Helder Meneses , 2012. +# Helder Meneses , 2012-2013. # Miguel Sousa , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,6 +25,20 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Não foi possível move o ficheiro %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Não foi possível renomear o ficheiro" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nenhum ficheiro foi carregado. Erro desconhecido" @@ -61,8 +75,8 @@ msgid "Failed to write to disk" msgstr "Falhou a escrita no disco" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Espaço em disco insuficiente!" +msgid "Not enough storage available" +msgstr "Não há espaço suficiente em disco" #: ajax/upload.php:83 msgid "Invalid directory." @@ -72,51 +86,52 @@ msgstr "Directório Inválido" msgid "Files" msgstr "Ficheiros" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Deixar de partilhar" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Eliminar permanentemente" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Apagar" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Renomear" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pendente" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "O nome {new_name} já existe" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "substituir" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugira um nome" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "{new_name} substituido" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "desfazer" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "substituido {new_name} por {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "Executar a tarefa de apagar" @@ -142,78 +157,74 @@ msgstr "O seu armazenamento está cheio, os ficheiros não podem ser sincronizad msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Erro no envio" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Fechar" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pendente" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "A enviar 1 ficheiro" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "A carregar {count} ficheiros" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "O URL não pode estar vazio." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de pasta inválido. O Uso de 'shared' é reservado para o ownCloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nome" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Tamanho" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificado" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ficheiros" @@ -270,8 +281,8 @@ msgid "From link" msgstr "Da ligação" #: templates/index.php:40 -msgid "Trash" -msgstr "Lixo" +msgid "Deleted files" +msgstr "Ficheiros eliminados" #: templates/index.php:46 msgid "Cancel upload" @@ -285,6 +296,10 @@ msgstr "Vazio. Envie alguma coisa!" msgid "Download" msgstr "Transferir" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Deixar de partilhar" + #: templates/index.php:105 msgid "Upload too large" msgstr "Envio muito grande" diff --git a/l10n/pt_PT/files_encryption.po b/l10n/pt_PT/files_encryption.po index 09e55792f705e9b872f208d6518b413048b48a87..461a5030b77309c5bc3a67538e873b3340ffd754 100644 --- a/l10n/pt_PT/files_encryption.po +++ b/l10n/pt_PT/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 00:03+0100\n" +"PO-Revision-Date: 2013-02-10 14:21+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +19,21 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Por favor, use o seu cliente de sincronização do ownCloud e altere a sua password de encriptação para concluír a conversão." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Alterado para encriptação do lado do cliente" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Alterar a password de encriptação para a password de login" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Por favor verifique as suas paswords e tente de novo." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Não foi possível alterar a password de encriptação de ficheiros para a sua password de login" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Encriptação" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "A encriptação de ficheiros está ligada" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Os seguintes ficheiros não serão encriptados:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Excluir da encriptação os seguintes tipos de ficheiro:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/pt_PT/files_external.po b/l10n/pt_PT/files_external.po index 6319794b213f8e71373b425fe74cdd591bc47a13..e1c76803d8388e8fc8434bc3f4df2bdea7dd3862 100644 --- a/l10n/pt_PT/files_external.po +++ b/l10n/pt_PT/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-18 00:13+0100\n" -"PO-Revision-Date: 2012-12-17 01:29+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas." msgid "Error configuring Google Drive storage" msgstr "Erro ao configurar o armazenamento do Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Aviso: O cliente \"smbclient\" não está instalado. Não é possível montar as partilhas CIFS/SMB . Peça ao seu administrador para instalar." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Utilizadores" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Apagar" @@ -113,10 +113,10 @@ msgstr "Activar Armazenamento Externo para o Utilizador" msgid "Allow users to mount their own external storage" msgstr "Permitir que os utilizadores montem o seu próprio armazenamento externo" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Certificados SSL de raiz" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importar Certificado Root" diff --git a/l10n/pt_PT/files_trashbin.po b/l10n/pt_PT/files_trashbin.po index 5dca5cbe115ac1109c3fb82be4fab4486bb06414..a07384333bf76a4f82bd1e1fe4213675bb1df030 100644 --- a/l10n/pt_PT/files_trashbin.po +++ b/l10n/pt_PT/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Não foi possível eliminar %s de forma permanente" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Não foi possível restaurar %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "Restaurar" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Eliminar permanentemente o(s) ficheiro(s)" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Eliminar permanentemente" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nome" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Apagado" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 pasta" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} pastas" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ficheiro" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} ficheiros" @@ -57,3 +71,7 @@ msgstr "Não ha ficheiros. O lixo está vazio" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Restaurar" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Apagar" diff --git a/l10n/pt_PT/files_versions.po b/l10n/pt_PT/files_versions.po index 596deab439655d4c5456ff5030ebfe3472d7a5d1..9e0c86ead326e0c955ba592cb8179b406c657f88 100644 --- a/l10n/pt_PT/files_versions.po +++ b/l10n/pt_PT/files_versions.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Daniel Pinto , 2013. # Duarte Velez Grilo , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 00:03+0100\n" +"PO-Revision-Date: 2013-02-10 14:21+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Não foi possível reverter: %s" + +#: history.php:40 +msgid "success" +msgstr "Sucesso" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "O ficheiro %s foi revertido para a versão %s" + +#: history.php:49 +msgid "failure" +msgstr "Falha" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Não foi possível reverter o ficheiro %s para a versão %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Não existem versões mais antigas" + +#: history.php:73 +msgid "No path specified" +msgstr "Nenhum caminho especificado" + #: js/versions.js:16 msgid "History" msgstr "Histórico" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Reverter um ficheiro para uma versão anterior clicando no seu botão reverter." + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionamento de Ficheiros" diff --git a/l10n/pt_PT/lib.po b/l10n/pt_PT/lib.po index b9d558cbb40f91eb8e47f97f4f2d22ab664d8e70..38ec95480be7d22071a793303cd9e00ae6479b66 100644 --- a/l10n/pt_PT/lib.po +++ b/l10n/pt_PT/lib.po @@ -4,14 +4,15 @@ # # Translators: # , 2012-2013. +# Daniel Pinto , 2013. # Duarte Velez Grilo , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 00:47+0000\n" -"Last-Translator: Mouxy \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +20,43 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ajuda" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Pessoal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Configurações" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Utilizadores" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicações" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Descarregamento em ZIP está desligado." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Os ficheiros precisam de ser descarregados um por um." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Voltar a Ficheiros" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Os ficheiros seleccionados são grandes demais para gerar um ficheiro zip." @@ -87,6 +88,108 @@ msgstr "Texto" msgid "Images" msgstr "Imagens" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Definir um nome de utilizador de administrador" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Definiar uma password de administrador" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Especificar a pasta para os dados." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s introduza o nome de utilizador da base de dados" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s introduza o nome da base de dados" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s não é permitido utilizar pontos (.) no nome da base de dados" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s defina o servidor da base de dados (geralmente localhost)" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Nome de utilizador/password do PostgreSQL inválido" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Precisa de introduzir uma conta existente ou de administrador" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Nome de utilizador/password do Oracle inválida" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Nome de utilizador/password do MySQL inválida" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Erro na BD: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "O comando gerador de erro foi: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "O utilizador '%s'@'localhost' do MySQL já existe." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Eliminar este utilizador do MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "O utilizador '%s'@'%%' do MySQL já existe" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Eliminar este utilizador do MySQL" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "O comando gerador de erro foi: \"%s\", nome: %s, password: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor verifique installation guides." + #: template.php:113 msgid "seconds ago" msgstr "há alguns segundos" @@ -139,16 +242,16 @@ msgstr "ano passado" msgid "years ago" msgstr "há anos" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s está disponível. Obtenha mais informação" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "actualizado" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "a verificação de actualizações está desligada" diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po index 8c1833afc0e8119ce57c8f33eee6c98f8cb92161..ed47e12c9c5c5b10431b6c7f72a27469ea7a75be 100644 --- a/l10n/pt_PT/settings.po +++ b/l10n/pt_PT/settings.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -29,14 +29,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Incapaz de carregar a lista da App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Erro de autenticação" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Não foi possível alterar o nome" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -78,17 +78,17 @@ msgstr "Pedido inválido" msgid "Admins can't remove themself from the admin group" msgstr "Os administradores não se podem remover a eles mesmos do grupo admin." -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Impossível acrescentar utilizador ao grupo %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Impossível apagar utilizador do grupo %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Não foi possível actualizar a aplicação." @@ -124,59 +124,265 @@ msgstr "Erro" msgid "Updated" msgstr "Actualizado" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "A guardar..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "apagado" + +#: js/users.js:30 +msgid "undo" +msgstr "desfazer" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Não foi possível remover o utilizador" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupos" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupo Administrador" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Apagar" + +#: js/users.js:191 +msgid "add group" +msgstr "Adicionar grupo" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Um nome de utilizador válido deve ser fornecido" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Erro a criar utilizador" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Uma password válida deve ser fornecida" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Aviso de Segurança" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir das internet. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Aviso de setup" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Por favor verifique installation guides." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Falta o módulo 'fileinfo'" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "O Módulo PHP 'fileinfo' não se encontra instalado/activado. É fortemente recomendado que active este módulo para obter os melhores resultado com a detecção dos tipos de mime." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Internacionalização não está a funcionar" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "A ligação à internet não está a funcionar" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Este servidor ownCloud não tem uma ligação de internet funcional. Isto significa que algumas funcionalidades como o acesso a locais externos (dropbox, gdrive, etc), notificações sobre actualizções, ou a instalação de aplicações não irá funcionar. Sugerimos que active uma ligação à internet se pretende obter todas as funcionalidades do ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Executar uma tarefa com cada página carregada" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php está registado como um serviço webcron. Aceda a pagina cron.php que se encontra na raiz do ownCloud uma vez por minuto utilizando o seu browser." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Usar o serviço cron do sistema. Aceda a pagina cron.php que se encontra na raiz do ownCloud uma vez por minuto utilizando o seu browser." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Partilha" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Activar a API de partilha" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Permitir que os utilizadores usem a API de partilha" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Permitir links" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Permitir que os utilizadores partilhem itens com o público utilizando um link." + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Permitir repartilha" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Permitir que os utilizadores partilhem itens partilhados com eles" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Permitir que os utilizadores partilhem com todos" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Permitir que os utilizadores partilhem somente com utilizadores do seu grupo" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Segurança" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Forçar HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Forçar clientes a ligar através de uma ligação encriptada" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Por favor ligue-se ao ownCloud através de uma ligação HTTPS para ligar/desligar o forçar da ligação por SSL" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Registo" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Nível do registo" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mais" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versão" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Desenvolvido pela comunidade ownCloud, ocódigo fonte está licenciado sob a AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Adicione a sua aplicação" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Mais Aplicações" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selecione uma aplicação" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Ver a página da aplicação em apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licenciado por " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualizar" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentação de Utilizador" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentação de administrador." -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentação Online" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fórum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Suporte Comercial" @@ -185,116 +391,86 @@ msgstr "Suporte Comercial" msgid "You have used %s of the available %s" msgstr "Usou %s do disponivel %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clientes" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Transferir os clientes de sincronização" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Transferir o cliente android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Transferir o cliente iOS" +msgid "Get the apps to sync your files" +msgstr "Obtenha as aplicações para sincronizar os seus ficheiros" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Mostrar novamente Wizard de Arranque Inicial" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Palavra-chave" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "A sua palavra-passe foi alterada" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Não foi possivel alterar a sua palavra-chave" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Palavra-chave actual" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nova palavra-chave" -#: templates/personal.php:28 -msgid "show" -msgstr "mostrar" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Alterar palavra-chave" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Nome público" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "O seu nome foi alterado" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Não foi possível alterar o seu nome" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Alterar nome" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "endereço de email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "O seu endereço de email" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Preencha com o seu endereço de email para ativar a recuperação da palavra-chave" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Idioma" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ajude a traduzir" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Use este endereço no seu gestor de ficheiros para ligar à sua ownCloud" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versão" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Desenvolvido pela comunidade ownCloud, ocódigo fonte está licenciado sob a AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Nome de utilizador" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupos" - #: templates/users.php:32 msgid "Create" msgstr "Criar" @@ -303,34 +479,26 @@ msgstr "Criar" msgid "Default Storage" msgstr "Armazenamento Padrão" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Ilimitado" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Outro" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupo Administrador" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Armazenamento" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "modificar nome exibido" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "definir nova palavra-passe" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Padrão" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Apagar" diff --git a/l10n/pt_PT/user_ldap.po b/l10n/pt_PT/user_ldap.po index 66e002ab89e8bda03b61ed020d9bea213f671143..3a798d9e6a02099c1136fc68325c31677b34479b 100644 --- a/l10n/pt_PT/user_ldap.po +++ b/l10n/pt_PT/user_ldap.po @@ -6,15 +6,15 @@ # , 2012-2013. # Daniel Pinto , 2013. # Duarte Velez Grilo , 2012. -# Helder Meneses , 2012. +# Helder Meneses , 2012-2013. # Nelson Rosado , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 00:03+0100\n" +"PO-Revision-Date: 2013-02-10 14:21+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -177,7 +177,7 @@ msgstr "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\"." #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Definições de ligação" #: templates/settings.php:33 msgid "Configuration Active" @@ -218,8 +218,8 @@ msgid "Use TLS" msgstr "Usar TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Não use para ligações SSL, irá falhar." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Não utilize para adicionar ligações LDAP, irá falhar!" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -245,7 +245,7 @@ msgstr "em segundos. Uma alteração esvazia a cache." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Definições de directorias" #: templates/settings.php:45 msgid "User Display Name Field" @@ -297,7 +297,7 @@ msgstr "Associar utilizador ao grupo." #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Atributos especiais" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/ro/core.po b/l10n/ro/core.po index b4e708bd8bd6329e7387aa52fecbcb184902e42e..6a1ff327f340907505e5572b2062343bde1d91c4 100644 --- a/l10n/ro/core.po +++ b/l10n/ro/core.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -56,8 +56,9 @@ msgid "No category to add?" msgstr "Nici o categorie de adăugat?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Această categorie deja există:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -161,59 +162,59 @@ msgstr "Noiembrie" msgid "December" msgstr "Decembrie" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Configurări" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "secunde în urmă" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minut în urmă" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minute in urma" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Acum o ora" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} ore în urmă" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "astăzi" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ieri" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} zile in urma" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "ultima lună" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} luni în urmă" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "luni în urmă" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "ultimul an" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "ani în urmă" @@ -243,8 +244,8 @@ msgid "The object type is not specified." msgstr "Tipul obiectului nu a fost specificat" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Eroare" @@ -256,15 +257,15 @@ msgstr "Numele aplicației nu a fost specificat" msgid "The required file {file} is not installed!" msgstr "Fișierul obligatoriu {file} nu este instalat!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Partajează" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Partajează" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Eroare la partajare" @@ -360,23 +361,23 @@ msgstr "ștergere" msgid "share" msgstr "partajare" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Protejare cu parolă" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Eroare la anularea datei de expirare" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Eroare la specificarea datei de expirare" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Se expediază..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Mesajul a fost expediat" @@ -391,7 +392,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Resetarea parolei ownCloud " @@ -472,7 +473,7 @@ msgstr "Editează categoriile" msgid "Add" msgstr "Adaugă" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Avertisment de securitate" @@ -482,71 +483,75 @@ msgid "" "OpenSSL extension." msgstr "Generatorul de numere pentru securitate nu este disponibil, va rog activati extensia PHP OpenSSL" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Fara generatorul pentru numere de securitate , un atacator poate afla parola si reseta contul tau" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Directorul tău de date și fișierele tale probabil sunt accesibile prin internet. Fișierul .htaccess oferit de ownCloud nu funcționează. Îți recomandăm să configurezi server-ul tău web într-un mod în care directorul de date să nu mai fie accesibil sau mută directorul de date în afara directorului root al server-ului web." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Crează un cont de administrator" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avansat" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Director date" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Configurează baza de date" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "vor fi folosite" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Utilizatorul bazei de date" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Parola bazei de date" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Numele bazei de date" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tabela de spațiu a bazei de date" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Bază date" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Finalizează instalarea" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "servicii web controlate de tine" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Ieșire" diff --git a/l10n/ro/files.po b/l10n/ro/files.po index 13109711398106c265dc1facf1c5d287dab43ab2..54ea2dd98a6fcf7fabd05bb5d0e94bc3bb854985 100644 --- a/l10n/ro/files.po +++ b/l10n/ro/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,20 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Nu se poate de mutat %s - Fișier cu acest nume deja există" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nu s-a putut muta %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nu s-a putut redenumi fișierul" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nici un fișier nu a fost încărcat. Eroare necunoscută" @@ -59,8 +73,8 @@ msgid "Failed to write to disk" msgstr "Eroare la scriere pe disc" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nu este suficient spațiu disponibil" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -70,51 +84,52 @@ msgstr "Director invalid." msgid "Files" msgstr "Fișiere" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Anulează partajarea" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Șterge" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Redenumire" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "În așteptare" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} deja exista" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "înlocuire" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "sugerează nume" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "anulare" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "inlocuit {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "Anulează ultima acțiune" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} inlocuit cu {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -140,78 +155,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Eroare la încărcare" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Închide" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "În așteptare" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "un fișier se încarcă" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} fisiere incarcate" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Încărcare anulată." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Adresa URL nu poate fi goală." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Invalid folder name. Usage of 'Shared' is reserved by Ownclou" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Nume" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Dimensiune" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Modificat" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 folder" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} foldare" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 fisier" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} fisiere" @@ -268,7 +279,7 @@ msgid "From link" msgstr "de la adresa" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -283,6 +294,10 @@ msgstr "Nimic aici. Încarcă ceva!" msgid "Download" msgstr "Descarcă" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Anulează partajarea" + #: templates/index.php:105 msgid "Upload too large" msgstr "Fișierul încărcat este prea mare" diff --git a/l10n/ro/files_encryption.po b/l10n/ro/files_encryption.po index 10fad6ca469405a13f4f0bdab14785a88df87b4a..ba27a3e08d25f072b9ef8aba92d8a9f494e06b85 100644 --- a/l10n/ro/files_encryption.po +++ b/l10n/ro/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Te rugăm să mergi în clientul ownCloud și să schimbi parola pentru a finisa conversia" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "setat la encriptare locală" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Schimbă parola de ecriptare în parolă de acces" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Verifică te rog parolele și înceracă din nou." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Nu s-a putut schimba parola de encripție a fișierelor ca parolă de acces" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Încriptare" diff --git a/l10n/ro/files_external.po b/l10n/ro/files_external.po index fd43a0fd65b407d2b749575a960e1fdc80be7fe3..fe533cfcd452cfe8d422ae592139ffb67fee869b 100644 --- a/l10n/ro/files_external.po +++ b/l10n/ro/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-27 00:04+0100\n" -"PO-Revision-Date: 2013-01-25 23:25+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Dimon Pockemon <>\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Prezintă te rog o cheie de Dropbox validă și parola" msgid "Error configuring Google Drive storage" msgstr "Eroare la configurarea mediului de stocare Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Atenție: \"smbclient\" nu este instalat. Montarea mediilor CIFS/SMB partajate nu este posibilă. Solicită administratorului sistemului tău să îl instaleaze." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "Permite utilizatorilor să monteze stocare externă proprie" msgid "SSL root certificates" msgstr "Certificate SSL root" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importă certificat root" diff --git a/l10n/ro/files_trashbin.po b/l10n/ro/files_trashbin.po index bf376bb048f264b1f6a8140ab8942f8f2e07f2a1..a58055214727b7d6613af37584e8cffb27e5dbf3 100644 --- a/l10n/ro/files_trashbin.po +++ b/l10n/ro/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Nume" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 folder" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} foldare" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fisier" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} fisiere" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Șterge" diff --git a/l10n/ro/files_versions.po b/l10n/ro/files_versions.po index 28514d6ddd3f59a7b93ebaada49b7fdc7d563820..46715013ca3bb3baf2d827a2f51c50b636931fbc 100644 --- a/l10n/ro/files_versions.po +++ b/l10n/ro/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Istoric" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionare fișiere" diff --git a/l10n/ro/lib.po b/l10n/ro/lib.po index a48eb334748bf48914e8f357277d80e41b237dc4..e8cff99f648ab901854c8e1988f9929a5241d296 100644 --- a/l10n/ro/lib.po +++ b/l10n/ro/lib.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-26 00:09+0100\n" -"PO-Revision-Date: 2013-01-25 21:31+0000\n" -"Last-Translator: Dimon Pockemon <>\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,47 +20,47 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Ajutor" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personal" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Setări" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Utilizatori" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplicații" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Descărcarea ZIP este dezactivată." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Fișierele trebuie descărcate unul câte unul." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Înapoi la fișiere" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Fișierele selectate sunt prea mari pentru a genera un fișier zip." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "nu poate fi determinat" @@ -88,6 +88,108 @@ msgstr "Text" msgid "Images" msgstr "Imagini" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "secunde în urmă" @@ -140,16 +242,16 @@ msgstr "ultimul an" msgid "years ago" msgstr "ani în urmă" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s este disponibil. Vezi mai multe informații" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "la zi" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "verificarea după actualizări este dezactivată" diff --git a/l10n/ro/settings.po b/l10n/ro/settings.po index a54bf6ea81fb5d33f7752efaac3f2b85e5f29a3f..ac2965b4d758e9486f6c4c3d23bb6c076b5d58c1 100644 --- a/l10n/ro/settings.po +++ b/l10n/ro/settings.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -28,12 +28,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Imposibil de încărcat lista din App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Eroare de autentificare" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -77,17 +77,17 @@ msgstr "Cerere eronată" msgid "Admins can't remove themself from the admin group" msgstr "Administratorii nu se pot șterge singuri din grupul admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Nu s-a putut adăuga utilizatorul la grupul %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Nu s-a putut elimina utilizatorul din grupul %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -123,59 +123,265 @@ msgstr "Eroare" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Salvez..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "șters" + +#: js/users.js:30 +msgid "undo" +msgstr "Anulează ultima acțiune" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupuri" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Grupul Admin " + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Șterge" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "_language_name_" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Avertisment de securitate" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Directorul tău de date și fișierele tale probabil sunt accesibile prin internet. Fișierul .htaccess oferit de ownCloud nu funcționează. Îți recomandăm să configurezi server-ul tău web într-un mod în care directorul de date să nu mai fie accesibil sau mută directorul de date în afara directorului root al server-ului web." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mai mult" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Versiunea" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Dezvoltat de the comunitatea ownCloud, codul sursă este licențiat sub AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Adaugă aplicația ta" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Mai multe aplicații" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Selectează o aplicație" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Vizualizează pagina applicației pe apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licențiat " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Actualizare" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Documentație utilizator" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Documentație administrator" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Documentație online" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Urmărire bug-uri" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Suport comercial" @@ -184,116 +390,86 @@ msgstr "Suport comercial" msgid "You have used %s of the available %s" msgstr "Ați utilizat %s din %s disponibile" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Clienți" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Descarcă client desktop" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Descarcă client Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Descarcă client iOS" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Parolă" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Parola a fost modificată" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Imposibil de-ați schimbat parola" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Parola curentă" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Noua parolă" -#: templates/personal.php:28 -msgid "show" -msgstr "afișează" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Schimbă parola" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Adresa ta de email" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Completează o adresă de mail pentru a-ți putea recupera parola" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Limba" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Ajută la traducere" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Folosește această adresă pentru a conecta ownCloud cu managerul de fișiere" -#: templates/personal.php:85 -msgid "Version" -msgstr "Versiunea" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Dezvoltat de the comunitatea ownCloud, codul sursă este licențiat sub AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupuri" - #: templates/users.php:32 msgid "Create" msgstr "Crează" @@ -302,34 +478,26 @@ msgstr "Crează" msgid "Default Storage" msgstr "Stocare implicită" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Nelimitată" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Altele" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Grupul Admin " - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Stocare" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Implicită" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Șterge" diff --git a/l10n/ro/user_ldap.po b/l10n/ro/user_ldap.po index 388d6f13f218fc3113a1509ba95c9674f24cc89a..4a97d1b7d6a031ca9d4de1bfdfb534ee4b426cf2 100644 --- a/l10n/ro/user_ldap.po +++ b/l10n/ro/user_ldap.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -216,8 +216,8 @@ msgid "Use TLS" msgstr "Utilizează TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "A nu se utiliza pentru conexiuni SSL, va eșua." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/ru/core.po b/l10n/ru/core.po index a39f8a367207a19bb60f90c15cda4c251a64ddf5..21dfba20b358e8c3c2c674c7627604221c17d63f 100644 --- a/l10n/ru/core.po +++ b/l10n/ru/core.po @@ -14,13 +14,14 @@ # , 2011. # Victor Bravo <>, 2012. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Langaru \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -61,8 +62,9 @@ msgid "No category to add?" msgstr "Нет категорий для добавления?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Эта категория уже существует: " +#, php-format +msgid "This category already exists: %s" +msgstr "Эта категория уже существует: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -166,59 +168,59 @@ msgstr "Ноябрь" msgid "December" msgstr "Декабрь" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Настройки" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "несколько секунд назад" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 минуту назад" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} минут назад" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "час назад" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} часов назад" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "сегодня" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "вчера" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} дней назад" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "в прошлом месяце" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} месяцев назад" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "несколько месяцев назад" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "в прошлом году" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "несколько лет назад" @@ -248,8 +250,8 @@ msgid "The object type is not specified." msgstr "Тип объекта не указан" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Ошибка" @@ -261,15 +263,15 @@ msgstr "Имя приложения не указано" msgid "The required file {file} is not installed!" msgstr "Необходимый файл {file} не установлен!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Открыть доступ" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Общие" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Открыть доступ" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Ошибка при открытии доступа" @@ -365,23 +367,23 @@ msgstr "удалить" msgid "share" msgstr "открыть доступ" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Защищено паролем" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Ошибка при отмене срока доступа" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Ошибка при установке срока доступа" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Отправляется ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Письмо отправлено" @@ -396,7 +398,7 @@ msgstr "При обновлении произошла ошибка. Пожал msgid "The update was successful. Redirecting you to ownCloud now." msgstr "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud..." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Сброс пароля " @@ -477,7 +479,7 @@ msgstr "Редактировать категории" msgid "Add" msgstr "Добавить" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Предупреждение безопасности" @@ -487,71 +489,75 @@ msgid "" "OpenSSL extension." msgstr "Нет доступного защищенного генератора случайных чисел, пожалуйста, включите расширение PHP OpenSSL." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Без защищенного генератора случайных чисел злоумышленник может предугадать токены сброса пароля и завладеть Вашей учетной записью." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера." +"For information how to properly configure your server, please see the documentation." +msgstr "Для информации как правильно настроить Ваш сервер, пожалйста загляните в документацию." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Создать учётную запись администратора" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Дополнительно" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Директория с данными" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Настройка базы данных" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "будет использовано" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Имя пользователя для базы данных" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Пароль для базы данных" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Название базы данных" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Табличое пространство базы данных" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Хост базы данных" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Завершить установку" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "Сетевые службы под твоим контролем" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Выйти" @@ -583,7 +589,7 @@ msgstr "Войти" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Альтернативные имена пользователя" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/ru/files.po b/l10n/ru/files.po index 60b935318794301dd05855e40055bbcf974854b2..573dd1596a4a0189233511aad2f9f30cd6ad0d58 100644 --- a/l10n/ru/files.po +++ b/l10n/ru/files.po @@ -13,15 +13,17 @@ # , 2013. # , 2012. # , 2011. +# Victor Ashirov , 2013. # Victor Bravo <>, 2012. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: Langaru \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,6 +31,20 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Невозможно переместить %s - файл с таким именем уже существует" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Невозможно переместить %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Невозможно переименовать файл" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" @@ -65,8 +81,8 @@ msgid "Failed to write to disk" msgstr "Ошибка записи на диск" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Недостаточно свободного места" +msgid "Not enough storage available" +msgstr "Недостаточно доступного места в хранилище" #: ajax/upload.php:83 msgid "Invalid directory." @@ -76,51 +92,52 @@ msgstr "Неправильный каталог." msgid "Files" msgstr "Файлы" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Отменить публикацию" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Удалено навсегда" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Удалить" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Переименовать" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ожидание" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} уже существует" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "заменить" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "предложить название" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "отмена" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "заменено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "отмена" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "заменено {new_name} на {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "выполняется операция удаления" @@ -146,78 +163,74 @@ msgstr "Ваше дисковое пространство полностью з msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ваше хранилище почти заполнено ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Загрузка началась. Это может потребовать много времени, если файл большого размера." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не удается загрузить файл размером 0 байт в каталог" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Ошибка загрузки" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Закрыть" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ожидание" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "загружается 1 файл" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} файлов загружается" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Загрузка отменена." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Ссылка не может быть пустой." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Неправильное имя каталога. Имя 'Shared' зарезервировано." -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Название" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Изменён" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} файлов" @@ -274,8 +287,8 @@ msgid "From link" msgstr "Из ссылки" #: templates/index.php:40 -msgid "Trash" -msgstr "Корзина" +msgid "Deleted files" +msgstr "Удалённые файлы" #: templates/index.php:46 msgid "Cancel upload" @@ -289,6 +302,10 @@ msgstr "Здесь ничего нет. Загрузите что-нибудь!" msgid "Download" msgstr "Скачать" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Отменить публикацию" + #: templates/index.php:105 msgid "Upload too large" msgstr "Файл слишком большой" diff --git a/l10n/ru/files_encryption.po b/l10n/ru/files_encryption.po index b9f437eee8cdae6039fe0db92555a3a138bb3a2d..1244183e43b039381c2fe04567c059ff71a75866 100644 --- a/l10n/ru/files_encryption.po +++ b/l10n/ru/files_encryption.po @@ -4,12 +4,13 @@ # # Translators: # Denis , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -18,43 +19,21 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Шифрование" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Шифрование файла включено." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Следующие типы файлов не будут зашифрованы:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Исключить следующие типы файлов из шифрованных:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/ru/files_external.po b/l10n/ru/files_external.po index e6f36547a063ec8ada579d5a6f548972965b90af..1f32586bd3da0fd51db81a88f491cb2efac2ff88 100644 --- a/l10n/ru/files_external.po +++ b/l10n/ru/files_external.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-14 00:16+0100\n" -"PO-Revision-Date: 2012-12-13 17:02+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: sam002 \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -44,13 +44,13 @@ msgstr "Пожалуйста, предоставьте действующий к msgid "Error configuring Google Drive storage" msgstr "Ошибка при настройке хранилища Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Внимание: \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -102,7 +102,7 @@ msgid "Users" msgstr "Пользователи" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Удалить" @@ -114,10 +114,10 @@ msgstr "Включить пользовательские внешние нос msgid "Allow users to mount their own external storage" msgstr "Разрешить пользователям монтировать их собственные внешние носители" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Корневые сертификаты SSL" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Импортировать корневые сертификаты" diff --git a/l10n/ru/files_trashbin.po b/l10n/ru/files_trashbin.po index 87ecf686fe924b312a4f8357111b5cc876516466..fff8f9c064fc319b6fb3d32cb19cd8e86527d65f 100644 --- a/l10n/ru/files_trashbin.po +++ b/l10n/ru/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "%s не может быть удалён навсегда" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "%s не может быть восстановлен" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "выполнить операцию восстановления" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "удалить файл навсегда" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Удалено навсегда" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Имя" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Удалён" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 папка" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} папок" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 файл" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} файлов" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Здесь ничего нет. Ваша корзина пуста!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Восстановить" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Удалить" diff --git a/l10n/ru/files_versions.po b/l10n/ru/files_versions.po index e25aa41375aeaeffd3ec645f9f7751a1277f652d..87dce55db7e5dfc0e49e11a49daac21fb5f50fc9 100644 --- a/l10n/ru/files_versions.po +++ b/l10n/ru/files_versions.po @@ -6,13 +6,14 @@ # Denis , 2012. # , 2012. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 06:30+0000\n" +"Last-Translator: Langaru \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,10 +21,45 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Не может быть возвращён: %s" + +#: history.php:40 +msgid "success" +msgstr "успех" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Файл %s был возвращён к версии %s" + +#: history.php:49 +msgid "failure" +msgstr "провал" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Файл %s не может быть возвращён к версии %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Нет доступных старых версий" + +#: history.php:73 +msgid "No path specified" +msgstr "Путь не указан" + #: js/versions.js:16 msgid "History" msgstr "История" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Вернуть файл к предыдущей версии нажатием на кнопку возврата" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Версии файлов" diff --git a/l10n/ru/lib.po b/l10n/ru/lib.po index f834d506e211929469154a3299eb1483899a5519..f055d5f00fcc7788d1d632abdcc70ef86d2b8339 100644 --- a/l10n/ru/lib.po +++ b/l10n/ru/lib.po @@ -3,19 +3,21 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Denis , 2013. # Denis , 2012. # , 2012. # Mihail Vasiliev , 2012. # , 2012. # Sergey , 2013. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 07:20+0000\n" -"Last-Translator: m4rkell \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,27 +25,27 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:313 +#: app.php:349 msgid "Help" msgstr "Помощь" -#: app.php:320 +#: app.php:362 msgid "Personal" msgstr "Личное" -#: app.php:325 +#: app.php:373 msgid "Settings" msgstr "Настройки" -#: app.php:330 +#: app.php:385 msgid "Users" msgstr "Пользователи" -#: app.php:337 +#: app.php:398 msgid "Apps" msgstr "Приложения" -#: app.php:339 +#: app.php:406 msgid "Admin" msgstr "Admin" @@ -55,15 +57,15 @@ msgstr "ZIP-скачивание отключено." msgid "Files need to be downloaded one by one." msgstr "Файлы должны быть загружены по одному." -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Назад к файлам" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Выбранные файлы слишком велики, чтобы создать zip файл." -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "Невозможно установить" @@ -91,6 +93,108 @@ msgstr "Текст" msgid "Images" msgstr "Изображения" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Установить имя пользователя для admin." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "становит пароль для admin." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Указать папку данных." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s введите имя пользователя базы данных." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s введите имя базы данных." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s Вы не можете использовать точки в имени базы данных" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s задайте хост базы данных." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Неверное имя пользователя и/или пароль PostgreSQL" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Вы должны войти или в существующий аккаунт или под администратором." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Неверное имя пользователя и/или пароль Oracle" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Неверное имя пользователя и/или пароль MySQL" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Ошибка БД: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Вызываемая команда была: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Пользователь MySQL '%s'@'localhost' уже существует." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Удалить этого пользователя из MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Пользователь MySQL '%s'@'%%' уже существует" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Удалить этого пользователя из MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Вызываемая команда была: \"%s\", имя: %s, пароль: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш веб сервер до сих пор не настроен правильно для возможности синхронизации файлов, похоже что проблема в неисправности интерфейса WebDAV." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Пожалуйста, дважды просмотрите инструкции по установке." + #: template.php:113 msgid "seconds ago" msgstr "менее минуты" @@ -143,16 +247,16 @@ msgstr "в прошлом году" msgid "years ago" msgstr "годы назад" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "Возможно обновление до %s. Подробнее" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "актуальная версия" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "проверка обновлений отключена" diff --git a/l10n/ru/settings.po b/l10n/ru/settings.po index 1d09ca48a2c904f0376ec2b5dc116015dd597f2c..98db3804c1c98345fe3057213e0ad9355c5bd90c 100644 --- a/l10n/ru/settings.po +++ b/l10n/ru/settings.po @@ -14,14 +14,16 @@ # , 2012-2013. # , 2012. # , 2011. +# Victor Ashirov , 2013. # Victor Bravo <>, 2012. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -34,14 +36,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Загрузка из App Store запрещена" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Ошибка авторизации" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Невозможно изменить отображаемое имя" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -83,23 +85,23 @@ msgstr "Неверный запрос" msgid "Admins can't remove themself from the admin group" msgstr "Администратор не может удалить сам себя из группы admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Невозможно добавить пользователя в группу %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Невозможно удалить пользователя из группы %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Невозможно обновить приложение" #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Обновить до {версия приложения}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -119,7 +121,7 @@ msgstr "Обновление..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Ошибка в процессе обновления приложения" #: js/apps.js:87 msgid "Error" @@ -129,59 +131,265 @@ msgstr "Ошибка" msgid "Updated" msgstr "Обновлено" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Сохранение..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "удален" + +#: js/users.js:30 +msgid "undo" +msgstr "отмена" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Невозможно удалить пользователя" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Группы" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Группа Администраторы" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Удалить" + +#: js/users.js:191 +msgid "add group" +msgstr "добавить группу" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Предоставте подходящее имя пользователя" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Ошибка создания пользователя" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Предоставте подходящий пароль" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Русский " -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Предупреждение безопасности" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Предупреждение установки" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш веб сервер до сих пор не настроен правильно для возможности синхронизации файлов, похоже что проблема в неисправности интерфейса WebDAV." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Пожалуйста, дважды просмотрите инструкции по установке." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Модуль 'fileinfo' потерян" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "PHP модуль 'fileinfo' потерян. Мы настоятельно рекомендуем включить этот модуль для получения лучших результатов в mime-типе обнаружения." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Локализация не работает" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Интернет соединение не работает" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Этот сервер ownCloud не имеет ни одного рабочего интернет соединения. Это значит, что некоторые возможности, такие как монтаж внешних носителей, уведомления о обновлениях или установки 3го рода приложений,не работают." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Демон" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Выполнять одно задание с каждой загруженной страницей" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php зарегистрирован на webcron сервисе. Вызов страницы cron.php в корне owncloud раз в минуту через http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Использование системной службы cron. Вызов файла cron.php в папке owncloud через систему cronjob раз в минуту." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Общий доступ" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Включить API общего доступа" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Позволить программам использовать API общего доступа" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Разрешить ссылки" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Разрешить пользователям открывать в общий доступ эллементы с публичной ссылкой" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Разрешить переоткрытие общего доступа" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Позволить пользователям открывать общий доступ к эллементам уже открытым в общий доступ" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Разрешить пользователя делать общий доступ любому" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Разрешить пользователям делать общий доступ только для пользователей их групп" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Безопасность" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Принудить к HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Принудить клиентов подключаться к ownCloud через шифрованное подключение." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Пожалуйста, подключитесь к этому экземпляру ownCloud через HTTPS для включения или отключения SSL принуждения." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Лог" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Уровень лога" + +#: templates/admin.php:223 +msgid "More" +msgstr "Больше" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Версия" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Разрабатывается сообществом ownCloud, исходный код доступен под лицензией AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Добавить приложение" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Больше приложений" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Выберите приложение" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Смотрите дополнения на apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr " лицензия. Автор " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Обновить" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Пользовательская документация" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Документация администратора" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online документация" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Форум" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Коммерческая поддержка" @@ -190,116 +398,86 @@ msgstr "Коммерческая поддержка" msgid "You have used %s of the available %s" msgstr "Вы использовали %s из доступных %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Клиенты" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Загрузка приложений для компьютера" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Загрузка Android-приложения" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Загрузка iOS-приложения" +msgid "Get the apps to sync your files" +msgstr "Получить приложения для синхронизации ваших файлов" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Показать помощник настройки" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Пароль" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ваш пароль изменён" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Невозможно сменить пароль" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Текущий пароль" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Новый пароль" -#: templates/personal.php:28 -msgid "show" -msgstr "показать" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Сменить пароль" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Отображаемое имя" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Ваше отображаемое имя было изменено" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Невозможно изменить Ваше отображаемое имя" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Изменить отображаемое имя" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "e-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Ваш адрес электронной почты" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Введите адрес электронной почты, чтобы появилась возможность восстановления пароля" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Язык" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Помочь с переводом" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Используйте этот URL для подключения файлового менеджера к Вашему хранилищу" -#: templates/personal.php:85 -msgid "Version" -msgstr "Версия" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Разрабатывается сообществом ownCloud, исходный код доступен под лицензией AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Имя пользователя" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Группы" - #: templates/users.php:32 msgid "Create" msgstr "Создать" @@ -308,34 +486,26 @@ msgstr "Создать" msgid "Default Storage" msgstr "Хранилище по-умолчанию" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Неограниченно" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Другое" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Группа Администраторы" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Хранилище" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "изменить отображаемое имя" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "установить новый пароль" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "По-умолчанию" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Удалить" diff --git a/l10n/ru/user_ldap.po b/l10n/ru/user_ldap.po index 0d01260dd959141236a98932c2d52c23f078d2f7..c25f1f500d7e1331d7e2ff9db9f198d6cbce13e0 100644 --- a/l10n/ru/user_ldap.po +++ b/l10n/ru/user_ldap.po @@ -6,13 +6,15 @@ # <4671992@gmail.com>, 2012. # Denis , 2012. # , 2012. +# Victor Ashirov , 2013. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 00:20+0100\n" +"PO-Revision-Date: 2013-02-11 16:30+0000\n" +"Last-Translator: unixoid \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,23 +24,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Не удалось удалить конфигурацию сервера" #: ajax/testConfiguration.php:35 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Конфигурация правильная и подключение может быть установлено!" #: ajax/testConfiguration.php:37 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Конфигурация верна, но операция подключения завершилась неудачно. Пожалуйста, проверьте настройки сервера и учетные данные." #: ajax/testConfiguration.php:40 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Конфигурация не верна. Пожалуйста, посмотрите в журнале ownCloud детали." #: js/settings.js:66 msgid "Deletion failed" @@ -46,31 +48,31 @@ msgstr "Удаление не удалось" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Принять настройки из последней конфигурации сервера?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Сохранить настройки?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Не получилось добавить конфигурацию сервера" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Проверка соединения удалась" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Проверка соединения не удалась" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Вы действительно хотите удалить существующую конфигурацию сервера?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Подтверждение удаления" #: templates/settings.php:8 msgid "" @@ -83,15 +85,15 @@ msgstr "Внимание:Приложения user_ldap и user_webdavaut msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Внимание: Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. " #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Конфигурация сервера" #: templates/settings.php:17 msgid "Add Server Configuration" -msgstr "" +msgstr "Добавить конфигурацию сервера" #: templates/settings.php:21 msgid "Host" @@ -108,7 +110,7 @@ msgstr "Базовый DN" #: templates/settings.php:22 msgid "One Base DN per line" -msgstr "" +msgstr "По одному базовому DN в строке." #: templates/settings.php:22 msgid "You can specify Base DN for users and groups in the Advanced tab" @@ -175,15 +177,15 @@ msgstr "без заполнения, например \"objectClass=posixGroup\" #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Настройки подключения" #: templates/settings.php:33 msgid "Configuration Active" -msgstr "" +msgstr "Конфигурация активна" #: templates/settings.php:33 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Когда галочка снята, эта конфигурация будет пропущена." #: templates/settings.php:34 msgid "Port" @@ -191,33 +193,33 @@ msgstr "Порт" #: templates/settings.php:35 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Адрес резервного сервера" #: templates/settings.php:35 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Укажите дополнительный резервный сервер. Он должен быть репликой главного LDAP/AD сервера." #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Порт резервного сервера" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "Отключение главного сервера" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Когда включено, ownCloud будет соединяться только с резервным сервером." #: templates/settings.php:38 msgid "Use TLS" msgstr "Использовать TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Не используйте для соединений SSL" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Не используйте совместно с безопасными подключениями (LDAPS), это не сработает." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -243,7 +245,7 @@ msgstr "в секундах. Изменение очистит кэш." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Настройки каталога" #: templates/settings.php:45 msgid "User Display Name Field" @@ -259,15 +261,15 @@ msgstr "База пользовательского дерева" #: templates/settings.php:46 msgid "One User Base DN per line" -msgstr "" +msgstr "По одной базовому DN пользователей в строке." #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "Поисковые атрибуты пользователя" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Опционально; один атрибут на линию" #: templates/settings.php:48 msgid "Group Display Name Field" @@ -283,11 +285,11 @@ msgstr "База группового дерева" #: templates/settings.php:49 msgid "One Group Base DN per line" -msgstr "" +msgstr "По одной базовому DN групп в строке." #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "Атрибуты поиска для группы" #: templates/settings.php:51 msgid "Group-Member association" @@ -295,7 +297,7 @@ msgstr "Ассоциация Группа-Участник" #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Специальные атрибуты" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/ru/user_webdavauth.po b/l10n/ru/user_webdavauth.po index 709cb4a65dc39858cc476e4a17854bb7822c9170..c66ccc74b9912194faa7e5db53e9fa3790a85b4c 100644 --- a/l10n/ru/user_webdavauth.po +++ b/l10n/ru/user_webdavauth.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Denis , 2013. # , 2012. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-12 15:10+0100\n" +"PO-Revision-Date: 2013-02-12 10:43+0000\n" +"Last-Translator: Denis \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,15 +22,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Идентификация WebDAV" #: templates/settings.php:4 msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud отправит пользовательские данные на этот URL. Затем плагин проверит ответ, в случае HTTP ответа 401 или 403 данные будут считаться неверными, при любых других ответах - верными." diff --git a/l10n/ru_RU/core.po b/l10n/ru_RU/core.po index dbb4e95efde7a89d52090693a082cf9defab291d..b3fdce00f69f4dc527b7d6e15254e9f5e7636832 100644 --- a/l10n/ru_RU/core.po +++ b/l10n/ru_RU/core.po @@ -5,13 +5,14 @@ # Translators: # , 2013. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Langaru \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -52,8 +53,9 @@ msgid "No category to add?" msgstr "Нет категории для добавления?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Эта категория уже существует:" +#, php-format +msgid "This category already exists: %s" +msgstr "Эта категория уже существует: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +159,59 @@ msgstr "Ноябрь" msgid "December" msgstr "Декабрь" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Настройки" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "секунд назад" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr " 1 минуту назад" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{минуты} минут назад" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 час назад" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{часы} часов назад" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "сегодня" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "вчера" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{дни} дней назад" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "в прошлом месяце" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{месяцы} месяцев назад" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "месяц назад" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "в прошлом году" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "лет назад" @@ -239,8 +241,8 @@ msgid "The object type is not specified." msgstr "Тип объекта не указан." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Ошибка" @@ -252,15 +254,15 @@ msgstr "Имя приложения не указано." msgid "The required file {file} is not installed!" msgstr "Требуемый файл {файл} не установлен!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Сделать общим" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Опубликовано" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Сделать общим" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Ошибка создания общего доступа" @@ -356,23 +358,23 @@ msgstr "удалить" msgid "share" msgstr "сделать общим" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Пароль защищен" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Ошибка при отключении даты истечения срока действия" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Ошибка при установке даты истечения срока действия" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Отправка ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Письмо отправлено" @@ -387,7 +389,7 @@ msgstr "Обновление прошло неудачно. Пожалуйста msgid "The update was successful. Redirecting you to ownCloud now." msgstr "Обновление прошло успешно. Немедленное перенаправление Вас на ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Переназначение пароля" @@ -468,7 +470,7 @@ msgstr "Редактирование категорий" msgid "Add" msgstr "Добавить" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Предупреждение системы безопасности" @@ -478,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "Нет доступного защищенного генератора случайных чисел, пожалуйста, включите расширение PHP OpenSSL." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Без защищенного генератора случайных чисел злоумышленник может спрогнозировать пароль, сбросить учетные данные и завладеть Вашим аккаунтом." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера." +"For information how to properly configure your server, please see the documentation." +msgstr "Для информации как правильно настроить Ваш сервер, пожалйста загляните в документацию." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Создать admin account" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Расширенный" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Папка данных" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Настроить базу данных" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "будет использоваться" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Пользователь базы данных" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Пароль базы данных" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Имя базы данных" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Табличная область базы данных" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Сервер базы данных" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Завершение настройки" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "веб-сервисы под Вашим контролем" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Выйти" @@ -574,7 +580,7 @@ msgstr "Войти" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Альтернативные Имена" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/ru_RU/files.po b/l10n/ru_RU/files.po index 659837c8c947b4ed4bc351a97ea481e33247b494..7e980374e2b0df51b16291b43b45013b3806b2a4 100644 --- a/l10n/ru_RU/files.po +++ b/l10n/ru_RU/files.po @@ -6,12 +6,13 @@ # , 2013. # , 2012. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -20,6 +21,20 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Неполучается перенести %s - Файл с таким именем уже существует" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Неполучается перенести %s " + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Невозможно переименовать файл" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" @@ -56,8 +71,8 @@ msgid "Failed to write to disk" msgstr "Не удалось записать на диск" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Не достаточно свободного места" +msgid "Not enough storage available" +msgstr "Недостаточно места в хранилище" #: ajax/upload.php:83 msgid "Invalid directory." @@ -67,53 +82,54 @@ msgstr "Неверный каталог." msgid "Files" msgstr "Файлы" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Скрыть" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Удалить навсегда" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Удалить" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Переименовать" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Ожидающий решения" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{новое_имя} уже существует" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "отмена" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "подобрать название" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "отменить" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "заменено {новое_имя}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "отменить действие" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "заменено {новое_имя} с {старое_имя}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "выполняется процесс удаления" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -131,84 +147,80 @@ msgstr "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '? #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Ваше хранилище переполнено, фалы больше не могут быть обновлены или синхронизированы!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Ваше хранилище почти полно ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Идёт подготовка к скачке Вашего файла. Это может занять некоторое время, если фалы большие." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Ошибка загрузки" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Закрыть" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Ожидающий решения" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "загрузка 1 файла" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{количество} загружено файлов" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Загрузка отменена" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Процесс загрузки файла. Если покинуть страницу сейчас, загрузка будет отменена." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL не должен быть пустым." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Неверное имя папки. Использование наименования 'Опубликовано' зарезервировано Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Имя" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Размер" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Изменен" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{количество} папок" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{количество} файлов" @@ -265,7 +277,7 @@ msgid "From link" msgstr "По ссылке" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +292,10 @@ msgstr "Здесь ничего нет. Загрузите что-нибудь!" msgid "Download" msgstr "Загрузить" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Скрыть" + #: templates/index.php:105 msgid "Upload too large" msgstr "Загрузка слишком велика" diff --git a/l10n/ru_RU/files_encryption.po b/l10n/ru_RU/files_encryption.po index 41f89c1b290c54e375223813d752a9ce7e646670..cd0001f8dac4f5030281f9c517f5a8c9f018194a 100644 --- a/l10n/ru_RU/files_encryption.po +++ b/l10n/ru_RU/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "переключено на шифрование на клиентской стороне" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Пожалуйста, проверьте Ваш пароль и попробуйте снова" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Шифрование" diff --git a/l10n/ru_RU/files_external.po b/l10n/ru_RU/files_external.po index b93907dab57006c21580f47860a9c9a1334cc0f1..b37a2763216e0e623d98bb0d83d53cf1b6aaee69 100644 --- a/l10n/ru_RU/files_external.po +++ b/l10n/ru_RU/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-22 00:24+0100\n" -"PO-Revision-Date: 2012-12-21 10:27+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: AnnaSch \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Пожалуйста представьте допустимый клю msgid "Error configuring Google Drive storage" msgstr "Ошибка настройки хранилища Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Предупреждение: \"smbclient\" не установлен. Подключение общих папок CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Разрешить пользователям монтировать и msgid "SSL root certificates" msgstr "Корневые сертификаты SSL" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Импортировать корневые сертификаты" diff --git a/l10n/ru_RU/files_trashbin.po b/l10n/ru_RU/files_trashbin.po index 02991a08ba47b4a5f22163100f6067841662c9af..a2501fc63a0691e64af3b0c234ded06663740d6e 100644 --- a/l10n/ru_RU/files_trashbin.po +++ b/l10n/ru_RU/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "%s не может быть удалён навсегда" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "%s не может быть восстановлен" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "выполнить операцию восстановления" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "удалить файл навсегда" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Удалить навсегда" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Имя" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Удалён" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 папка" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{количество} папок" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 файл" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{количество} файлов" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Здесь ничего нет. Ваша корзина пуста!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Восстановить" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Удалить" diff --git a/l10n/ru_RU/files_versions.po b/l10n/ru_RU/files_versions.po index 440d5bbecb080d2d6c30f7fe5ed7d0b76082fc29..1cb13519bbbfe0ab34413316c93e54db6f8ec153 100644 --- a/l10n/ru_RU/files_versions.po +++ b/l10n/ru_RU/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "История" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Файлы управления версиями" diff --git a/l10n/ru_RU/lib.po b/l10n/ru_RU/lib.po index 34e58324fbddb64f551404e201999e8f59452688..2ffed90f68e5f38f5e85423ebf384455b17b9c8f 100644 --- a/l10n/ru_RU/lib.po +++ b/l10n/ru_RU/lib.po @@ -5,13 +5,14 @@ # Translators: # , 2013. # , 2012. +# Дмитрий , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 10:41+0000\n" -"Last-Translator: AnnaSch \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +20,47 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Помощь" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Персональный" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Настройки" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Пользователи" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Приложения" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Админ" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Загрузка ZIP выключена." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Файлы должны быть загружены один за другим." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Обратно к файлам" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Выбранные файлы слишком велики для генерации zip-архива." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "не может быть определено" @@ -87,6 +88,108 @@ msgstr "Текст" msgid "Images" msgstr "Изображения" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш веб сервер ещё не достаточно точно настроен для возможности синхронизации, т.к. похоже, что интерфейс WebDAV сломан." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Пожалуйста проверте дважды гиды по установке." + #: template.php:113 msgid "seconds ago" msgstr "секунд назад" @@ -139,16 +242,16 @@ msgstr "в прошлом году" msgid "years ago" msgstr "год назад" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s доступно. Получите more information" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "до настоящего времени" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "Проверка обновлений отключена" diff --git a/l10n/ru_RU/settings.po b/l10n/ru_RU/settings.po index 184b4e73c63cb9d715f6b9e4dec2797d3760ebd3..cfc0f39c99faa165c862c497902c9b127164d8f0 100644 --- a/l10n/ru_RU/settings.po +++ b/l10n/ru_RU/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Невозможно загрузить список из App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Ошибка авторизации" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "Неверный запрос" msgid "Admins can't remove themself from the admin group" msgstr "Администраторы не могут удалить сами себя из группы администраторов" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Невозможно добавить пользователя в группу %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Невозможно удалить пользователя из группы %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "Ошибка" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Сохранение" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "удалено" + +#: js/users.js:30 +msgid "undo" +msgstr "отменить действие" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Группы" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Группа Admin" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Удалить" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__язык_имя__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Предупреждение системы безопасности" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш веб сервер ещё не достаточно точно настроен для возможности синхронизации, т.к. похоже, что интерфейс WebDAV сломан." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Пожалуйста проверте дважды гиды по установке." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Подробнее" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Версия" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Разработанный ownCloud community, the source code is licensed under the AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Добавить Ваше приложение" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Больше приложений" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Выбрать приложение" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Обратитесь к странице приложений на apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licensed by " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Обновить" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Документация пользователя" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Документация администратора" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Документация online" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Форум" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Отслеживание ошибок" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Коммерческая поддержка" @@ -179,116 +385,86 @@ msgstr "Коммерческая поддержка" msgid "You have used %s of the available %s" msgstr "Вы использовали %s из возможных %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Клиенты" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Загрузка десктопных клиентов" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Загрузить клиент под Android " - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Загрузить клиент под iOS " +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Вновь показать помощника первоначальной настройки" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Пароль" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ваш пароль был изменен" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Невозможно изменить Ваш пароль" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Текущий пароль" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Новый пароль" -#: templates/personal.php:28 -msgid "show" -msgstr "показать" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Изменить пароль" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Электронная почта" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Адрес Вашей электронной почты" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Введите адрес электронной почты для возможности восстановления пароля" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Язык" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Помогите перевести" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Используйте этот адрес для подключения к ownCloud в Вашем файловом менеджере" -#: templates/personal.php:85 -msgid "Version" -msgstr "Версия" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Разработанный ownCloud community, the source code is licensed under the AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Группы" - #: templates/users.php:32 msgid "Create" msgstr "Создать" @@ -297,34 +473,26 @@ msgstr "Создать" msgid "Default Storage" msgstr "Хранилище по умолчанию" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Неограниченный" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Другой" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Группа Admin" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Хранилище" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "назначить новый пароль" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "По умолчанию" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Удалить" diff --git a/l10n/ru_RU/user_ldap.po b/l10n/ru_RU/user_ldap.po index 848fc9df8d74aba574d9849a0e7b11296624eb66..0b6b9ebf1a5b39783be624399aca49c3a4990d73 100644 --- a/l10n/ru_RU/user_ldap.po +++ b/l10n/ru_RU/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Использовать TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Не используйте это SSL-соединений, это не будет выполнено." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/si_LK/core.po b/l10n/si_LK/core.po index bf09a68a998ba5a91de7be07a92bf71eb712709a..7ea576ef3202f5a6a0768c25797899b2854e71de 100644 --- a/l10n/si_LK/core.po +++ b/l10n/si_LK/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -53,7 +53,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -158,59 +159,59 @@ msgstr "නොවැම්බර්" msgid "December" msgstr "දෙසැම්බර්" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "සැකසුම්" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "තත්පරයන්ට පෙර" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 මිනිත්තුවකට පෙර" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "අද" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "ඊයේ" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "පෙර මාසයේ" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "මාස කීපයකට පෙර" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "පෙර අවුරුද්දේ" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "අවුරුදු කීපයකට පෙර" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "දෝෂයක්" @@ -253,15 +254,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "බෙදා හදා ගන්න" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "බෙදා හදා ගන්න" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -357,23 +358,23 @@ msgstr "මකන්න" msgid "share" msgstr "බෙදාහදාගන්න" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "මුර පදයකින් ආරක්ශාකර ඇත" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "කල් ඉකුත් දිනය ඉවත් කිරීමේ දෝෂයක්" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "කල් ඉකුත් දිනය ස්ථාපනය කිරීමේ දෝෂයක්" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -388,7 +389,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud මුරපදය ප්‍රත්‍යාරම්භ කරන්න" @@ -469,7 +470,7 @@ msgstr "ප්‍රභේදයන් සංස්කරණය" msgid "Add" msgstr "එක් කරන්න" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "ආරක්ෂක නිවේදනයක්" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "ආරක්ෂිත අහඹු සංඛ්‍යා උත්පාදකයක් නොමැති නම් ඔබගේ ගිණුමට පහරදෙන අයකුට එහි මුරපද යළි පිහිටුවීමට අවශ්‍ය ටෝකන පහසුවෙන් සොයාගෙන ඔබගේ ගිණුම පැහැරගත හැක." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්‍රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්‍යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "දියුණු/උසස්" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "දත්ත ෆෝල්ඩරය" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "දත්ත සමුදාය හැඩගැසීම" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "භාවිතා වනු ඇත" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "දත්තගබඩා භාවිතාකරු" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "දත්තගබඩාවේ මුරපදය" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "දත්තගබඩාවේ නම" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "දත්තගබඩා සේවාදායකයා" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "ස්ථාපනය කිරීම අවසන් කරන්න" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "නික්මීම" diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po index f98b038c8ea8ed569f9eed7901432f46c6dccc27..3ba394f09d5a7830b05170214ce525769d12ab46 100644 --- a/l10n/si_LK/files.po +++ b/l10n/si_LK/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්" @@ -55,7 +69,7 @@ msgid "Failed to write to disk" msgstr "තැටිගත කිරීම අසාර්ථකයි" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -66,51 +80,52 @@ msgstr "" msgid "Files" msgstr "ගොනු" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "නොබෙදු" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "මකන්න" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "නැවත නම් කරන්න" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ප්‍රතිස්ථාපනය කරන්න" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "නමක් යෝජනා කරන්න" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "අත් හරින්න" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "නිෂ්ප්‍රභ කරන්න" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -136,78 +151,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "උඩුගත කිරීමේ දෝශයක්" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "වසන්න" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 ගොනුවක් උඩගත කෙරේ" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "උඩුගත කිරීම අත් හරින්න ලදී" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "යොමුව හිස් විය නොහැක" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "නම" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ප්‍රමාණය" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "වෙනස් කළ" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 ෆොල්ඩරයක්" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ගොනුවක්" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -264,7 +275,7 @@ msgid "From link" msgstr "යොමුවෙන්" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -279,6 +290,10 @@ msgstr "මෙහි කිසිවක් නොමැත. යමක් උඩ msgid "Download" msgstr "බාගත කිරීම" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "නොබෙදු" + #: templates/index.php:105 msgid "Upload too large" msgstr "උඩුගත කිරීම විශාල වැඩිය" diff --git a/l10n/si_LK/files_encryption.po b/l10n/si_LK/files_encryption.po index 14724b9e31c1e45c66aef46d98526ef910c05b56..7af077ac2a7fdaca427df6170f8bc67316e80395 100644 --- a/l10n/si_LK/files_encryption.po +++ b/l10n/si_LK/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "ගුප්ත කේතනය" diff --git a/l10n/si_LK/files_external.po b/l10n/si_LK/files_external.po index 1c63e48b42c4c995f2870510f6e7f8569007deaf..295a21a1ab05f9865dd612c1bde824eb6c4ed3c9 100644 --- a/l10n/si_LK/files_external.po +++ b/l10n/si_LK/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "කරුණාකර වලංගු Dropbox යෙදුම් යත msgid "Error configuring Google Drive storage" msgstr "Google Drive ගබඩාව වින්‍යාස කිරීමේ දෝශයක් ඇත" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "පරිශීලකයන්" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "මකා දමන්න" @@ -112,10 +112,10 @@ msgstr "පරිශීලක භාහිර ගබඩාවන් සක්‍ msgid "Allow users to mount their own external storage" msgstr "පරිශීලකයන්ට තමාගේම භාහිර ගබඩාවන් මවුන්ට් කිරීමේ අයිතිය දෙන්න" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL මූල සහතිකයන්" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "මූල සහතිකය ආයාත කරන්න" diff --git a/l10n/si_LK/files_trashbin.po b/l10n/si_LK/files_trashbin.po index 67a762da980356aad4e505a4234ab95555987d8c..4013fa0197fdff5e24680388a1e2fa656f68eccf 100644 --- a/l10n/si_LK/files_trashbin.po +++ b/l10n/si_LK/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "නම" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 ෆොල්ඩරයක්" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ගොනුවක්" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "මකා දමන්න" diff --git a/l10n/si_LK/files_versions.po b/l10n/si_LK/files_versions.po index 65443ed184b8d7d55870ad761f4e07f8e32d9bb3..a7a9fdc4990d30c5da5c576b322709eb818578e4 100644 --- a/l10n/si_LK/files_versions.po +++ b/l10n/si_LK/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "ඉතිහාසය" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "ගොනු අනුවාදයන්" diff --git a/l10n/si_LK/lib.po b/l10n/si_LK/lib.po index 9fcdc0a05a40595e7bb637a4639d399851c81303..ea4c6cdb755e2f652abd6e5df913415538540277 100644 --- a/l10n/si_LK/lib.po +++ b/l10n/si_LK/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "උදව්" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "පෞද්ගලික" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "සිටුවම්" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "පරිශීලකයන්" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "යෙදුම්" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "පරිපාලක" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP භාගත කිරීම් අක්‍රියයි" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "ගොනු එකින් එක භාගත යුතුයි" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "ගොනු වෙතට නැවත යන්න" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "තෝරාගත් ගොනු ZIP ගොනුවක් තැනීමට විශාල වැඩිය." @@ -87,6 +87,108 @@ msgstr "පෙළ" msgid "Images" msgstr "අනු රූ" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "තත්පරයන්ට පෙර" @@ -139,16 +241,16 @@ msgstr "පෙර අවුරුද්දේ" msgid "years ago" msgstr "අවුරුදු කීපයකට පෙර" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s යොදාගත හැක. තව විස්තර ලබාගන්න" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "යාවත්කාලීනයි" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "යාවත්කාලීන බව පරීක්ෂණය අක්‍රියයි" diff --git a/l10n/si_LK/settings.po b/l10n/si_LK/settings.po index 223283dfa924c636b0d61e2e645708830e03dd13..faa4cd05a42a5e0f8688c3fae8c01a4379d8a65d 100644 --- a/l10n/si_LK/settings.po +++ b/l10n/si_LK/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "සත්‍යාපන දෝෂයක්" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "අවලංගු අයදුම" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "පරිශීලකයා %s කණ්ඩායමට එකතු කළ නොහැක" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "පරිශීලකයා %s කණ්ඩායමින් ඉවත් කළ නොහැක" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -119,59 +119,265 @@ msgstr "දෝෂයක්" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "සුරැකෙමින් පවතී..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "නිෂ්ප්‍රභ කරන්න" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "සමූහය" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "කාණ්ඩ පරිපාලක" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "මකා දමනවා" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "ආරක්ෂක නිවේදනයක්" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්‍රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්‍යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "වැඩි" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "නිපදන ලද්දේ ownCloud සමාජයෙන්, the මුල් කේතය ලයිසන්ස් කර ඇත්තේ AGPL යටතේ." + +#: templates/apps.php:11 msgid "Add your App" msgstr "යෙදුමක් එක් කිරීම" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "තවත් යෙදුම්" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "යෙදුමක් තොරන්න" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "යාවත්කාල කිරීම" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -180,116 +386,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "සේවාලාභීන්" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "මුරපදය" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "ඔබගේ මුර පදය වෙනස් කෙරුණි" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "මුර පදය වෙනස් කළ නොහැකි විය" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "වත්මන් මුරපදය" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "නව මුරපදය" -#: templates/personal.php:28 -msgid "show" -msgstr "ප්‍රදර්ශනය කිරීම" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "මුරපදය වෙනස් කිරීම" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "විද්‍යුත් තැපෑල" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "ඔබගේ විද්‍යුත් තැපෑල" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "මුරපද ප්‍රතිස්ථාපනය සඳහා විද්‍යුත් තැපැල් විස්තර ලබා දෙන්න" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "භාෂාව" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "පරිවර්ථන සහය" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "නිපදන ලද්දේ ownCloud සමාජයෙන්, the මුල් කේතය ලයිසන්ස් කර ඇත්තේ AGPL යටතේ." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "සමූහය" - #: templates/users.php:32 msgid "Create" msgstr "තනන්න" @@ -298,34 +474,26 @@ msgstr "තනන්න" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "වෙනත්" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "කාණ්ඩ පරිපාලක" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "මකා දමනවා" diff --git a/l10n/si_LK/user_ldap.po b/l10n/si_LK/user_ldap.po index cb5a0b25f19947a1a9ce3f854ae642000d37506c..992b171e9093a4414032ae2a1061ca98dc55fb4d 100644 --- a/l10n/si_LK/user_ldap.po +++ b/l10n/si_LK/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -214,7 +214,7 @@ msgid "Use TLS" msgstr "TLS භාවිතා කරන්න" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/sk/core.po b/l10n/sk/core.po new file mode 100644 index 0000000000000000000000000000000000000000..5986e77ed44fb2cf725af486e3f7b2acad8831e0 --- /dev/null +++ b/l10n/sk/core.po @@ -0,0 +1,593 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/share.php:85 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:87 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:89 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:91 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:32 +msgid "Sunday" +msgstr "" + +#: js/config.php:32 +msgid "Monday" +msgstr "" + +#: js/config.php:32 +msgid "Tuesday" +msgstr "" + +#: js/config.php:32 +msgid "Wednesday" +msgstr "" + +#: js/config.php:32 +msgid "Thursday" +msgstr "" + +#: js/config.php:32 +msgid "Friday" +msgstr "" + +#: js/config.php:32 +msgid "Saturday" +msgstr "" + +#: js/config.php:33 +msgid "January" +msgstr "" + +#: js/config.php:33 +msgid "February" +msgstr "" + +#: js/config.php:33 +msgid "March" +msgstr "" + +#: js/config.php:33 +msgid "April" +msgstr "" + +#: js/config.php:33 +msgid "May" +msgstr "" + +#: js/config.php:33 +msgid "June" +msgstr "" + +#: js/config.php:33 +msgid "July" +msgstr "" + +#: js/config.php:33 +msgid "August" +msgstr "" + +#: js/config.php:33 +msgid "September" +msgstr "" + +#: js/config.php:33 +msgid "October" +msgstr "" + +#: js/config.php:33 +msgid "November" +msgstr "" + +#: js/config.php:33 +msgid "December" +msgstr "" + +#: js/js.js:284 +msgid "Settings" +msgstr "" + +#: js/js.js:764 +msgid "seconds ago" +msgstr "" + +#: js/js.js:765 +msgid "1 minute ago" +msgstr "" + +#: js/js.js:766 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:767 +msgid "1 hour ago" +msgstr "" + +#: js/js.js:768 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:769 +msgid "today" +msgstr "" + +#: js/js.js:770 +msgid "yesterday" +msgstr "" + +#: js/js.js:771 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:772 +msgid "last month" +msgstr "" + +#: js/js.js:773 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:774 +msgid "months ago" +msgstr "" + +#: js/js.js:775 +msgid "last year" +msgstr "" + +#: js/js.js:776 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 +#: js/share.js:583 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Shared" +msgstr "" + +#: js/share.js:141 js/share.js:611 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +msgid "Password" +msgstr "" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "" + +#: js/share.js:339 +msgid "share" +msgstr "" + +#: js/share.js:373 js/share.js:558 +msgid "Password protected" +msgstr "" + +#: js/share.js:571 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:583 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:598 +msgid "Sending ..." +msgstr "" + +#: js/share.js:609 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:47 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: templates/login.php:28 +msgid "Username" +msgstr "" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "" + +#: strings.php:6 +msgid "Users" +msgstr "" + +#: strings.php:7 +msgid "Apps" +msgstr "" + +#: strings.php:8 +msgid "Admin" +msgstr "" + +#: strings.php:9 +msgid "Help" +msgstr "" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "" + +#: templates/installation.php:23 templates/installation.php:30 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:25 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an admin account" +msgstr "" + +#: templates/installation.php:52 +msgid "Advanced" +msgstr "" + +#: templates/installation.php:54 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:61 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 +msgid "will be used" +msgstr "" + +#: templates/installation.php:109 +msgid "Database user" +msgstr "" + +#: templates/installation.php:113 +msgid "Database password" +msgstr "" + +#: templates/installation.php:117 +msgid "Database name" +msgstr "" + +#: templates/installation.php:125 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:131 +msgid "Database host" +msgstr "" + +#: templates/installation.php:136 +msgid "Finish setup" +msgstr "" + +#: templates/layout.guest.php:33 +msgid "web services under your control" +msgstr "" + +#: templates/layout.user.php:48 +msgid "Log out" +msgstr "" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "" + +#: templates/login.php:41 +msgid "remember" +msgstr "" + +#: templates/login.php:43 +msgid "Log in" +msgstr "" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/sk/files.po b/l10n/sk/files.po new file mode 100644 index 0000000000000000000000000000000000000000..7645aa9b5493f06af4ae9850921633145e2a3455 --- /dev/null +++ b/l10n/sk/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:31 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:33 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:34 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:52 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:83 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:224 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:261 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:261 +msgid "Upload Error" +msgstr "" + +#: js/files.js:272 +msgid "Close" +msgstr "" + +#: js/files.js:311 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:314 js/files.js:369 js/files.js:384 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:387 js/files.js:422 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:496 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:569 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:574 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:948 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:949 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:950 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:969 +msgid "1 folder" +msgstr "" + +#: js/files.js:971 +msgid "{count} folders" +msgstr "" + +#: js/files.js:979 +msgid "1 file" +msgstr "" + +#: js/files.js:981 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/sk/files_encryption.po b/l10n/sk/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..eb687048cabbdc79857a0ba08158f5a8a2ef1f25 --- /dev/null +++ b/l10n/sk/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/sk/files_external.po b/l10n/sk/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..3c72b5b471470936059969dfe224a32b1c2011aa --- /dev/null +++ b/l10n/sk/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:405 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:406 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:153 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/sk/files_sharing.po b/l10n/sk/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..942e60b0498d651b2cae2ea7f39ec94250e84b0b --- /dev/null +++ b/l10n/sk/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:9 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:11 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:14 templates/public.php:30 +msgid "Download" +msgstr "" + +#: templates/public.php:29 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:35 +msgid "web services under your control" +msgstr "" diff --git a/l10n/sk/files_trashbin.po b/l10n/sk/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..99f8cea940a201e06a8ccdc501ff7c291b3c2127 --- /dev/null +++ b/l10n/sk/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/sk/files_versions.po b/l10n/sk/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..dd26d70a1ccec158fe47384e0c23fb33245e41b3 --- /dev/null +++ b/l10n/sk/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/sk/lib.po b/l10n/sk/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..68541eae87db4abad53a83e44f7fd6060d977b48 --- /dev/null +++ b/l10n/sk/lib.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: app.php:349 +msgid "Help" +msgstr "" + +#: app.php:362 +msgid "Personal" +msgstr "" + +#: app.php:373 +msgid "Settings" +msgstr "" + +#: app.php:385 +msgid "Users" +msgstr "" + +#: app.php:398 +msgid "Apps" +msgstr "" + +#: app.php:406 +msgid "Admin" +msgstr "" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "" + +#: template.php:114 +msgid "1 minute ago" +msgstr "" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:116 +msgid "1 hour ago" +msgstr "" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "" + +#: template.php:119 +msgid "yesterday" +msgstr "" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:81 +msgid "up to date" +msgstr "" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/sk/settings.po b/l10n/sk/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..f2e8a802d76a408e2d05be35c1da481edaa97f24 --- /dev/null +++ b/l10n/sk/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/sk/user_ldap.po b/l10n/sk/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..3148a0621610d1c22de02b96a7d1835b5951d138 --- /dev/null +++ b/l10n/sk/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 +msgid "Host" +msgstr "" + +#: templates/settings.php:21 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:22 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:22 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:22 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:23 +msgid "User DN" +msgstr "" + +#: templates/settings.php:23 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:24 +msgid "Password" +msgstr "" + +#: templates/settings.php:24 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:25 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:26 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:26 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:26 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:27 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:27 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:27 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 +msgid "Port" +msgstr "" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:38 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:39 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:40 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:40 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:40 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:41 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:62 +msgid "Help" +msgstr "" diff --git a/l10n/sk/user_webdavauth.po b/l10n/sk/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..eb6e13c58c0b8df5ce71710b079c030a8f6d3010 --- /dev/null +++ b/l10n/sk/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index 353a86346f817eda31aa7d2e3264cfd89adef523..a575644e542f1e5a376697c2bce927d67b87c6c1 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/core.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# georg , 2013. # , 2011, 2012. # Marián Hvolka , 2013. # , 2012. @@ -13,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -56,8 +57,9 @@ msgid "No category to add?" msgstr "Žiadna kategória pre pridanie?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Táto kategória už existuje:" +#, php-format +msgid "This category already exists: %s" +msgstr "Kategéria: %s už existuje." #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -161,59 +163,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Nastavenia" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "pred sekundami" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "pred minútou" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "pred {minutes} minútami" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Pred 1 hodinou." -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Pred {hours} hodinami." -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "dnes" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "včera" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "pred {days} dňami" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "minulý mesiac" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Pred {months} mesiacmi." -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "pred mesiacmi" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "minulý rok" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "pred rokmi" @@ -243,8 +245,8 @@ msgid "The object type is not specified." msgstr "Nešpecifikovaný typ objektu." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Chyba" @@ -256,15 +258,15 @@ msgstr "Nešpecifikované meno aplikácie." msgid "The required file {file} is not installed!" msgstr "Požadovaný súbor {file} nie je inštalovaný!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Zdieľaj" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Zdieľané" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Zdieľaj" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Chyba počas zdieľania" @@ -322,7 +324,7 @@ msgstr "Zdieľať cez e-mail:" #: js/share.js:229 msgid "No people found" -msgstr "Užívateľ nenájdený" +msgstr "Používateľ nenájdený" #: js/share.js:256 msgid "Resharing is not allowed" @@ -360,23 +362,23 @@ msgstr "zmazať" msgid "share" msgstr "zdieľať" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Chránené heslom" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Chyba pri odstraňovaní dátumu vypršania platnosti" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Chyba pri nastavení dátumu vypršania platnosti" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Odosielam ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Email odoslaný" @@ -391,7 +393,7 @@ msgstr "Aktualizácia nebola úspešná. Problém nahláste na documentation." +msgstr "Pre informácie, ako správne nastaviť Váš server sa pozrite do dokumentácie." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Vytvoriť administrátorský účet" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Pokročilé" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Priečinok dát" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Nastaviť databázu" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "bude použité" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Hostiteľ databázy" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Heslo databázy" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Meno databázy" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Tabuľkový priestor databázy" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Server databázy" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Dokončiť inštaláciu" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "webové služby pod vašou kontrolou" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Odhlásiť" @@ -578,7 +584,7 @@ msgstr "Prihlásiť sa" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Altrnatívne loginy" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index 27b5897355c793ad5edbc214473919ea4b2c2047..f41d09fc23d40b04e4f4e87afad6e4310eda5413 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/files.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# georg , 2013. # , 2012. # Marián Hvolka , 2013. # , 2012. @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,6 +23,20 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Nie je možné presunúť %s - súbor s týmto menom už existuje" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Nie je možné presunúť %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Nemožno premenovať súbor" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Žiaden súbor nebol odoslaný. Neznáma chyba" @@ -58,62 +73,63 @@ msgid "Failed to write to disk" msgstr "Zápis na disk sa nepodaril" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Nie je k dispozícii dostatok miesta" +msgid "Not enough storage available" +msgstr "Nedostatok dostupného úložného priestoru" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "Neplatný adresár" +msgstr "Neplatný priečinok" #: appinfo/app.php:10 msgid "Files" msgstr "Súbory" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Nezdielať" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Zmazať trvalo" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Odstrániť" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Premenovať" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Čaká sa" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} už existuje" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "nahradiť" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "pomôcť s menom" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "zrušiť" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "prepísaný {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "vrátiť" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "prepísaný {new_name} súborom {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "vykonať zmazanie" @@ -139,78 +155,74 @@ msgstr "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchroniz msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Vaše úložisko je takmer plné ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše sťahovanie sa pripravuje. Ak sú sťahované súbory veľké, môže to chvíľu trvať." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Chyba odosielania" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zavrieť" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Čaká sa" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 súbor sa posiela " -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} súborov odosielaných" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Odosielanie zrušené" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Opustenie stránky zruší práve prebiehajúce odosielanie súboru." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL nemôže byť prázdne" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "Neplatné meno adresára. Používanie mena 'Shared' je vyhradené len pre Owncloud" +msgstr "Neplatné meno priečinka. Používanie mena 'Shared' je vyhradené len pre Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Meno" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Veľkosť" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Upravené" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 priečinok" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} priečinkov" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 súbor" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} súborov" @@ -220,7 +232,7 @@ msgstr "Odoslať" #: templates/admin.php:5 msgid "File handling" -msgstr "Nastavenie správanie k súborom" +msgstr "Nastavenie správania sa k súborom" #: templates/admin.php:7 msgid "Maximum upload size" @@ -232,7 +244,7 @@ msgstr "najväčšie možné:" #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." -msgstr "Vyžadované pre sťahovanie viacerých súborov a adresárov." +msgstr "Vyžadované pre sťahovanie viacerých súborov a priečinkov." #: templates/admin.php:17 msgid "Enable ZIP-download" @@ -267,8 +279,8 @@ msgid "From link" msgstr "Z odkazu" #: templates/index.php:40 -msgid "Trash" -msgstr "Kôš" +msgid "Deleted files" +msgstr "Zmazané súbory" #: templates/index.php:46 msgid "Cancel upload" @@ -282,6 +294,10 @@ msgstr "Žiadny súbor. Nahrajte niečo!" msgid "Download" msgstr "Stiahnuť" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Nezdielať" + #: templates/index.php:105 msgid "Upload too large" msgstr "Odosielaný súbor je príliš veľký" @@ -298,7 +314,7 @@ msgstr "Čakajte, súbory sú prehľadávané." #: templates/index.php:115 msgid "Current scanning" -msgstr "Práve prehliadané" +msgstr "Práve prezerané" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." diff --git a/l10n/sk_SK/files_encryption.po b/l10n/sk_SK/files_encryption.po index 7977f0fe3e15d1d0abd1a7dece6f5a301c999b26..232ee99f2fe6e513118dcd58eea9e0934d11977b 100644 --- a/l10n/sk_SK/files_encryption.po +++ b/l10n/sk_SK/files_encryption.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# georg , 2013. # , 2012. # Marián Hvolka , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 13:10+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,43 +20,21 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Prosím, prejdite do svojho klienta ownCloud a zmente šifrovacie heslo na dokončenie konverzie." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "prepnuté na šifrovanie prostredníctvom klienta" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Zmeniť šifrovacie heslo na prihlasovacie" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Skontrolujte si heslo a skúste to znovu." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Nie je možné zmeniť šifrovacie heslo na prihlasovacie" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Šifrovanie" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Šifrovanie súborov nastavené." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Uvedené typy súborov nebudú šifrované:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Nešifrovať uvedené typy súborov" #: templates/settings.php:12 msgid "None" diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po index 56de6320ffe32db3415885eeceb1f56f61464ded..91085acb82ab552a6585faf221abb8df1680110d 100644 --- a/l10n/sk_SK/files_external.po +++ b/l10n/sk_SK/files_external.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-31 00:27+0100\n" -"PO-Revision-Date: 2013-01-30 06:20+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -28,11 +28,11 @@ msgstr "Prístup povolený" msgid "Error configuring Dropbox storage" msgstr "Chyba pri konfigurácii úložiska Dropbox" -#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:41 +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" msgstr "Povoliť prístup" -#: js/dropbox.js:73 js/google.js:73 +#: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" msgstr "Vyplňte všetky vyžadované kolónky" @@ -40,17 +40,17 @@ msgstr "Vyplňte všetky vyžadované kolónky" msgid "Please provide a valid Dropbox app key and secret." msgstr "Zadajte platný kľúč aplikácie a heslo Dropbox" -#: js/google.js:26 js/google.js:74 js/google.js:79 +#: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "Chyba pri konfigurácii úložiska Google drive" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Upozornenie: \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje." -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -91,7 +91,7 @@ msgstr "Žiadne nastavené" #: templates/settings.php:86 msgid "All Users" -msgstr "Všetci užívatelia" +msgstr "Všetci používatelia" #: templates/settings.php:87 msgid "Groups" @@ -99,7 +99,7 @@ msgstr "Skupiny" #: templates/settings.php:95 msgid "Users" -msgstr "Užívatelia" +msgstr "Používatelia" #: templates/settings.php:108 templates/settings.php:109 #: templates/settings.php:144 templates/settings.php:145 @@ -112,12 +112,12 @@ msgstr "Povoliť externé úložisko" #: templates/settings.php:125 msgid "Allow users to mount their own external storage" -msgstr "Povoliť užívateľom pripojiť ich vlastné externé úložisko" +msgstr "Povoliť používateľom pripojiť ich vlastné externé úložisko" #: templates/settings.php:136 msgid "SSL root certificates" msgstr "Koreňové SSL certifikáty" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importovať koreňový certifikát" diff --git a/l10n/sk_SK/files_trashbin.po b/l10n/sk_SK/files_trashbin.po index bc6bc046f13f90180133fd1b64411bf0a1207007..eac6d4eb70734f2a20ae2dfb6c99c8d156750382 100644 --- a/l10n/sk_SK/files_trashbin.po +++ b/l10n/sk_SK/files_trashbin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# georg , 2013. # Marián Hvolka , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -18,35 +19,49 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Nemožno zmazať %s navždy" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Nemožno obnoviť %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "vykonať obnovu" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "trvalo zmazať súbor" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Zmazať trvalo" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Meno" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Zmazané" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 priečinok" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} priečinkov" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 súbor" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} súborov" @@ -57,3 +72,7 @@ msgstr "Žiadny obsah. Kôš je prázdny!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Obnoviť" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Zmazať" diff --git a/l10n/sk_SK/files_versions.po b/l10n/sk_SK/files_versions.po index 32d3549ff908a19c08907f273cb679100b8b01e0..5cf9366ed688935fdaa85b654e0b01541a530665 100644 --- a/l10n/sk_SK/files_versions.po +++ b/l10n/sk_SK/files_versions.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# georg , 2013. +# Marián Hvolka , 2013. # , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 13:10+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +20,45 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Nemožno obnoviť: %s" + +#: history.php:40 +msgid "success" +msgstr "úspech" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Súbor %s bol obnovený na verziu %s" + +#: history.php:49 +msgid "failure" +msgstr "chyba" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Súbor %s nemohol byť obnovený na verziu %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Nie sú dostupné žiadne staršie verzie" + +#: history.php:73 +msgid "No path specified" +msgstr "Nevybrali ste cestu" + #: js/versions.js:16 msgid "History" msgstr "História" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Obnovte súbor do predošlej verzie kliknutím na tlačítko obnoviť" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Vytváranie verzií súborov" diff --git a/l10n/sk_SK/lib.po b/l10n/sk_SK/lib.po index 693d9535e45eec212ed099c2bd70231c482a741d..cc7d3f66f751719bab8a62fc4ad737d3650cb2f5 100644 --- a/l10n/sk_SK/lib.po +++ b/l10n/sk_SK/lib.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-30 00:23+0100\n" -"PO-Revision-Date: 2013-01-29 16:07+0000\n" -"Last-Translator: mhh \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,47 +21,47 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pomoc" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Osobné" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Nastavenia" -#: app.php:318 +#: app.php:385 msgid "Users" -msgstr "Užívatelia" +msgstr "Používatelia" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Aplikácie" -#: app.php:327 +#: app.php:406 msgid "Admin" -msgstr "Správca" +msgstr "Administrátor" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Sťahovanie súborov ZIP je vypnuté." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Súbory musia byť nahrávané jeden za druhým." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Späť na súbory" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." -msgstr "Zvolené súbory sú príliž veľké na vygenerovanie zip súboru." +msgstr "Zvolené súbory sú príliš veľké na vygenerovanie zip súboru." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "nedá sa zistiť" @@ -89,6 +89,108 @@ msgstr "Text" msgid "Images" msgstr "Obrázky" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Zadajte používateľské meno administrátora." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Zadajte heslo administrátora." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Zadajte priečinok pre dáta." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "Zadajte používateľské meno %s databázy.." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "Zadajte názov databázy pre %s databázy." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "V názve databázy %s nemôžete používať bodky" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "Zadajte názov počítača s databázou %s." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Musíte zadať jestvujúci účet alebo administrátora." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "Používateľské meno a/alebo heslo pre MySQL databázu je neplatné" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Chyba DB: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Podozrivý príkaz bol: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Používateľ '%s'@'localhost' už v MySQL existuje." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Zahodiť používateľa z MySQL." + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Používateľ '%s'@'%%' už v MySQL existuje" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Zahodiť používateľa z MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Prosím skontrolujte inštalačnú príručku." + #: template.php:113 msgid "seconds ago" msgstr "pred sekundami" @@ -141,16 +243,16 @@ msgstr "minulý rok" msgid "years ago" msgstr "pred rokmi" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" -msgstr "%s je dostupné. Získať viac informácií" +msgstr "%s je dostupné. Získať pre viac informácií" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "aktuálny" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "sledovanie aktualizácií je vypnuté" diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po index 3ba63102905c365b25ca407cc37009081b008d28..7100d7082d921d4bb8b5edf22bdf7613cd8b0a9a 100644 --- a/l10n/sk_SK/settings.po +++ b/l10n/sk_SK/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -27,14 +27,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Nie je možné nahrať zoznam z App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Chyba pri autentifikácii" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Nemožno zmeniť zobrazované meno" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -76,17 +76,17 @@ msgstr "Neplatná požiadavka" msgid "Admins can't remove themself from the admin group" msgstr "Administrátori nesmú odstrániť sami seba zo skupiny admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" -msgstr "Nie je možné pridať užívateľa do skupiny %s" +msgstr "Nie je možné pridať používateľa do skupiny %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Nie je možné odstrániť používateľa zo skupiny %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Nemožno aktualizovať aplikáciu." @@ -112,7 +112,7 @@ msgstr "Aktualizujem..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "hyba pri aktualizácii aplikácie" +msgstr "chyba pri aktualizácii aplikácie" #: js/apps.js:87 msgid "Error" @@ -122,59 +122,265 @@ msgstr "Chyba" msgid "Updated" msgstr "Aktualizované" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Ukladám..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "zmazané" + +#: js/users.js:30 +msgid "undo" +msgstr "vrátiť" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Nemožno odobrať používateľa" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Skupiny" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Správca skupiny" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Odstrániť" + +#: js/users.js:191 +msgid "add group" +msgstr "pridať skupinu" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Musíte zadať platné používateľské meno" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Chyba pri vytváraní používateľa" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Musíte zadať platné heslo" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Slovensky" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Bezpečnostné varovanie" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Váš priečinok s dátami a Vaše súbory sú pravdepodobne dostupné z internetu. .htaccess súbor dodávaný s inštaláciou ownCloud nespĺňa úlohu. Dôrazne Vám doporučujeme nakonfigurovať webserver takým spôsobom, aby dáta v priečinku neboli verejné, alebo presuňte dáta mimo štruktúry priečinkov webservera." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Nastavenia oznámení" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Prosím skontrolujte inštalačnú príručku." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Chýba modul 'fileinfo'" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "Chýba modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania mime-typu." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Lokalizácia nefunguje" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Pripojenie na internet nefunguje" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Tento server ownCloud nemá funkčné pripojenie k internetu. To znamená, že niektoré z funkcií, ako je pripojenie externého úložiska, oznámenia o aktualizáciách či inštalácia aplikácií tretích strán nefungujú. Prístup k súborom zo vzdialených miest a odosielanie oznamovacích e-mailov tiež nemusí fungovať. Odporúčame pripojiť tento server k internetu, ak chcete využívať všetky vlastnosti ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Vykonať jednu úlohu s každým načítaní stránky" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php je registrovaná u služby webcron. Zavolá cron.php stránku v koreňovom priečinku owncloud raz za minútu cez protokol HTTP." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Používať systémovú službu cron. Zavolať cron.php v priečinku owncloud cez systémovú úlohu raz za minútu" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Zdieľanie" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Povoliť API zdieľania" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Povoliť aplikáciám používať API na zdieľanie" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Povoliť odkazy" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Povoliť používateľom zdieľať položky pre verejnosť cez odkazy" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Povoliť zdieľanie ďalej" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Povoliť používateľom ďalej zdieľať zdieľané položky" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Povoliť používateľom zdieľať s kýmkoľvek" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Povoliť používateľom zdieľať len s používateľmi v ich skupinách" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Zabezpečenie" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Vynútiť HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Vynúti pripojovanie klientov ownCloud cez šifrované pripojenie." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Pripojte sa k tejto inštancii ownCloud cez HTTPS pre povolenie alebo zakázanie vynútenia SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Záznam" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Úroveň záznamu" + +#: templates/admin.php:223 +msgid "More" +msgstr "Viac" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Verzia" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Vyvinuté komunitou ownCloud,zdrojový kód je licencovaný pod AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Pridať vašu aplikáciu" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Viac aplikácií" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Vyberte aplikáciu" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Pozrite si stránku aplikácií na apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licencované " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Aktualizovať" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Príručka používateľa" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" -msgstr "Príručka správcu" +msgstr "Príručka administrátora" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Online príručka" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Fórum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Komerčná podpora" @@ -183,116 +389,86 @@ msgstr "Komerčná podpora" msgid "You have used %s of the available %s" msgstr "Použili ste %s z %s dostupných " -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klienti" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Stiahnuť desktopového klienta" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Stiahnuť Android klienta" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Stiahnuť iOS klienta" +msgid "Get the apps to sync your files" +msgstr "Získať aplikácie na synchronizáciu Vašich súborov" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Znovu zobraziť sprievodcu prvým spustením" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Heslo" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Heslo bolo zmenené" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Nie je možné zmeniť vaše heslo" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Aktuálne heslo" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nové heslo" -#: templates/personal.php:28 -msgid "show" -msgstr "zobraziť" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Zmeniť heslo" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Zobrazované meno" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Vaše zobrazované meno bolo zmenené" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Nemožno zmeniť Vaše zobrazované meno" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Zmeniť zobrazované meno" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Vaša emailová adresa" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Vyplňte emailovú adresu pre aktivovanie obnovy hesla" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Jazyk" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Pomôcť s prekladom" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Použite túto adresu pre pripojenie vášho ownCloud k súborovému správcovi" -#: templates/personal.php:85 -msgid "Version" -msgstr "Verzia" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Vyvinuté komunitou ownCloud,zdrojový kód je licencovaný pod AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Prihlasovacie meno" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Skupiny" - #: templates/users.php:32 msgid "Create" msgstr "Vytvoriť" @@ -301,34 +477,26 @@ msgstr "Vytvoriť" msgid "Default Storage" msgstr "Predvolené úložisko" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Nelimitované" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Iné" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Správca skupiny" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Úložisko" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "zmeniť zobrazované meno" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "nastaviť nové heslo" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Predvolené" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Odstrániť" diff --git a/l10n/sk_SK/user_ldap.po b/l10n/sk_SK/user_ldap.po index ab48e3110ab7bcbcb8ae5e974b71f29fd2bda77a..6075f01a7d945159153f7ba09cc54a28c0a69f3f 100644 --- a/l10n/sk_SK/user_ldap.po +++ b/l10n/sk_SK/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-05 00:19+0100\n" -"PO-Revision-Date: 2013-02-04 20:00+0000\n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 13:20+0000\n" "Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -76,13 +76,13 @@ msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal." +msgstr "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte administrátora systému aby jednu z nich zakázal." #: templates/settings.php:11 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte správcu systému aby ho nainštaloval." +msgstr "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval." #: templates/settings.php:15 msgid "Server configuration" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Použi TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Nepoužívajte pre pripojenie SSL, pripojenie zlyhá." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Nepoužívajte pre pripojenie LDAPS, zlyhá." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -290,7 +290,7 @@ msgstr "Atribúty vyhľadávania skupín" #: templates/settings.php:51 msgid "Group-Member association" -msgstr "Asociácia člena skupiny" +msgstr "Priradenie člena skupiny" #: templates/settings.php:53 msgid "Special Attributes" diff --git a/l10n/sl/core.po b/l10n/sl/core.po index d6247a7bb7f8b2483e55d5eeba6167ab1349afdf..3237325869e49104e6b47b6f7cddd2ed89525cc1 100644 --- a/l10n/sl/core.po +++ b/l10n/sl/core.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -54,8 +54,9 @@ msgid "No category to add?" msgstr "Ni kategorije za dodajanje?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ta kategorija že obstaja:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -159,59 +160,59 @@ msgstr "november" msgid "December" msgstr "december" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Nastavitve" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "pred nekaj sekundami" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "pred minuto" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "pred {minutes} minutami" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "pred 1 uro" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "pred {hours} urami" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "danes" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "včeraj" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "pred {days} dnevi" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "zadnji mesec" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "pred {months} meseci" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "mesecev nazaj" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "lansko leto" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "let nazaj" @@ -241,8 +242,8 @@ msgid "The object type is not specified." msgstr "Vrsta predmeta ni podana." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Napaka" @@ -254,15 +255,15 @@ msgstr "Ime aplikacije ni podano." msgid "The required file {file} is not installed!" msgstr "Zahtevana datoteka {file} ni nameščena!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Souporaba" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Souporaba" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Napaka med souporabo" @@ -358,23 +359,23 @@ msgstr "izbriše" msgid "share" msgstr "določi souporabo" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Zaščiteno z geslom" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Napaka brisanja datuma preteka" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Napaka med nastavljanjem datuma preteka" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Pošiljam ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-pošta je bila poslana" @@ -389,7 +390,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Ponastavitev gesla ownCloud" @@ -470,7 +471,7 @@ msgstr "Uredi kategorije" msgid "Add" msgstr "Dodaj" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Varnostno opozorilo" @@ -480,71 +481,75 @@ msgid "" "OpenSSL extension." msgstr "Na voljo ni varnega generatorja naključnih števil. Prosimo, če omogočite PHP OpenSSL razširitev." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Brez varnega generatorja naključnih števil lahko napadalec napove žetone za ponastavitev gesla, kar mu omogoča, da prevzame vaš ​​račun." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Trenutno je dostop do podatkovne mape in datotek najverjetneje omogočen vsem uporabnikom na omrežju. Datoteka .htaccess, vključena v ownCloud namreč ni omogočena. Močno priporočamo nastavitev spletnega strežnika tako, da mapa podatkov ne bo javno dostopna ali pa, da jo prestavite ven iz korenske mape spletnega strežnika." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Ustvari skrbniški račun" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Napredne možnosti" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Mapa s podatki" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Nastavi podatkovno zbirko" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "bo uporabljen" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Uporabnik zbirke" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Geslo podatkovne zbirke" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Ime podatkovne zbirke" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Razpredelnica podatkovne zbirke" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Gostitelj podatkovne zbirke" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Dokončaj namestitev" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "spletne storitve pod vašim nadzorom" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Odjava" diff --git a/l10n/sl/files.po b/l10n/sl/files.po index 14da2bd6e290f5a28cc4819b47e9c74cfa1397d0..87d8f5e31f67409cd610e8d0d73fbb2edd9dd3bc 100644 --- a/l10n/sl/files.po +++ b/l10n/sl/files.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,20 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nobena datoteka ni naložena. Neznana napaka." @@ -57,7 +71,7 @@ msgid "Failed to write to disk" msgstr "Pisanje na disk je spodletelo" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -68,51 +82,52 @@ msgstr "" msgid "Files" msgstr "Datoteke" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Odstrani iz souporabe" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Izbriši" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Preimenuj" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "V čakanju ..." + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} že obstaja" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "zamenjaj" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "predlagaj ime" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "prekliči" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "zamenjano je ime {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "razveljavi" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "zamenjano ime {new_name} z imenom {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -138,78 +153,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Napaka med nalaganjem" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zapri" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "V čakanju ..." - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "Pošiljanje 1 datoteke" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "nalagam {count} datotek" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Pošiljanje je preklicano." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "Naslov URL ne sme biti prazen." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ime" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Velikost" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Spremenjeno" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 mapa" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} map" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 datoteka" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} datotek" @@ -266,7 +277,7 @@ msgid "From link" msgstr "Iz povezave" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -281,6 +292,10 @@ msgstr "Tukaj ni ničesar. Naložite kaj!" msgid "Download" msgstr "Prejmi" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Odstrani iz souporabe" + #: templates/index.php:105 msgid "Upload too large" msgstr "Nalaganje ni mogoče, ker je preveliko" diff --git a/l10n/sl/files_encryption.po b/l10n/sl/files_encryption.po index da59ca9a4767b0aeb1795658c2b2478b13157ac3..86d2a0d7d36ea951441dff37aa414ff1fb506623 100644 --- a/l10n/sl/files_encryption.po +++ b/l10n/sl/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Šifriranje" diff --git a/l10n/sl/files_external.po b/l10n/sl/files_external.po index f20fb0bad26abc1766d7b10fce921c8fbcb5591c..26f14a0bcfa0ef935c937170df30514b58698798 100644 --- a/l10n/sl/files_external.po +++ b/l10n/sl/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-16 00:11+0100\n" -"PO-Revision-Date: 2012-12-15 16:43+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Peter Peroša \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Vpišite veljaven ključ programa in kodo za Dropbox" msgid "Error configuring Google Drive storage" msgstr "Napaka nastavljanja shrambe Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Opozorilo: \"smbclient\" ni nameščen. Priklapljanje CIFS/SMB pogonov ni mogoče. Prosimo, prosite vašega skrbnika, če ga namesti." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Uporabniki" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Izbriši" @@ -113,10 +113,10 @@ msgstr "Omogoči uporabo zunanje podatkovne shrambe za uporabnike" msgid "Allow users to mount their own external storage" msgstr "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Korenska potrdila SSL" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Uvozi korensko potrdilo" diff --git a/l10n/sl/files_trashbin.po b/l10n/sl/files_trashbin.po index 7e459a73913c427578fe9e001f32fa213dcd2b26..d5385c3971707bf3a305ad45b6c881f684d9ca0e 100644 --- a/l10n/sl/files_trashbin.po +++ b/l10n/sl/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Ime" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mapa" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} map" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 datoteka" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} datotek" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Izbriši" diff --git a/l10n/sl/files_versions.po b/l10n/sl/files_versions.po index 1a4d2854d91db2f5baff937c0a6d4d8c7971ffa4..dad9f10280ea231dea19be416aa109c214b17e4a 100644 --- a/l10n/sl/files_versions.po +++ b/l10n/sl/files_versions.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -19,10 +19,45 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Zgodovina" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Sledenje različicam" diff --git a/l10n/sl/lib.po b/l10n/sl/lib.po index 4af090e968d26dc6e957820ba680deb3ed3cca4e..620819da9ffde505c4c0765f08b86799dfedf208 100644 --- a/l10n/sl/lib.po +++ b/l10n/sl/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pomoč" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Osebno" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Nastavitve" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Uporabniki" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Programi" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Skrbništvo" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Prejem datotek ZIP je onemogočen." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Datoteke je mogoče prejeti le posamič." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Nazaj na datoteke" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Izbrane datoteke so prevelike za ustvarjanje datoteke arhiva zip." @@ -87,6 +87,108 @@ msgstr "Besedilo" msgid "Images" msgstr "Slike" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "pred nekaj sekundami" @@ -139,16 +241,16 @@ msgstr "lani" msgid "years ago" msgstr "pred nekaj leti" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s je na voljo. Več podrobnosti." -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "posodobljeno" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "preverjanje za posodobitve je onemogočeno" diff --git a/l10n/sl/settings.po b/l10n/sl/settings.po index 9046223ab32844b3d6b97c8be58284153d91b222..dc3b7c83f2ef365b1815c2f02e16a63d3d88efde 100644 --- a/l10n/sl/settings.po +++ b/l10n/sl/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -25,12 +25,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Ni mogoče naložiti seznama iz App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Napaka overitve" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -74,17 +74,17 @@ msgstr "Neveljavna zahteva" msgid "Admins can't remove themself from the admin group" msgstr "Administratorji sebe ne morejo odstraniti iz skupine admin" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Uporabnika ni mogoče dodati k skupini %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Uporabnika ni mogoče odstraniti iz skupine %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -120,59 +120,265 @@ msgstr "Napaka" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Poteka shranjevanje ..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "izbrisano" + +#: js/users.js:30 +msgid "undo" +msgstr "razveljavi" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Skupine" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Skrbnik skupine" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Izbriši" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__ime_jezika__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Varnostno opozorilo" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Trenutno je dostop do podatkovne mape in datotek najverjetneje omogočen vsem uporabnikom na omrežju. Datoteka .htaccess, vključena v ownCloud namreč ni omogočena. Močno priporočamo nastavitev spletnega strežnika tako, da mapa podatkov ne bo javno dostopna ali pa, da jo prestavite ven iz korenske mape spletnega strežnika." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Več" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Različica" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Programski paket razvija skupnost ownCloud. Izvorna koda je objavljena pod pogoji dovoljenja AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Dodaj program" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Več programov" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Izberite program" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Obiščite spletno stran programa na apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-z dovoljenjem s strani " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Posodobi" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Uporabniška dokumentacija" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administratorjeva dokumentacija" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Spletna dokumentacija" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Sistem za sledenje napakam" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Komercialna podpora" @@ -181,116 +387,86 @@ msgstr "Komercialna podpora" msgid "You have used %s of the available %s" msgstr "Uporabljate %s od razpoložljivih %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Stranka" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Prenesi namizne odjemalce" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Prenesi Android odjemalec" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Prenesi iOS odjemalec" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Geslo" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Vaše geslo je spremenjeno" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Gesla ni mogoče spremeniti." -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Trenutno geslo" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Novo geslo" -#: templates/personal.php:28 -msgid "show" -msgstr "pokaži" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Spremeni geslo" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Elektronska pošta" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Vaš elektronski poštni naslov" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Vpišite vaš elektronski naslov in s tem omogočite obnovitev gesla" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Jezik" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Pomagajte pri prevajanju" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Uporabite ta naslov za povezavo do ownCloud v vašem upravljalniku datotek." -#: templates/personal.php:85 -msgid "Version" -msgstr "Različica" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Programski paket razvija skupnost ownCloud. Izvorna koda je objavljena pod pogoji dovoljenja AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Skupine" - #: templates/users.php:32 msgid "Create" msgstr "Ustvari" @@ -299,34 +475,26 @@ msgstr "Ustvari" msgid "Default Storage" msgstr "Privzeta shramba" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Neomejeno" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Drugo" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Skrbnik skupine" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Shramba" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Privzeto" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Izbriši" diff --git a/l10n/sl/user_ldap.po b/l10n/sl/user_ldap.po index d644dac5e5632fca241ef804a78f8918755d4d73..c3b92afff382b98157cf1b2e496497c1cfc7cd4f 100644 --- a/l10n/sl/user_ldap.po +++ b/l10n/sl/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "Uporabi TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Uporaba SSL za povezave bo spodletela." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/sr/core.po b/l10n/sr/core.po index ff68075f6f7b459b246918c5d7ae9773da3239ff..1c71933f89d473b1ef184fbfde2fce7044ef71d1 100644 --- a/l10n/sr/core.po +++ b/l10n/sr/core.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -53,8 +53,9 @@ msgid "No category to add?" msgstr "Додати још неку категорију?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Категорија већ постоји:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -158,59 +159,59 @@ msgstr "Новембар" msgid "December" msgstr "Децембар" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Подешавања" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "пре неколико секунди" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "пре 1 минут" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "пре {minutes} минута" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "Пре једног сата" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "Пре {hours} сата (сати)" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "данас" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "јуче" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "пре {days} дана" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "прошлог месеца" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "Пре {months} месеца (месеци)" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "месеци раније" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "прошле године" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "година раније" @@ -240,8 +241,8 @@ msgid "The object type is not specified." msgstr "Врста објекта није подешена." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Грешка" @@ -253,15 +254,15 @@ msgstr "Име програма није унето." msgid "The required file {file} is not installed!" msgstr "Потребна датотека {file} није инсталирана." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Дељење" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Дељење" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Грешка у дељењу" @@ -357,23 +358,23 @@ msgstr "обриши" msgid "share" msgstr "подели" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Заштићено лозинком" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Грешка код поништавања датума истека" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Грешка код постављања датума истека" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Шаљем..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Порука је послата" @@ -388,7 +389,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "Поништавање лозинке за ownCloud" @@ -469,7 +470,7 @@ msgstr "Измени категорије" msgid "Add" msgstr "Додај" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Сигурносно упозорење" @@ -479,71 +480,75 @@ msgid "" "OpenSSL extension." msgstr "Поуздан генератор случајних бројева није доступан, предлажемо да укључите PHP проширење OpenSSL." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Без поузданог генератора случајнох бројева нападач лако може предвидети лозинку за поништавање кључа шифровања и отети вам налог." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Тренутно су ваши подаци и датотеке доступне са интернета. Датотека .htaccess коју је обезбедио пакет ownCloud не функционише. Саветујемо вам да подесите веб сервер тако да директоријум са подацима не буде изложен или да га преместите изван коренског директоријума веб сервера." +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Направи административни налог" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Напредно" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Фацикла података" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Подешавање базе" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "ће бити коришћен" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Корисник базе" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Лозинка базе" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Име базе" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Радни простор базе података" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Домаћин базе" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Заврши подешавање" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "веб сервиси под контролом" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Одјава" diff --git a/l10n/sr/files.po b/l10n/sr/files.po index 2a3bb8293473f15662052c09480b4c9a9403e0fe..9e1808990480e84575246b8345fed65dd5c64c52 100644 --- a/l10n/sr/files.po +++ b/l10n/sr/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,20 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -56,7 +70,7 @@ msgid "Failed to write to disk" msgstr "Не могу да пишем на диск" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -67,51 +81,52 @@ msgstr "" msgid "Files" msgstr "Датотеке" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Укини дељење" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Обриши" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Преименуј" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "На чекању" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} већ постоји" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "замени" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "предложи назив" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "откажи" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "замењено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "опозови" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "замењено {new_name} са {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -137,78 +152,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Грешка при отпремању" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Затвори" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "На чекању" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "Отпремам 1 датотеку" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "Отпремам {count} датотеке/а" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Отпремање је прекинуто." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Назив" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Величина" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Измењено" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 фасцикла" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} фасцикле/и" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 датотека" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} датотеке/а" @@ -265,7 +276,7 @@ msgid "From link" msgstr "Са везе" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -280,6 +291,10 @@ msgstr "Овде нема ничег. Отпремите нешто!" msgid "Download" msgstr "Преузми" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Укини дељење" + #: templates/index.php:105 msgid "Upload too large" msgstr "Датотека је превелика" diff --git a/l10n/sr/files_encryption.po b/l10n/sr/files_encryption.po index 4578d7473276ee878b8be71ed59cd6a7b1b5a32c..4f38bb711f920edeb8ec52ab355e7f830ebcc6a3 100644 --- a/l10n/sr/files_encryption.po +++ b/l10n/sr/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Шифровање" diff --git a/l10n/sr/files_external.po b/l10n/sr/files_external.po index 867ac5a97ae014b3d2317c04e338d6876af60363..76a7547a145f2c266a1d2da7770e0e6831236f0b 100644 --- a/l10n/sr/files_external.po +++ b/l10n/sr/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Корисници" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Обриши" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/sr/files_trashbin.po b/l10n/sr/files_trashbin.po index fb4b9633bcb6b5be420f56e503e0bb9037f45597..17776189344708b9cc689ecb831b41ac975b25b8 100644 --- a/l10n/sr/files_trashbin.po +++ b/l10n/sr/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "врати у претходно стање" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Име" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Обрисано" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 фасцикла" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} фасцикле/и" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 датотека" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} датотеке/а" @@ -57,3 +71,7 @@ msgstr "Овде нема ништа. Корпа за отпатке је пра #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Врати" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Обриши" diff --git a/l10n/sr/files_versions.po b/l10n/sr/files_versions.po index 84371b65544bddf14531934b8750f0ed67eec938..74719197c5f64636cc76d5cf49066bf08fb3d063 100644 --- a/l10n/sr/files_versions.po +++ b/l10n/sr/files_versions.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-02 00:06+0100\n" -"PO-Revision-Date: 2013-02-01 14:10+0000\n" -"Last-Translator: Rancher \n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "Историја" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Прављење верзија датотека" diff --git a/l10n/sr/lib.po b/l10n/sr/lib.po index 5f6cad797ab1805d6d54b0aa343f00e871becd57..4b7461a06db9217f005ef0f63189e0eb40a39e75 100644 --- a/l10n/sr/lib.po +++ b/l10n/sr/lib.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 17:30+0000\n" -"Last-Translator: Rancher \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,27 +20,27 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:313 +#: app.php:349 msgid "Help" msgstr "Помоћ" -#: app.php:320 +#: app.php:362 msgid "Personal" msgstr "Лично" -#: app.php:325 +#: app.php:373 msgid "Settings" msgstr "Поставке" -#: app.php:330 +#: app.php:385 msgid "Users" msgstr "Корисници" -#: app.php:337 +#: app.php:398 msgid "Apps" msgstr "Апликације" -#: app.php:339 +#: app.php:406 msgid "Admin" msgstr "Администратор" @@ -52,15 +52,15 @@ msgstr "Преузимање ZIP-а је искључено." msgid "Files need to be downloaded one by one." msgstr "Датотеке морате преузимати једну по једну." -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Назад на датотеке" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Изабране датотеке су превелике да бисте направили ZIP датотеку." -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "није одређено" @@ -88,6 +88,108 @@ msgstr "Текст" msgid "Images" msgstr "Слике" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "пре неколико секунди" @@ -140,16 +242,16 @@ msgstr "прошле године" msgid "years ago" msgstr "година раније" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s је доступна. Погледајте више информација." -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "је ажурна" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "провера ажурирања је онемогућена" diff --git a/l10n/sr/settings.po b/l10n/sr/settings.po index 57f48decd5797afb26e177e6b12fe948bd506e26..6e248a0cdde39e3d018f4eb2a6485096bf381b97 100644 --- a/l10n/sr/settings.po +++ b/l10n/sr/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Грешка приликом учитавања списка из Складишта Програма" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Грешка при аутентификацији" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "Неисправан захтев" msgid "Admins can't remove themself from the admin group" msgstr "Управници не могу себе уклонити из админ групе" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Не могу да додам корисника у групу %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Не могу да уклоним корисника из групе %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "Грешка" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Чување у току..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "опозови" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Групе" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Управник групе" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Обриши" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Сигурносно упозорење" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Тренутно су ваши подаци и датотеке доступне са интернета. Датотека .htaccess коју је обезбедио пакет ownCloud не функционише. Саветујемо вам да подесите веб сервер тако да директоријум са подацима не буде изложен или да га преместите изван коренског директоријума веб сервера." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Развијају Оунклауд (ownCloud) заједница, изворни код је издат под АГПЛ лиценцом." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Додајте ваш програм" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Више програма" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Изаберите програм" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Погледајте страницу са програмима на apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-лиценцирао " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Ажурирај" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -179,116 +385,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "Искористили сте %s од дозвољених %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Клијенти" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "" - #: templates/personal.php:15 -msgid "Download iOS Client" +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Поново прикажи чаробњак за прво покретање" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Лозинка" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Лозинка је промењена" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Не могу да изменим вашу лозинку" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Тренутна лозинка" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Нова лозинка" -#: templates/personal.php:28 -msgid "show" -msgstr "прикажи" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Измени лозинку" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Е-пошта" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Ваша адреса е-поште" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Ун" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Језик" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr " Помозите у превођењу" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Развијају Оунклауд (ownCloud) заједница, изворни код је издат под АГПЛ лиценцом." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Групе" - #: templates/users.php:32 msgid "Create" msgstr "Направи" @@ -297,34 +473,26 @@ msgstr "Направи" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Друго" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Управник групе" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Обриши" diff --git a/l10n/sr/user_ldap.po b/l10n/sr/user_ldap.po index 138ac0e03ff785ffb520a484fde63ed6eaffdad3..28760cfceb4a7f7668cc6af3e0d59f5af98913f2 100644 --- a/l10n/sr/user_ldap.po +++ b/l10n/sr/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 20:40+0000\n" -"Last-Translator: Rancher \n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "Користи TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Не користите за SSL везе јер неће радити." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/sr@latin/core.po b/l10n/sr@latin/core.po index 57d7af27d1724d259dd7c828c3f69719698b6a64..dea4d27d0675f53c961e368805242db802897a91 100644 --- a/l10n/sr@latin/core.po +++ b/l10n/sr@latin/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -51,7 +51,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -156,59 +157,59 @@ msgstr "Novembar" msgid "December" msgstr "Decembar" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "Podešavanja" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -467,7 +468,7 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "Napravi administrativni nalog" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Napredno" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Facikla podataka" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Podešavanje baze" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "će biti korišćen" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Korisnik baze" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Lozinka baze" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Ime baze" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Domaćin baze" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Završi podešavanje" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Odjava" diff --git a/l10n/sr@latin/files.po b/l10n/sr@latin/files.po index 1b5ac038d1b6791868d3476dd023cbe6c8093162..124cf95756bfd80a6cc2e73dceae48ab6b54db2d 100644 --- a/l10n/sr@latin/files.po +++ b/l10n/sr@latin/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "Fajlovi" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Obriši" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Zatvori" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ime" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Veličina" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Zadnja izmena" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "" @@ -263,7 +274,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "Ovde nema ničeg. Pošaljite nešto!" msgid "Download" msgstr "Preuzmi" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "Pošiljka je prevelika" diff --git a/l10n/sr@latin/files_encryption.po b/l10n/sr@latin/files_encryption.po index 55b2d059ad05fa355a5518aef488504cdafde3e5..a34c90f6c0de4dcc6d561c436af8fbebdf0cb94e 100644 --- a/l10n/sr@latin/files_encryption.po +++ b/l10n/sr@latin/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/sr@latin/files_external.po b/l10n/sr@latin/files_external.po index 1952c7f947495ed26c28db106c767399731cea45..c4764b3a3628705a2e51a86ae71b4f74bb7cbcb7 100644 --- a/l10n/sr@latin/files_external.po +++ b/l10n/sr@latin/files_external.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -99,7 +99,7 @@ msgid "Users" msgstr "Korisnici" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Obriši" @@ -111,10 +111,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/sr@latin/files_trashbin.po b/l10n/sr@latin/files_trashbin.po index da3cf064a601f29a87558f6dcdf927ff33a1b564..46d256675abaf2ec5d9d09f70cd9f746a7c71404 100644 --- a/l10n/sr@latin/files_trashbin.po +++ b/l10n/sr@latin/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Ime" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Obriši" diff --git a/l10n/sr@latin/files_versions.po b/l10n/sr@latin/files_versions.po index a35cd43237b53a3f32bf749d70a84f3ca571ffb8..d049a5e55bd167aab3516b9553a539adfd767e2b 100644 --- a/l10n/sr@latin/files_versions.po +++ b/l10n/sr@latin/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/sr@latin/lib.po b/l10n/sr@latin/lib.po index 264724c09118aac7e113bc74708a5fc69cad28ff..f5d0fd7b3f791e037c2e2c073c8a7a10513cf3ac 100644 --- a/l10n/sr@latin/lib.po +++ b/l10n/sr@latin/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Pomoć" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Lično" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Podešavanja" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Korisnici" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "Tekst" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/sr@latin/settings.po b/l10n/sr@latin/settings.po index f5f05886b64ecd368594c68c308f0b20aa75469d..02323fa5e0556f5140fdfa019159b982ed8d070e 100644 --- a/l10n/sr@latin/settings.po +++ b/l10n/sr@latin/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Greška pri autentifikaciji" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "Neispravan zahtev" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupe" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Obriši" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Izaberite program" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,116 +384,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Klijenti" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Lozinka" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Ne mogu da izmenim vašu lozinku" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Trenutna lozinka" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nova lozinka" -#: templates/personal.php:28 -msgid "show" -msgstr "prikaži" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Izmeni lozinku" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-mail" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Jezik" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupe" - #: templates/users.php:32 msgid "Create" msgstr "Napravi" @@ -296,34 +472,26 @@ msgstr "Napravi" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Drugo" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Obriši" diff --git a/l10n/sr@latin/user_ldap.po b/l10n/sr@latin/user_ldap.po index 9933827859ea8aac2bb489c14a5a85839264850b..b53dc7e85e978b050c932f12d2787bbaf99a980b 100644 --- a/l10n/sr@latin/user_ldap.po +++ b/l10n/sr@latin/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/sv/core.po b/l10n/sv/core.po index 5d9d7db303d1adbbdcadb44834784dbbc1caec20..66e9d73211aac5211e3ada08257d0398a1e8d15a 100644 --- a/l10n/sv/core.po +++ b/l10n/sv/core.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:07+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: Magnus Höglund \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -57,8 +57,9 @@ msgid "No category to add?" msgstr "Ingen kategori att lägga till?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Denna kategori finns redan:" +#, php-format +msgid "This category already exists: %s" +msgstr "Denna kategori finns redan: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -162,59 +163,59 @@ msgstr "November" msgid "December" msgstr "December" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Inställningar" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "sekunder sedan" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 minut sedan" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} minuter sedan" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 timme sedan" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} timmar sedan" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "i dag" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "i går" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} dagar sedan" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "förra månaden" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} månader sedan" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "månader sedan" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "förra året" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "år sedan" @@ -244,8 +245,8 @@ msgid "The object type is not specified." msgstr "Objekttypen är inte specificerad." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Fel" @@ -257,15 +258,15 @@ msgstr " Namnet på appen är inte specificerad." msgid "The required file {file} is not installed!" msgstr "Den nödvändiga filen {file} är inte installerad!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "Dela" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "Delad" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "Dela" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Fel vid delning" @@ -361,23 +362,23 @@ msgstr "radera" msgid "share" msgstr "dela" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Lösenordsskyddad" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Fel vid borttagning av utgångsdatum" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Fel vid sättning av utgångsdatum" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Skickar ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "E-post skickat" @@ -392,7 +393,7 @@ msgstr "Uppdateringen misslyckades. Rapportera detta problem till documentation." +msgstr "För information hur man korrekt konfigurera servern, var god se documentation." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Skapa ett administratörskonto" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Avancerat" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Datamapp" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Konfigurera databasen" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "kommer att användas" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Databasanvändare" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Lösenord till databasen" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Databasnamn" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Databas tabellutrymme" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Databasserver" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Avsluta installation" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "webbtjänster under din kontroll" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Logga ut" @@ -579,7 +584,7 @@ msgstr "Logga in" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternativa inloggningar" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/sv/files.po b/l10n/sv/files.po index 1abbf3debc022aea50ce310e2c163ddbf5aa3a4b..a3f158b41b29d52f29700cddad030571e1dd8e34 100644 --- a/l10n/sv/files.po +++ b/l10n/sv/files.po @@ -14,9 +14,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" +"PO-Revision-Date: 2013-02-27 09:10+0000\n" +"Last-Translator: Magnus Höglund \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,6 +24,20 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Kunde inte flytta %s - Det finns redan en fil med detta namn" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Kan inte flytta %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Kan inte byta namn på filen" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil uppladdad. Okänt fel" @@ -43,27 +57,27 @@ msgid "" "the HTML form" msgstr "Den uppladdade filen överstiger MAX_FILE_SIZE direktivet som anges i HTML-formulär" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "Den uppladdade filen var endast delvis uppladdad" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "Ingen fil blev uppladdad" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "Saknar en tillfällig mapp" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "Misslyckades spara till disk" -#: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "Inte tillräckligt med utrymme tillgängligt" +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "Inte tillräckligt med lagringsutrymme tillgängligt" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "Felaktig mapp." @@ -71,51 +85,52 @@ msgstr "Felaktig mapp." msgid "Files" msgstr "Filer" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Sluta dela" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Radera permanent" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Radera" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Byt namn" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Väntar" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} finns redan" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "ersätt" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "föreslå namn" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "ersatt {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "ångra" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "ersatt {new_name} med {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "utför raderingen" @@ -141,50 +156,46 @@ msgstr "Ditt lagringsutrymme är fullt, filer kan ej längre laddas upp eller sy msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Din nedladdning förbereds. Det kan ta tid om det är stora filer." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes." -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Uppladdningsfel" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Stäng" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Väntar" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 filuppladdning" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} filer laddas upp" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Uppladdning avbruten." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL kan inte vara tom." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud" @@ -269,8 +280,8 @@ msgid "From link" msgstr "Från länk" #: templates/index.php:40 -msgid "Trash" -msgstr "Papperskorgen" +msgid "Deleted files" +msgstr "Raderade filer" #: templates/index.php:46 msgid "Cancel upload" @@ -284,6 +295,10 @@ msgstr "Ingenting här. Ladda upp något!" msgid "Download" msgstr "Ladda ner" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Sluta dela" + #: templates/index.php:105 msgid "Upload too large" msgstr "För stor uppladdning" diff --git a/l10n/sv/files_encryption.po b/l10n/sv/files_encryption.po index 3c52fd72781fca6474915c3eb5019336e160d553..b401db609de32d1be23dd421e1b4f90b92d7ebbb 100644 --- a/l10n/sv/files_encryption.po +++ b/l10n/sv/files_encryption.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 02:41+0000\n" -"Last-Translator: Lokal_Profil \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,28 +19,6 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "Vänligen växla till ownCloud klienten och ändra ditt krypteringslösenord för att slutföra omvandlingen." - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "Bytte till kryptering på klientsidan" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "Ändra krypteringslösenord till loginlösenord" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "Kontrollera dina lösenord och försök igen." - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "Kunde inte ändra ditt filkrypteringslösenord till ditt loginlösenord" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Kryptering" diff --git a/l10n/sv/files_external.po b/l10n/sv/files_external.po index 0de3f3e3556856ce6c366f7f6349aa713be1e0b2..0288be2954b8eab41a86591b3cc756b083f25c95 100644 --- a/l10n/sv/files_external.po +++ b/l10n/sv/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-26 00:10+0100\n" -"PO-Revision-Date: 2012-12-25 15:20+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Magnus Höglund \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "Ange en giltig Dropbox nyckel och hemlighet." msgid "Error configuring Google Drive storage" msgstr "Fel vid konfigurering av Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Varning: \"smb-klienten\" är inte installerad. Montering av CIFS/SMB delningar är inte möjligt. Kontakta din systemadministratör för att få den installerad." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "Tillåt användare att montera egen extern lagring" msgid "SSL root certificates" msgstr "SSL rotcertifikat" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Importera rotcertifikat" diff --git a/l10n/sv/files_trashbin.po b/l10n/sv/files_trashbin.po index 897bddc00ea50aaf189ab5a7f454f74e8444212f..3c94578cfe9d3bef0736c088dc29da13ab2bee61 100644 --- a/l10n/sv/files_trashbin.po +++ b/l10n/sv/files_trashbin.po @@ -4,12 +4,13 @@ # # Translators: # André , 2013. +# Magnus Höglund , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -18,35 +19,49 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Kunde inte radera %s permanent" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Kunde inte återställa %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "utför återställning" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "radera filen permanent" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Radera permanent" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Namn" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "Raderad" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 mapp" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} mappar" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 fil" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} filer" @@ -57,3 +72,7 @@ msgstr "Ingenting här. Din papperskorg är tom!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "Återskapa" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Radera" diff --git a/l10n/sv/files_versions.po b/l10n/sv/files_versions.po index 5f3d273b389e704bd1d32ad693bcdd25642cb28d..3930feca0f403df306f7ad08237592a2ee614a4d 100644 --- a/l10n/sv/files_versions.po +++ b/l10n/sv/files_versions.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Magnus Höglund , 2012. +# Magnus Höglund , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 07:20+0000\n" +"Last-Translator: Magnus Höglund \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +18,45 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Kunde inte återställa: %s" + +#: history.php:40 +msgid "success" +msgstr "lyckades" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Filen %s återställdes till version %s" + +#: history.php:49 +msgid "failure" +msgstr "misslyckades" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Filen %s kunde inte återställas till version %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Inga gamla versioner finns tillgängliga" + +#: history.php:73 +msgid "No path specified" +msgstr "Ingen sökväg angiven" + #: js/versions.js:16 msgid "History" msgstr "Historik" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Återställ en fil till en tidigare version genom att klicka på knappen" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Versionshantering av filer" diff --git a/l10n/sv/lib.po b/l10n/sv/lib.po index 3fea987f13fd0dade9282861223d02bcbd7855b5..44ec1427c251e473838c34698917dc3bf70e387e 100644 --- a/l10n/sv/lib.po +++ b/l10n/sv/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-21 14:32+0000\n" -"Last-Translator: Magnus Höglund \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +19,47 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Hjälp" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Personligt" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Inställningar" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Användare" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Program" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Admin" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Nerladdning av ZIP är avstängd." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Filer laddas ner en åt gången." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Tillbaka till Filer" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Valda filer är för stora för att skapa zip-fil." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "kunde inte bestämmas" @@ -87,6 +87,108 @@ msgstr "Text" msgid "Images" msgstr "Bilder" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Din webbserver är inte korrekt konfigurerad för att tillåta filsynkronisering eftersom WebDAV inte verkar fungera." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Var god kontrollera installationsguiden." + #: template.php:113 msgid "seconds ago" msgstr "sekunder sedan" @@ -139,16 +241,16 @@ msgstr "förra året" msgid "years ago" msgstr "år sedan" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s finns. Få mer information" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "uppdaterad" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "uppdateringskontroll är inaktiverad" diff --git a/l10n/sv/settings.po b/l10n/sv/settings.po index c51345d4304293c9dff337bfb43be0c4a347f284..946b6e1173590f2f6c8865977fd0915c1131ba91 100644 --- a/l10n/sv/settings.po +++ b/l10n/sv/settings.po @@ -7,7 +7,7 @@ # Christer Eriksson , 2012. # Daniel Sandman , 2012. # , 2011. -# Magnus Höglund , 2012. +# Magnus Höglund , 2012-2013. # , 2012. # , 2012. # , 2011, 2012. @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -30,14 +30,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Kan inte ladda listan från App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Autentiseringsfel" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Kan inte ändra visningsnamn" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -79,17 +79,17 @@ msgstr "Ogiltig begäran" msgid "Admins can't remove themself from the admin group" msgstr "Administratörer kan inte ta bort sig själva från admingruppen" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Kan inte lägga till användare i gruppen %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Kan inte radera användare från gruppen %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "Kunde inte uppdatera appen" @@ -125,59 +125,265 @@ msgstr "Fel" msgid "Updated" msgstr "Uppdaterad" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Sparar..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "raderad" + +#: js/users.js:30 +msgid "undo" +msgstr "ångra" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Grupper" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Gruppadministratör" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Radera" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Säkerhetsvarning" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Din datakatalog och dina filer är förmodligen tillgängliga från Internet. Den .htaccess-fil som ownCloud tillhandahåller fungerar inte. Vi rekommenderar starkt att du konfigurerar webbservern så att datakatalogen inte längre är tillgänglig eller att du flyttar datakatalogen utanför webbserverns dokument-root." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Din webbserver är inte korrekt konfigurerad för att tillåta filsynkronisering eftersom WebDAV inte verkar fungera." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Var god kontrollera installationsguiden." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Mer" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Version" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Utvecklad av ownCloud kommunity, källkoden är licenserad under AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Lägg till din applikation" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Fler Appar" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Välj en App" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Se programsida på apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licensierad av " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Uppdatera" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Användardokumentation" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Administratördokumentation" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Onlinedokumentation" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Kommersiell support" @@ -186,116 +392,86 @@ msgstr "Kommersiell support" msgid "You have used %s of the available %s" msgstr "Du har använt %s av tillgängliga %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Kunder" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Ladda ner skrivbordsklienter" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Ladda ner klient för Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Ladda ner klient för iOS" +msgid "Get the apps to sync your files" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Visa Första uppstarts-guiden igen" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Lösenord" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ditt lösenord har ändrats" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Kunde inte ändra ditt lösenord" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Nuvarande lösenord" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Nytt lösenord" -#: templates/personal.php:28 -msgid "show" -msgstr "visa" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Ändra lösenord" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "Visat namn" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Ditt visningsnamn har ändrats" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Kan inte ändra ditt visningsnamn" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Ändra visningsnamn" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "E-post" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Din e-postadress" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Fyll i en e-postadress för att aktivera återställning av lösenord" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Språk" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hjälp att översätta" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Använd denna adress för att ansluta till ownCloud i din filhanterare" -#: templates/personal.php:85 -msgid "Version" -msgstr "Version" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Utvecklad av ownCloud kommunity, källkoden är licenserad under AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "Inloggningsnamn" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Grupper" - #: templates/users.php:32 msgid "Create" msgstr "Skapa" @@ -304,34 +480,26 @@ msgstr "Skapa" msgid "Default Storage" msgstr "Förvald lagring" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Obegränsad" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Annat" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Gruppadministratör" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Lagring" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "ändra visat namn" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "ange nytt lösenord" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "Förvald" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Radera" diff --git a/l10n/sv/user_ldap.po b/l10n/sv/user_ldap.po index 955753ff393f9f70cc30c928719a1b5dc66feee7..148481a3560853e8e7fb77cecca14bf25c689359 100644 --- a/l10n/sv/user_ldap.po +++ b/l10n/sv/user_ldap.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 14:20+0000\n" -"Last-Translator: danielholm \n" +"POT-Creation-Date: 2013-02-11 15:39+0100\n" +"PO-Revision-Date: 2013-02-11 07:00+0000\n" +"Last-Translator: Magnus Höglund \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -216,8 +216,8 @@ msgid "Use TLS" msgstr "Använd TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Använd inte för SSL-anslutningar, det kommer inte att fungera." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Använd inte för LDAPS-anslutningar, det kommer inte att fungera." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/sw_KE/core.po b/l10n/sw_KE/core.po new file mode 100644 index 0000000000000000000000000000000000000000..e6919ac84dadf31f94405ecf98d97dfe6321e98e --- /dev/null +++ b/l10n/sw_KE/core.po @@ -0,0 +1,593 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/share.php:85 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:87 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:89 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:91 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:32 +msgid "Sunday" +msgstr "" + +#: js/config.php:32 +msgid "Monday" +msgstr "" + +#: js/config.php:32 +msgid "Tuesday" +msgstr "" + +#: js/config.php:32 +msgid "Wednesday" +msgstr "" + +#: js/config.php:32 +msgid "Thursday" +msgstr "" + +#: js/config.php:32 +msgid "Friday" +msgstr "" + +#: js/config.php:32 +msgid "Saturday" +msgstr "" + +#: js/config.php:33 +msgid "January" +msgstr "" + +#: js/config.php:33 +msgid "February" +msgstr "" + +#: js/config.php:33 +msgid "March" +msgstr "" + +#: js/config.php:33 +msgid "April" +msgstr "" + +#: js/config.php:33 +msgid "May" +msgstr "" + +#: js/config.php:33 +msgid "June" +msgstr "" + +#: js/config.php:33 +msgid "July" +msgstr "" + +#: js/config.php:33 +msgid "August" +msgstr "" + +#: js/config.php:33 +msgid "September" +msgstr "" + +#: js/config.php:33 +msgid "October" +msgstr "" + +#: js/config.php:33 +msgid "November" +msgstr "" + +#: js/config.php:33 +msgid "December" +msgstr "" + +#: js/js.js:284 +msgid "Settings" +msgstr "" + +#: js/js.js:764 +msgid "seconds ago" +msgstr "" + +#: js/js.js:765 +msgid "1 minute ago" +msgstr "" + +#: js/js.js:766 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:767 +msgid "1 hour ago" +msgstr "" + +#: js/js.js:768 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:769 +msgid "today" +msgstr "" + +#: js/js.js:770 +msgid "yesterday" +msgstr "" + +#: js/js.js:771 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:772 +msgid "last month" +msgstr "" + +#: js/js.js:773 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:774 +msgid "months ago" +msgstr "" + +#: js/js.js:775 +msgid "last year" +msgstr "" + +#: js/js.js:776 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 +#: js/share.js:583 +msgid "Error" +msgstr "" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +msgid "Shared" +msgstr "" + +#: js/share.js:141 js/share.js:611 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "" + +#: js/share.js:180 +msgid "Share with link" +msgstr "" + +#: js/share.js:183 +msgid "Password protect" +msgstr "" + +#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +msgid "Password" +msgstr "" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "" + +#: js/share.js:325 +msgid "can edit" +msgstr "" + +#: js/share.js:327 +msgid "access control" +msgstr "" + +#: js/share.js:330 +msgid "create" +msgstr "" + +#: js/share.js:333 +msgid "update" +msgstr "" + +#: js/share.js:336 +msgid "delete" +msgstr "" + +#: js/share.js:339 +msgid "share" +msgstr "" + +#: js/share.js:373 js/share.js:558 +msgid "Password protected" +msgstr "" + +#: js/share.js:571 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:583 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:598 +msgid "Sending ..." +msgstr "" + +#: js/share.js:609 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:47 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: templates/login.php:28 +msgid "Username" +msgstr "" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "" + +#: strings.php:6 +msgid "Users" +msgstr "" + +#: strings.php:7 +msgid "Apps" +msgstr "" + +#: strings.php:8 +msgid "Admin" +msgstr "" + +#: strings.php:9 +msgid "Help" +msgstr "" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "" + +#: templates/installation.php:23 templates/installation.php:30 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:25 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an admin account" +msgstr "" + +#: templates/installation.php:52 +msgid "Advanced" +msgstr "" + +#: templates/installation.php:54 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:61 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 +msgid "will be used" +msgstr "" + +#: templates/installation.php:109 +msgid "Database user" +msgstr "" + +#: templates/installation.php:113 +msgid "Database password" +msgstr "" + +#: templates/installation.php:117 +msgid "Database name" +msgstr "" + +#: templates/installation.php:125 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:131 +msgid "Database host" +msgstr "" + +#: templates/installation.php:136 +msgid "Finish setup" +msgstr "" + +#: templates/layout.guest.php:33 +msgid "web services under your control" +msgstr "" + +#: templates/layout.user.php:48 +msgid "Log out" +msgstr "" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "" + +#: templates/login.php:41 +msgid "remember" +msgstr "" + +#: templates/login.php:43 +msgid "Log in" +msgstr "" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/sw_KE/files.po b/l10n/sw_KE/files.po new file mode 100644 index 0000000000000000000000000000000000000000..7f9a342c8f66c1d7c233709c78702f4ad46b853a --- /dev/null +++ b/l10n/sw_KE/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:31 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:33 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:34 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:52 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:83 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:224 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:261 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:261 +msgid "Upload Error" +msgstr "" + +#: js/files.js:272 +msgid "Close" +msgstr "" + +#: js/files.js:311 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:314 js/files.js:369 js/files.js:384 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:387 js/files.js:422 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:496 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:569 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:574 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:948 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:949 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:950 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:969 +msgid "1 folder" +msgstr "" + +#: js/files.js:971 +msgid "{count} folders" +msgstr "" + +#: js/files.js:979 +msgid "1 file" +msgstr "" + +#: js/files.js:981 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/sw_KE/files_encryption.po b/l10n/sw_KE/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..210f1a0455645b7515be7ff18031addc99970243 --- /dev/null +++ b/l10n/sw_KE/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/sw_KE/files_external.po b/l10n/sw_KE/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..0c02d8edc5fb440924cd52879c62460c19a54b90 --- /dev/null +++ b/l10n/sw_KE/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-08 00:09+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:405 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:406 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:153 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/sw_KE/files_sharing.po b/l10n/sw_KE/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..adbbc6c0f0372246d89a9c61496fd821843c15ad --- /dev/null +++ b/l10n/sw_KE/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:9 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:11 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:14 templates/public.php:30 +msgid "Download" +msgstr "" + +#: templates/public.php:29 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:35 +msgid "web services under your control" +msgstr "" diff --git a/l10n/sw_KE/files_trashbin.po b/l10n/sw_KE/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..b7f72239297981327c8634d22b6f0764ba1f06c9 --- /dev/null +++ b/l10n/sw_KE/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/sw_KE/files_versions.po b/l10n/sw_KE/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..1194d23a785238fe5076bb203e5381cf58691521 --- /dev/null +++ b/l10n/sw_KE/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/sw_KE/lib.po b/l10n/sw_KE/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..8dbccab4ab36d5bb8ec611f227c5ebd7cd75728f --- /dev/null +++ b/l10n/sw_KE/lib.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: app.php:349 +msgid "Help" +msgstr "" + +#: app.php:362 +msgid "Personal" +msgstr "" + +#: app.php:373 +msgid "Settings" +msgstr "" + +#: app.php:385 +msgid "Users" +msgstr "" + +#: app.php:398 +msgid "Apps" +msgstr "" + +#: app.php:406 +msgid "Admin" +msgstr "" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "" + +#: template.php:114 +msgid "1 minute ago" +msgstr "" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:116 +msgid "1 hour ago" +msgstr "" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "" + +#: template.php:119 +msgid "yesterday" +msgstr "" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:81 +msgid "up to date" +msgstr "" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/sw_KE/settings.po b/l10n/sw_KE/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..53be4d2d72fb9bc40c6fb34f8f3acb16b3237dbe --- /dev/null +++ b/l10n/sw_KE/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/sw_KE/user_ldap.po b/l10n/sw_KE/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..2ef2872dc3f590d141ade2a02a262fc8df6f9245 --- /dev/null +++ b/l10n/sw_KE/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:35 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:37 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:40 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:17 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:21 +msgid "Host" +msgstr "" + +#: templates/settings.php:21 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:22 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:22 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:22 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:23 +msgid "User DN" +msgstr "" + +#: templates/settings.php:23 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:24 +msgid "Password" +msgstr "" + +#: templates/settings.php:24 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:25 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:25 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:26 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:26 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:26 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:27 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:27 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:27 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:31 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:33 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:33 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:34 +msgid "Port" +msgstr "" + +#: templates/settings.php:35 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:35 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:36 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:37 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:37 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:38 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:38 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:39 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:40 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:40 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:40 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:41 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:43 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:45 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:45 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:46 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:46 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:47 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:47 templates/settings.php:50 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:48 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:48 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:49 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:49 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:50 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:51 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:53 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:56 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:58 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:62 +msgid "Help" +msgstr "" diff --git a/l10n/sw_KE/user_webdavauth.po b/l10n/sw_KE/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..1e07c21030d991e6bcd4a4fc19e8f3b6a9b084da --- /dev/null +++ b/l10n/sw_KE/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sw_KE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/ta_LK/core.po b/l10n/ta_LK/core.po index ff63ed217007fd49776595af060570d7dd2e6396..fb40b5161815bfae90225bb8141aa71b9046dea6 100644 --- a/l10n/ta_LK/core.po +++ b/l10n/ta_LK/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -51,8 +51,9 @@ msgid "No category to add?" msgstr "சேர்ப்பதற்கான வகைகள் இல்லையா?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "இந்த வகை ஏற்கனவே உள்ளது:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -156,59 +157,59 @@ msgstr "கார்த்திகை" msgid "December" msgstr "மார்கழி" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "அமைப்புகள்" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "செக்கன்களுக்கு முன்" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 நிமிடத்திற்கு முன் " -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{நிமிடங்கள்} நிமிடங்களுக்கு முன் " -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 மணித்தியாலத்திற்கு முன்" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{மணித்தியாலங்கள்} மணித்தியாலங்களிற்கு முன்" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "இன்று" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "நேற்று" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{நாட்கள்} நாட்களுக்கு முன்" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "கடந்த மாதம்" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{மாதங்கள்} மாதங்களிற்கு முன்" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "மாதங்களுக்கு முன்" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "கடந்த வருடம்" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "வருடங்களுக்கு முன்" @@ -238,8 +239,8 @@ msgid "The object type is not specified." msgstr "பொருள் வகை குறிப்பிடப்படவில்லை." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "வழு" @@ -251,15 +252,15 @@ msgstr "செயலி பெயர் குறிப்பிடப்பட msgid "The required file {file} is not installed!" msgstr "தேவைப்பட்ட கோப்பு {கோப்பு} நிறுவப்படவில்லை!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "பகிர்வு" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "பகிர்வு" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "பகிரும் போதான வழு" @@ -355,23 +356,23 @@ msgstr "நீக்குக" msgid "share" msgstr "பகிர்தல்" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "கடவுச்சொல் பாதுகாக்கப்பட்டது" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "காலாவதியாகும் திகதியை குறிப்பிடாமைக்கான வழு" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "காலாவதியாகும் திகதியை குறிப்பிடுவதில் வழு" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -386,7 +387,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud இன் கடவுச்சொல் மீளமைப்பு" @@ -467,7 +468,7 @@ msgstr "வகைகளை தொகுக்க" msgid "Add" msgstr "சேர்க்க" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "பாதுகாப்பு எச்சரிக்கை" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "குறிப்பிட்ட எண்ணிக்கை பாதுகாப்பான புறப்பாக்கி / உண்டாக்கிகள் இல்லை, தயவுசெய்து PHP OpenSSL நீட்சியை இயலுமைப்படுத்துக. " -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "பாதுகாப்பான சீரற்ற எண்ணிக்கையான புறப்பாக்கி இல்லையெனின், தாக்குனரால் கடவுச்சொல் மீளமைப்பு அடையாளவில்லைகள் முன்மொழியப்பட்டு உங்களுடைய கணக்கை கைப்பற்றலாம்." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "உங்களுடைய தரவு அடைவு மற்றும் உங்களுடைய கோப்புக்களை பெரும்பாலும் இணையத்தினூடாக அணுகலாம். ownCloud இனால் வழங்கப்படுகின்ற .htaccess கோப்பு வேலை செய்யவில்லை. தரவு அடைவை நீண்ட நேரத்திற்கு அணுகக்கூடியதாக உங்களுடைய வலைய சேவையகத்தை தகவமைக்குமாறு நாங்கள் உறுதியாக கூறுகிறோம் அல்லது தரவு அடைவை வலைய சேவையக மூல ஆவணத்திலிருந்து வெளியே அகற்றுக. " +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr " நிர்வாக கணக்கொன்றை உருவாக்குக" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "மேம்பட்ட" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "தரவு கோப்புறை" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "தரவுத்தளத்தை தகவமைக்க" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "பயன்படுத்தப்படும்" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "தரவுத்தள பயனாளர்" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "தரவுத்தள கடவுச்சொல்" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "தரவுத்தள பெயர்" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "தரவுத்தள அட்டவணை" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "தரவுத்தள ஓம்புனர்" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "அமைப்பை முடிக்க" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "உங்கள் கட்டுப்பாட்டின் கீழ் இணைய சேவைகள்" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "விடுபதிகை செய்க" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index 981b7fbcc87f9ef11b372785cb15b9fbb34914ee..1c5c7126c936902427c40dbdd8e8dc43b2c930fe 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,20 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு" @@ -54,7 +68,7 @@ msgid "Failed to write to disk" msgstr "வட்டில் எழுத முடியவில்லை" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -65,51 +79,52 @@ msgstr "" msgid "Files" msgstr "கோப்புகள்" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "பகிரப்படாதது" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "அழிக்க" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "பெயர்மாற்றம்" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "நிலுவையிலுள்ள" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} ஏற்கனவே உள்ளது" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "மாற்றிடுக" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "பெயரை பரிந்துரைக்க" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "இரத்து செய்க" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "மாற்றப்பட்டது {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "முன் செயல் நீக்கம் " -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ஆனது {old_name} இனால் மாற்றப்பட்டது" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -135,78 +150,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "பதிவேற்றல் வழு" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "மூடுக" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "நிலுவையிலுள்ள" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 கோப்பு பதிவேற்றப்படுகிறது" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{எண்ணிக்கை} கோப்புகள் பதிவேற்றப்படுகின்றது" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL வெறுமையாக இருக்கமுடியாது." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "பெயர்" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "அளவு" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "மாற்றப்பட்டது" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 கோப்புறை" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{எண்ணிக்கை} கோப்புறைகள்" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 கோப்பு" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{எண்ணிக்கை} கோப்புகள்" @@ -263,7 +274,7 @@ msgid "From link" msgstr "இணைப்பிலிருந்து" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -278,6 +289,10 @@ msgstr "இங்கு ஒன்றும் இல்லை. ஏதாவத msgid "Download" msgstr "பதிவிறக்குக" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "பகிரப்படாதது" + #: templates/index.php:105 msgid "Upload too large" msgstr "பதிவேற்றல் மிகப்பெரியது" diff --git a/l10n/ta_LK/files_encryption.po b/l10n/ta_LK/files_encryption.po index dc06118a3e5fd92a145f24a84b04a319ad060c41..fbd878dfe562d7f0eb6e7d1f81782581bc6c2ef1 100644 --- a/l10n/ta_LK/files_encryption.po +++ b/l10n/ta_LK/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "மறைக்குறியீடு" diff --git a/l10n/ta_LK/files_external.po b/l10n/ta_LK/files_external.po index 196376b86f5a775f683bba091caf42356a2c6f74..0ace805410cad38e42c5366469e16f1baa719a58 100644 --- a/l10n/ta_LK/files_external.po +++ b/l10n/ta_LK/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "தயவுசெய்து ஒரு செல்லுபடிய msgid "Error configuring Google Drive storage" msgstr "Google இயக்க சேமிப்பகத்தை தகமைப்பதில் வழு" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "பயனாளர்" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "நீக்குக" @@ -112,10 +112,10 @@ msgstr "பயனாளர் வெளி சேமிப்பை இயலு msgid "Allow users to mount their own external storage" msgstr "பயனாளர் அவர்களுடைய சொந்த வெளியக சேமிப்பை ஏற்ற அனுமதிக்க" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL வேர் சான்றிதழ்கள்" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "வேர் சான்றிதழை இறக்குமதி செய்க" diff --git a/l10n/ta_LK/files_trashbin.po b/l10n/ta_LK/files_trashbin.po index 885b8e84a2cb25a12f48d1abd4b4a63eb3de4d8d..7b089df60010f282dac5249940a0fe8c51f9211b 100644 --- a/l10n/ta_LK/files_trashbin.po +++ b/l10n/ta_LK/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "பெயர்" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 கோப்புறை" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{எண்ணிக்கை} கோப்புறைகள்" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 கோப்பு" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{எண்ணிக்கை} கோப்புகள்" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "நீக்குக" diff --git a/l10n/ta_LK/files_versions.po b/l10n/ta_LK/files_versions.po index ed417e58282a79abf8a40396cab5c3dd7003964f..971b58bc8e79db0befbf41db1e5b731ebf3e6d57 100644 --- a/l10n/ta_LK/files_versions.po +++ b/l10n/ta_LK/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "வரலாறு" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "கோப்பு பதிப்புகள்" diff --git a/l10n/ta_LK/lib.po b/l10n/ta_LK/lib.po index febb5ad3281bdbbfa305ef2cdd3aaea31f2e0600..1ee1cfff40640e32e70c181e59638b5ca935f5a2 100644 --- a/l10n/ta_LK/lib.po +++ b/l10n/ta_LK/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "உதவி" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "தனிப்பட்ட" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "அமைப்புகள்" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "பயனாளர்கள்" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "செயலிகள்" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "நிர்வாகம்" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "வீசொலிப் பூட்டு பதிவிறக்கம் நிறுத்தப்பட்டுள்ளது." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "கோப்புகள்ஒன்றன் பின் ஒன்றாக பதிவிறக்கப்படவேண்டும்." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "கோப்புகளுக்கு செல்க" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "வீ சொலிக் கோப்புகளை உருவாக்குவதற்கு தெரிவுசெய்யப்பட்ட கோப்புகள் மிகப்பெரியவை" @@ -86,6 +86,108 @@ msgstr "உரை" msgid "Images" msgstr "படங்கள்" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "செக்கன்களுக்கு முன்" @@ -138,16 +240,16 @@ msgstr "கடந்த வருடம்" msgid "years ago" msgstr "வருடங்களுக்கு முன்" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s இன்னும் இருக்கின்றன. மேலதிக தகவல்களுக்கு எடுக்க" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "நவீன" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "இற்றைப்படுத்தலை சரிபார்ப்பதை செயலற்றதாக்குக" diff --git a/l10n/ta_LK/settings.po b/l10n/ta_LK/settings.po index 6e3983c95c4eb0cafda168283ad167d67ba33809..a6351ece395cf669d5db7a746f6bbe9ef39b3b20 100644 --- a/l10n/ta_LK/settings.po +++ b/l10n/ta_LK/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -22,12 +22,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "செயலி சேமிப்பிலிருந்து பட்டியலை ஏற்றமுடியாதுள்ளது" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "அத்தாட்சிப்படுத்தலில் வழு" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -71,17 +71,17 @@ msgstr "செல்லுபடியற்ற வேண்டுகோள்" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "குழு %s இல் பயனாளரை சேர்க்க முடியாது" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "குழு %s இலிருந்து பயனாளரை நீக்கமுடியாது" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -117,59 +117,265 @@ msgstr "வழு" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "இயலுமைப்படுத்துக" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "முன் செயல் நீக்கம் " + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "குழுக்கள்" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "குழு நிர்வாகி" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "அழிக்க" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "_மொழி_பெயர்_" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "பாதுகாப்பு எச்சரிக்கை" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "உங்களுடைய தரவு அடைவு மற்றும் உங்களுடைய கோப்புக்களை பெரும்பாலும் இணையத்தினூடாக அணுகலாம். ownCloud இனால் வழங்கப்படுகின்ற .htaccess கோப்பு வேலை செய்யவில்லை. தரவு அடைவை நீண்ட நேரத்திற்கு அணுகக்கூடியதாக உங்களுடைய வலைய சேவையகத்தை தகவமைக்குமாறு நாங்கள் உறுதியாக கூறுகிறோம் அல்லது தரவு அடைவை வலைய சேவையக மூல ஆவணத்திலிருந்து வெளியே அகற்றுக. " + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "மேலதிக" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Developed by the ownCloud community, the source code is licensed under the AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "உங்களுடைய செயலியை சேர்க்க" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "மேலதிக செயலிகள்" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "செயலி ஒன்றை தெரிவுசெய்க" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "apps.owncloud.com இல் செயலி பக்கத்தை பார்க்க" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-அனுமதி பெற்ற " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "இற்றைப்படுத்தல்" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,116 +384,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "நீங்கள் %s இலுள்ள %sபயன்படுத்தியுள்ளீர்கள்" -#: templates/personal.php:12 -msgid "Clients" -msgstr "வாடிக்கையாளர்கள்" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "கடவுச்சொல்" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "உங்களுடைய கடவுச்சொல் மாற்றப்பட்டுள்ளது" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "உங்களுடைய கடவுச்சொல்லை மாற்றமுடியாது" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "தற்போதைய கடவுச்சொல்" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "புதிய கடவுச்சொல்" -#: templates/personal.php:28 -msgid "show" -msgstr "காட்டு" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "கடவுச்சொல்லை மாற்றுக" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "மின்னஞ்சல்" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "உங்களுடைய மின்னஞ்சல் முகவரி" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "கடவுச்சொல் மீள் பெறுவதை இயலுமைப்படுத்துவதற்கு மின்னஞ்சல் முகவரியை இயலுமைப்படுத்துக" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "மொழி" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "மொழிபெயர்க்க உதவி" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Developed by the ownCloud community, the source code is licensed under the AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "குழுக்கள்" - #: templates/users.php:32 msgid "Create" msgstr "உருவாக்குக" @@ -296,34 +472,26 @@ msgstr "உருவாக்குக" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "மற்றவை" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "குழு நிர்வாகி" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "அழிக்க" diff --git a/l10n/ta_LK/user_ldap.po b/l10n/ta_LK/user_ldap.po index c9b1c2c58d48798bb25a59fc91e2d0f392fdba66..9e62a4a67e36b3159ff38e9a441f11f293a35626 100644 --- a/l10n/ta_LK/user_ldap.po +++ b/l10n/ta_LK/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "TLS ஐ பயன்படுத்தவும்" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்." +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 7d0512dba9f4c8e5147e10fa5f0a9231372b71d0..49c3b66ee526eddccd7d795ad6d0def4d06905cb 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,24 +17,24 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ajax/share.php:85 +#: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" msgstr "" -#: ajax/share.php:87 +#: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" msgstr "" -#: ajax/share.php:89 +#: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" msgstr "" -#: ajax/share.php:91 +#: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " @@ -50,7 +50,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -79,135 +80,135 @@ msgstr "" msgid "Error removing %s from favorites." msgstr "" -#: js/config.php:32 +#: js/config.php:34 msgid "Sunday" msgstr "" -#: js/config.php:32 +#: js/config.php:35 msgid "Monday" msgstr "" -#: js/config.php:32 +#: js/config.php:36 msgid "Tuesday" msgstr "" -#: js/config.php:32 +#: js/config.php:37 msgid "Wednesday" msgstr "" -#: js/config.php:32 +#: js/config.php:38 msgid "Thursday" msgstr "" -#: js/config.php:32 +#: js/config.php:39 msgid "Friday" msgstr "" -#: js/config.php:32 +#: js/config.php:40 msgid "Saturday" msgstr "" -#: js/config.php:33 +#: js/config.php:45 msgid "January" msgstr "" -#: js/config.php:33 +#: js/config.php:46 msgid "February" msgstr "" -#: js/config.php:33 +#: js/config.php:47 msgid "March" msgstr "" -#: js/config.php:33 +#: js/config.php:48 msgid "April" msgstr "" -#: js/config.php:33 +#: js/config.php:49 msgid "May" msgstr "" -#: js/config.php:33 +#: js/config.php:50 msgid "June" msgstr "" -#: js/config.php:33 +#: js/config.php:51 msgid "July" msgstr "" -#: js/config.php:33 +#: js/config.php:52 msgid "August" msgstr "" -#: js/config.php:33 +#: js/config.php:53 msgid "September" msgstr "" -#: js/config.php:33 +#: js/config.php:54 msgid "October" msgstr "" -#: js/config.php:33 +#: js/config.php:55 msgid "November" msgstr "" -#: js/config.php:33 +#: js/config.php:56 msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "" -#: js/js.js:760 +#: js/js.js:768 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:769 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:770 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:771 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:772 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:773 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:774 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:775 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:776 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:777 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:778 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:779 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:780 msgid "years ago" msgstr "" @@ -237,8 +238,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "" @@ -250,15 +251,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" +#: js/share.js:93 +msgid "Share" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "" @@ -290,7 +291,7 @@ msgstr "" msgid "Password protect" msgstr "" -#: js/share.js:185 templates/installation.php:44 templates/login.php:35 +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 msgid "Password" msgstr "" @@ -354,23 +355,23 @@ msgstr "" msgid "share" msgstr "" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -385,7 +386,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "" @@ -405,7 +406,7 @@ msgstr "" msgid "Request failed!" msgstr "" -#: lostpassword/templates/lostpassword.php:11 templates/installation.php:39 +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 #: templates/login.php:28 msgid "Username" msgstr "" @@ -466,11 +467,11 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:24 templates/installation.php:31 msgid "Security Warning" msgstr "" -#: templates/installation.php:24 +#: templates/installation.php:25 msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." @@ -484,63 +485,68 @@ msgstr "" #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the " -"webserver document root." +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." msgstr "" -#: templates/installation.php:36 +#: templates/installation.php:37 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:55 msgid "Advanced" msgstr "" -#: templates/installation.php:52 +#: templates/installation.php:57 msgid "Data folder" msgstr "" -#: templates/installation.php:59 +#: templates/installation.php:66 msgid "Configure the database" msgstr "" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 msgid "will be used" msgstr "" -#: templates/installation.php:107 +#: templates/installation.php:129 msgid "Database user" msgstr "" -#: templates/installation.php:111 +#: templates/installation.php:134 msgid "Database password" msgstr "" -#: templates/installation.php:115 +#: templates/installation.php:139 msgid "Database name" msgstr "" -#: templates/installation.php:123 +#: templates/installation.php:149 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:156 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:162 msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:35 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:49 +#: templates/layout.user.php:53 msgid "Log out" msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 82ec8fdc4c0d1138dd78e1fadf667f1614ae416f..be5a0ea44e861a39656e73582fb2ab1c19d10e29 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,20 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -36,27 +50,27 @@ msgid "" "the HTML form" msgstr "" -#: ajax/upload.php:31 +#: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" msgstr "" -#: ajax/upload.php:32 +#: ajax/upload.php:31 msgid "No file was uploaded" msgstr "" -#: ajax/upload.php:33 +#: ajax/upload.php:32 msgid "Missing a temporary folder" msgstr "" -#: ajax/upload.php:34 +#: ajax/upload.php:33 msgid "Failed to write to disk" msgstr "" -#: ajax/upload.php:52 -msgid "Not enough space available" +#: ajax/upload.php:51 +msgid "Not enough storage available" msgstr "" -#: ajax/upload.php:83 +#: ajax/upload.php:82 msgid "Invalid directory." msgstr "" @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -134,50 +149,46 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 4065f83e88ec67e78a9bed87ed4fb2740eaf85cc..08cdfc875cddebf6c8608009f0e21aff37cf1da9 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,28 +17,6 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to " -"complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 70f6f01fe7ef371826f975b5ec0b8660e768ba60..ed6d499901e2025ec0ed6a753c4938972d6aec65 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,13 +41,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:405 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:406 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting " "of FTP shares is not possible. Please ask your system administrator to " @@ -115,6 +115,6 @@ msgstr "" msgid "SSL root certificates" msgstr "" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index fdaa852edcaa487d7fe3a15acb5317e54c0d20e3..d8b0fb374ba6e39a3110418b4b60230f570b80db 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,24 +25,24 @@ msgstr "" msgid "Submit" msgstr "" -#: templates/public.php:9 +#: templates/public.php:10 #, php-format msgid "%s shared the folder %s with you" msgstr "" -#: templates/public.php:11 +#: templates/public.php:13 #, php-format msgid "%s shared the file %s with you" msgstr "" -#: templates/public.php:14 templates/public.php:30 +#: templates/public.php:19 templates/public.php:37 msgid "Download" msgstr "" -#: templates/public.php:29 +#: templates/public.php:34 msgid "No preview available for" msgstr "" -#: templates/public.php:35 +#: templates/public.php:43 msgid "web services under your control" msgstr "" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index bf75a1b15d4433e02ed464cb25abdad0ce5feeab..ad1dbc7dea3d3bd733fa0d080e0cf739b4a0c542 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,35 +17,49 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index c15d3679e262178452dc779e58fc47a29ae4af88..afd3255266f66f0d7403cc6494aba88dd8a3c073 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,14 +17,49 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" -#: templates/settings.php:4 +#: templates/settings.php:7 msgid "Enable" msgstr "" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index d9cae265edbd604f324b92355111cf2bb98d6736..e251aedc8be1680e6292bd922ee863a77600fe68 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,27 +17,27 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: app.php:313 +#: app.php:349 msgid "Help" msgstr "" -#: app.php:320 +#: app.php:362 msgid "Personal" msgstr "" -#: app.php:325 +#: app.php:373 msgid "Settings" msgstr "" -#: app.php:330 +#: app.php:385 msgid "Users" msgstr "" -#: app.php:337 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:339 +#: app.php:406 msgid "Admin" msgstr "" @@ -49,15 +49,15 @@ msgstr "" msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:203 files.php:228 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:227 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" -#: helper.php:226 +#: helper.php:228 msgid "couldn't be determined" msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index bd244208d595ef325dde2196005c15a60d163836..a0839b0fc6ff15340261fe4932502384999e40dd 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -6,27 +6,27 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,60 +116,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the " +"webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest " +"to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to " +"enable internet connection for this server if you want to have all features " +"of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "" "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -178,115 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index f26771344bab9cb9ba04b7732fb5a41bf225e94c..df27bd9cf8d9e9601d21f0fa7d1f2c64df85ef02 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,17 +21,17 @@ msgstr "" msgid "Failed to delete the server configuration" msgstr "" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" msgstr "" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." msgstr "" -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." @@ -86,222 +86,222 @@ msgstr "" msgid "Server configuration" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. uid=agent," "dc=example,dc=com. For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" msgstr "" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." msgstr "" -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index af5e2100c2e810a119652bb068010aebbe6959ed..963154a85e56860346521a7616df1ef1e6e82a0b 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" +"Project-Id-Version: ownCloud Core 5.0.0\n" +"Report-Msgid-Bugs-To: translations@owncloud.org\n" +"POT-Creation-Date: 2013-02-27 14:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/core.po b/l10n/th_TH/core.po index 967a5a57f6109524ff2e4fc213dfb3dac820e219..6349d38593a3ec858e9e8859249aed075e7a3638 100644 --- a/l10n/th_TH/core.po +++ b/l10n/th_TH/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "ไม่มีหมวดหมู่ที่ต้องการเพิ่ม?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "หมวดหมู่นี้มีอยู่แล้ว: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "พฤศจิกายน" msgid "December" msgstr "ธันวาคม" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "ตั้งค่า" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "วินาที ก่อนหน้านี้" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 นาทีก่อนหน้านี้" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} นาทีก่อนหน้านี้" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 ชั่วโมงก่อนหน้านี้" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} ชั่วโมงก่อนหน้านี้" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "วันนี้" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "เมื่อวานนี้" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{day} วันก่อนหน้านี้" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "เดือนที่แล้ว" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} เดือนก่อนหน้านี้" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "เดือน ที่ผ่านมา" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "ปีที่แล้ว" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "ปี ที่ผ่านมา" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "ชนิดของวัตถุยังไม่ได้รับการระบุ" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "พบข้อผิดพลาด" @@ -252,15 +253,15 @@ msgstr "ชื่อของแอปยังไม่ได้รับกา msgid "The required file {file} is not installed!" msgstr "ไฟล์ {file} ซึ่งเป็นไฟล์ที่จำเป็นต้องได้รับการติดตั้งไว้ก่อน ยังไม่ได้ถูกติดตั้ง" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "แชร์" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "แชร์แล้ว" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "แชร์" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "เกิดข้อผิดพลาดในระหว่างการแชร์ข้อมูล" @@ -356,23 +357,23 @@ msgstr "ลบ" msgid "share" msgstr "แชร์" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "ใส่รหัสผ่านไว้" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "เกิดข้อผิดพลาดในการยกเลิกการตั้งค่าวันที่หมดอายุ" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "เกิดข้อผิดพลาดในการตั้งค่าวันที่หมดอายุ" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "กำลังส่ง..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "ส่งอีเมล์แล้ว" @@ -387,7 +388,7 @@ msgstr "การอัพเดทไม่เป็นผลสำเร็จ msgid "The update was successful. Redirecting you to ownCloud now." msgstr "การอัพเดทเสร็จเรียบร้อยแล้ว กำลังเปลี่ยนเส้นทางไปที่ ownCloud อยู่ในขณะนี้" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "รีเซ็ตรหัสผ่าน ownCloud" @@ -468,7 +469,7 @@ msgstr "แก้ไขหมวดหมู่" msgid "Add" msgstr "เพิ่ม" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "คำเตือนเกี่ยวกับความปลอดภัย" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "ยังไม่มีตัวสร้างหมายเลขแบบสุ่มให้ใช้งาน, กรุณาเปิดใช้งานส่วนเสริม PHP OpenSSL" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "หากปราศจากตัวสร้างหมายเลขแบบสุ่มที่ช่วยป้องกันความปลอดภัย ผู้บุกรุกอาจสามารถที่จะคาดคะเนรหัสยืนยันการเข้าถึงเพื่อรีเซ็ตรหัสผ่าน และเอาบัญชีของคุณไปเป็นของตนเองได้" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "ไดเร็กทอรี่ข้อมูลและไฟล์ของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ต ไฟล์ .htaccess ที่ ownCloud มีให้ไม่สามารถทำงานได้อย่างเหมาะสม เราขอแนะนำให้คุณกำหนดค่าเว็บเซิร์ฟเวอร์ใหม่ในรูปแบบที่ไดเร็กทอรี่เก็บข้อมูลไม่สามารถเข้าถึงได้อีกต่อไป หรือคุณได้ย้ายไดเร็กทอรี่ที่ใช้เก็บข้อมูลไปอยู่ภายนอกตำแหน่ง root ของเว็บเซิร์ฟเวอร์แล้ว" +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "สร้าง บัญชีผู้ดูแลระบบ" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "ขั้นสูง" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "โฟลเดอร์เก็บข้อมูล" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "กำหนดค่าฐานข้อมูล" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "จะถูกใช้" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "ชื่อผู้ใช้งานฐานข้อมูล" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "รหัสผ่านฐานข้อมูล" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "ชื่อฐานข้อมูล" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "พื้นที่ตารางในฐานข้อมูล" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Database host" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "ติดตั้งเรียบร้อยแล้ว" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "web services under your control" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "ออกจากระบบ" diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po index 5b83ba04bac8797715af642a548a98d4435b4db2..c64178ab830e35a650fb50845b6b1dea25ef3457 100644 --- a/l10n/th_TH/files.po +++ b/l10n/th_TH/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "ไม่สามารถย้าย %s ได้" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "ไม่สามารถเปลี่ยนชื่อไฟล์ได้" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ" @@ -55,8 +69,8 @@ msgid "Failed to write to disk" msgstr "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "มีพื้นที่เหลือไม่เพียงพอ" +msgid "Not enough storage available" +msgstr "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน" #: ajax/upload.php:83 msgid "Invalid directory." @@ -66,51 +80,52 @@ msgstr "ไดเร็กทอรี่ไม่ถูกต้อง" msgid "Files" msgstr "ไฟล์" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "ยกเลิกการแชร์ข้อมูล" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "ลบ" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "เปลี่ยนชื่อ" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "อยู่ระหว่างดำเนินการ" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} มีอยู่แล้วในระบบ" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "แทนที่" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "แนะนำชื่อ" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "ยกเลิก" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "แทนที่ {new_name} แล้ว" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "เลิกทำ" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "แทนที่ {new_name} ด้วย {old_name} แล้ว" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "ดำเนินการตามคำสั่งลบ" @@ -136,78 +151,74 @@ msgstr "พื้นที่จัดเก็บข้อมูลของค msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "กำลังเตรียมดาวน์โหลดข้อมูล หากไฟล์มีขนาดใหญ่ อาจใช้เวลาสักครู่" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่หรือมีขนาด 0 ไบต์" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "เกิดข้อผิดพลาดในการอัพโหลด" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "ปิด" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "อยู่ระหว่างดำเนินการ" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "กำลังอัพโหลดไฟล์ 1 ไฟล์" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "กำลังอัพโหลด {count} ไฟล์" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "การอัพโหลดถูกยกเลิก" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL ไม่สามารถเว้นว่างได้" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ชื่อโฟลเดอร์ไม่ถูกต้อง การใช้งาน 'แชร์' สงวนไว้สำหรับ Owncloud เท่านั้น" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "ชื่อ" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "ขนาด" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "ปรับปรุงล่าสุด" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 โฟลเดอร์" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} โฟลเดอร์" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 ไฟล์" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} ไฟล์" @@ -264,8 +275,8 @@ msgid "From link" msgstr "จากลิงก์" #: templates/index.php:40 -msgid "Trash" -msgstr "ถังขยะ" +msgid "Deleted files" +msgstr "" #: templates/index.php:46 msgid "Cancel upload" @@ -279,6 +290,10 @@ msgstr "ยังไม่มีไฟล์ใดๆอยู่ที่นี msgid "Download" msgstr "ดาวน์โหลด" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "ยกเลิกการแชร์ข้อมูล" + #: templates/index.php:105 msgid "Upload too large" msgstr "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป" diff --git a/l10n/th_TH/files_encryption.po b/l10n/th_TH/files_encryption.po index 5131a396a5a5072142e514ba108d1182a0e171ba..0f055b572fb2206003e2cb999e9158c0e1947511 100644 --- a/l10n/th_TH/files_encryption.po +++ b/l10n/th_TH/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "กรุณาสลับไปที่โปรแกรมไคลเอนต์ ownCloud ของคุณ แล้วเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสเพื่อแปลงข้อมูลให้เสร็จสมบูรณ์" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "สลับไปใช้การเข้ารหัสจากโปรแกรมไคลเอนต์" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "เปลี่ยนรหัสผ่านสำหรับเข้ารหัสไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบ" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "กรุณาตรวจสอบรหัสผ่านของคุณแล้วลองใหม่อีกครั้ง" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "ไม่สามารถเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสไฟล์ของคุณไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบของคุณได้" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "การเข้ารหัส" diff --git a/l10n/th_TH/files_external.po b/l10n/th_TH/files_external.po index 6d58bbeaf8134cf2f2a86921d3405f582df523b5..ef6af654263f5ddc49340bb26b2ed58d71f4040a 100644 --- a/l10n/th_TH/files_external.po +++ b/l10n/th_TH/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 00:50+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: AriesAnywhere Anywhere \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "กรุณากรอกรหัส app key ของ Dropbox แล msgid "Error configuring Google Drive storage" msgstr "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "คำเตือน: \"smbclient\" ยังไม่ได้ถูกติดตั้ง. การชี้ CIFS/SMB เพื่อแชร์ข้อมูลไม่สามารถกระทำได้ กรุณาสอบถามข้อมูลเพิ่มเติมจากผู้ดูแลระบบเพื่อติดตั้ง." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -116,6 +116,6 @@ msgstr "อนุญาตให้ผู้ใช้งานสามารถ msgid "SSL root certificates" msgstr "ใบรับรองความปลอดภัยด้วยระบบ SSL จาก Root" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "นำเข้าข้อมูลใบรับรองความปลอดภัยจาก Root" diff --git a/l10n/th_TH/files_trashbin.po b/l10n/th_TH/files_trashbin.po index 0232d63d0bcaec60cd21f1941b47605097facbcc..17daf5430d128de5053a82b3e6bbdf98a16f63cb 100644 --- a/l10n/th_TH/files_trashbin.po +++ b/l10n/th_TH/files_trashbin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -18,35 +18,49 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "ดำเนินการคืนค่า" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "ชื่อ" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "ลบแล้ว" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 โฟลเดอร์" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} โฟลเดอร์" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 ไฟล์" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} ไฟล์" @@ -57,3 +71,7 @@ msgstr "ไม่มีอะไรอยู่ในนี้ ถังขย #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "คืนค่า" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "ลบ" diff --git a/l10n/th_TH/files_versions.po b/l10n/th_TH/files_versions.po index c36c1b5941bc5d8a1aa17fca875257c953bf796a..4d724184b1c272112ef29642e47ae8df8301819b 100644 --- a/l10n/th_TH/files_versions.po +++ b/l10n/th_TH/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "ประวัติ" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "การกำหนดเวอร์ชั่นของไฟล์" diff --git a/l10n/th_TH/lib.po b/l10n/th_TH/lib.po index ab2e313276249719ed72b63e2e6ba36663245257..dbe07fd74279ad8a83065641c1fbb16cb4fd0d15 100644 --- a/l10n/th_TH/lib.po +++ b/l10n/th_TH/lib.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 00:44+0000\n" -"Last-Translator: AriesAnywhere Anywhere \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,47 +18,47 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "ช่วยเหลือ" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "ส่วนตัว" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "ตั้งค่า" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "ผู้ใช้งาน" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "แอปฯ" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "ผู้ดูแล" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "คุณสมบัติการดาวน์โหลด zip ถูกปิดการใช้งานไว้" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "ไฟล์สามารถดาวน์โหลดได้ทีละครั้งเท่านั้น" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "กลับไปที่ไฟล์" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "ไฟล์ที่เลือกมีขนาดใหญ่เกินกว่าที่จะสร้างเป็นไฟล์ zip" -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "ไม่สามารถกำหนดได้" @@ -86,6 +86,108 @@ msgstr "ข้อความ" msgid "Images" msgstr "รูปภาพ" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "วินาทีที่ผ่านมา" @@ -138,16 +240,16 @@ msgstr "ปีที่แล้ว" msgid "years ago" msgstr "ปีที่ผ่านมา" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s พร้อมให้ใช้งานได้แล้ว. ดูรายละเอียดเพิ่มเติม" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "ทันสมัย" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "การตรวจสอบชุดอัพเดทถูกปิดใช้งานไว้" diff --git a/l10n/th_TH/settings.po b/l10n/th_TH/settings.po index a04a575b536fe78baee0d7a5af3c153caebc4cad..01fe7419eb2da602ce94f89fc27dcde51d5c78a7 100644 --- a/l10n/th_TH/settings.po +++ b/l10n/th_TH/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -24,12 +24,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "ไม่สามารถโหลดรายการจาก App Store ได้" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "เกิดข้อผิดพลาดเกี่ยวกับสิทธิ์การเข้าใช้งาน" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -73,17 +73,17 @@ msgstr "คำร้องขอไม่ถูกต้อง" msgid "Admins can't remove themself from the admin group" msgstr "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "ไม่สามารถอัพเดทแอปฯ" @@ -119,59 +119,265 @@ msgstr "ข้อผิดพลาด" msgid "Updated" msgstr "อัพเดทแล้ว" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "กำลังบันทึุกข้อมูล..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "ลบแล้ว" + +#: js/users.js:30 +msgid "undo" +msgstr "เลิกทำ" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "กลุ่ม" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "ผู้ดูแลกลุ่ม" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "ลบ" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "ภาษาไทย" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "คำเตือนเกี่ยวกับความปลอดภัย" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "ไดเร็กทอรี่ข้อมูลและไฟล์ของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ต ไฟล์ .htaccess ที่ ownCloud มีให้ไม่สามารถทำงานได้อย่างเหมาะสม เราขอแนะนำให้คุณกำหนดค่าเว็บเซิร์ฟเวอร์ใหม่ในรูปแบบที่ไดเร็กทอรี่เก็บข้อมูลไม่สามารถเข้าถึงได้อีกต่อไป หรือคุณได้ย้ายไดเร็กทอรี่ที่ใช้เก็บข้อมูลไปอยู่ภายนอกตำแหน่ง root ของเว็บเซิร์ฟเวอร์แล้ว" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "มาก" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "รุ่น" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "พัฒนาโดย the ชุมชนผู้ใช้งาน ownCloud, the ซอร์สโค้ดอยู่ภายใต้สัญญาอนุญาตของ AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "เพิ่มแอปของคุณ" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "แอปฯอื่นเพิ่มเติม" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "เลือก App" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "ดูหน้าแอพพลิเคชั่นที่ apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-ลิขสิทธิ์การใช้งานโดย " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "อัพเดท" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "เอกสารคู่มือการใช้งานสำหรับผู้ใช้งาน" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "เอกสารคู่มือการใช้งานสำหรับผู้ดูแลระบบ" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "เอกสารคู่มือการใช้งานออนไลน์" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "กระดานสนทนา" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "บริการลูกค้าแบบเสียค่าใช้จ่าย" @@ -180,116 +386,86 @@ msgstr "บริการลูกค้าแบบเสียค่าใช msgid "You have used %s of the available %s" msgstr "คุณได้ใช้งานไปแล้ว %s จากจำนวนที่สามารถใช้ได้ %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "ลูกค้า" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "ดาวน์โหลดโปรแกรมไคลเอนต์สำหรับเครื่องเดสก์ท็อป" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "ดาวน์โหลดโปรแกรมไคลเอนต์สำหรับแอนดรอยด์" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "ดาวน์โหลดโปรแกรมไคลเอนต์สำหรับ iOS" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "แสดงหน้าจอวิซาร์ดนำทางครั้งแรกอีกครั้ง" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "รหัสผ่าน" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "รหัสผ่านของคุณถูกเปลี่ยนแล้ว" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "ไม่สามารถเปลี่ยนรหัสผ่านของคุณได้" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "รหัสผ่านปัจจุบัน" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "รหัสผ่านใหม่" -#: templates/personal.php:28 -msgid "show" -msgstr "แสดง" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "เปลี่ยนรหัสผ่าน" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "ชื่อที่ต้องการแสดง" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "อีเมล์" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "ที่อยู่อีเมล์ของคุณ" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "กรอกที่อยู่อีเมล์ของคุณเพื่อเปิดให้มีการกู้คืนรหัสผ่านได้" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "ภาษา" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "ช่วยกันแปล" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "ใช้ที่อยู่นี้เพื่อเชื่อมต่อกับ ownCloud ในโปรแกรมจัดการไฟล์ของคุณ" -#: templates/personal.php:85 -msgid "Version" -msgstr "รุ่น" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "พัฒนาโดย the ชุมชนผู้ใช้งาน ownCloud, the ซอร์สโค้ดอยู่ภายใต้สัญญาอนุญาตของ AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "ชื่อที่ใช้สำหรับเข้าสู่ระบบ" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "กลุ่ม" - #: templates/users.php:32 msgid "Create" msgstr "สร้าง" @@ -298,34 +474,26 @@ msgstr "สร้าง" msgid "Default Storage" msgstr "พื้นที่จำกัดข้อมูลเริ่มต้น" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "ไม่จำกัดจำนวน" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "อื่นๆ" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "ผู้ดูแลกลุ่ม" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "พื้นที่จัดเก็บข้อมูล" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "เปลี่ยนชื่อที่ต้องการให้แสดง" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "ตั้งค่ารหัสผ่านใหม่" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "ค่าเริ่มต้น" - -#: templates/users.php:165 -msgid "Delete" -msgstr "ลบ" diff --git a/l10n/th_TH/user_ldap.po b/l10n/th_TH/user_ldap.po index 549b4b971bca15763d6bb6d24375e27d669314b3..3d906030931f66bea57581cfb65848214ee8fb79 100644 --- a/l10n/th_TH/user_ldap.po +++ b/l10n/th_TH/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-04 00:05+0100\n" -"PO-Revision-Date: 2013-02-03 04:40+0000\n" -"Last-Translator: AriesAnywhere Anywhere \n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "ใช้ TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/tr/core.po b/l10n/tr/core.po index f11dd8854eee574c15979a93c1d6a96ef874e708..eff8470675f6dfab128846e501e69a4b643239fc 100644 --- a/l10n/tr/core.po +++ b/l10n/tr/core.po @@ -8,13 +8,14 @@ # , 2012. # ismail yenigul , 2013. # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,8 +56,9 @@ msgid "No category to add?" msgstr "Eklenecek kategori yok?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Bu kategori zaten mevcut: " +#, php-format +msgid "This category already exists: %s" +msgstr "Bu kategori zaten mevcut: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -160,59 +162,59 @@ msgstr "Kasım" msgid "December" msgstr "Aralık" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Ayarlar" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "saniye önce" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 dakika önce" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} dakika önce" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 saat önce" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} saat önce" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "bugün" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "dün" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} gün önce" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "geçen ay" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} ay önce" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "ay önce" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "geçen yıl" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "yıl önce" @@ -242,8 +244,8 @@ msgid "The object type is not specified." msgstr "Nesne türü belirtilmemiş." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Hata" @@ -255,15 +257,15 @@ msgstr "uygulama adı belirtilmedi." msgid "The required file {file} is not installed!" msgstr "İhtiyaç duyulan {file} dosyası kurulu değil." -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Paylaşılan" + +#: js/share.js:93 msgid "Share" msgstr "Paylaş" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Paylaşım sırasında hata " @@ -359,23 +361,23 @@ msgstr "sil" msgid "share" msgstr "paylaş" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Paralo korumalı" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Geçerlilik tarihi tanımlama kaldırma hatası" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Geçerlilik tarihi tanımlama hatası" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Gönderiliyor..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Eposta gönderildi" @@ -384,13 +386,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Güncelleme başarılı olmadı. Lütfen bu hatayı bildirin ownCloud community." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Güncelleme başarılı. ownCloud'a yönlendiriliyor." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "ownCloud parola sıfırlama" @@ -471,7 +473,7 @@ msgstr "Kategorileri düzenle" msgid "Add" msgstr "Ekle" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Güvenlik Uyarisi" @@ -481,71 +483,75 @@ msgid "" "OpenSSL extension." msgstr "Güvenli rasgele sayı üreticisi bulunamadı. Lütfen PHP OpenSSL eklentisini etkinleştirin." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Güvenli rasgele sayı üreticisi olmadan saldırganlar parola sıfırlama simgelerini tahmin edip hesabınızı ele geçirebilir." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için internet'ten erişime açık." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "data dizininiz ve dosyalarınız büyük ihtimalle internet üzerinden erişilebilir. Owncloud tarafından sağlanan .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu döküman dizini dışına almanızı şiddetle tavsiye ederiz." +"For information how to properly configure your server, please see the documentation." +msgstr "Server'ınızı nasıl ayarlayacağınıza dair bilgi için, lütfen bu linki ziyaret edin documentation." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Bir yönetici hesabı oluşturun" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Gelişmiş" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Veri klasörü" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Veritabanını ayarla" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "kullanılacak" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Veritabanı kullanıcı adı" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Veritabanı parolası" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Veritabanı adı" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Veritabanı tablo alanı" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Veritabanı sunucusu" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Kurulumu tamamla" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "kontrolünüzdeki web servisleri" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Çıkış yap" @@ -577,7 +583,7 @@ msgstr "Giriş yap" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Alternatif Girişler" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/tr/files.po b/l10n/tr/files.po index b02309d9941a766f90bf08390931b0e6bda62e4d..b99ed46f9cbc54e496c0e791cc368244abcbf13f 100644 --- a/l10n/tr/files.po +++ b/l10n/tr/files.po @@ -9,13 +9,14 @@ # , 2012. # ismail yenigul , 2013. # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,6 +24,20 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "%s taşınamadı. Bu isimde dosya zaten var." + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "%s taşınamadı" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Dosya adı değiştirilemedi" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Dosya yüklenmedi. Bilinmeyen hata" @@ -59,7 +74,7 @@ msgid "Failed to write to disk" msgstr "Diske yazılamadı" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "Yeterli disk alanı yok" #: ajax/upload.php:83 @@ -70,53 +85,54 @@ msgstr "Geçersiz dizin." msgid "Files" msgstr "Dosyalar" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Paylaşılmayan" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Kalıcı olarak sil" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Sil" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "İsim değiştir." -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Bekliyor" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} zaten mevcut" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "değiştir" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "Öneri ad" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "iptal" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "değiştirilen {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "geri al" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ismi {old_name} ile değiştirildi" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "Silme işlemini gerçekleştir" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -134,84 +150,80 @@ msgstr "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakter #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Depolama alanınız dolu, artık dosyalar güncellenmeyecek yada senkronizasyon edilmeyecek." #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Depolama alanınız neredeyse dolu ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Yükleme hatası" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Kapat" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Bekliyor" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 dosya yüklendi" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} dosya yükleniyor" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Yükleme iptal edildi." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL boş olamaz." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Geçersiz dizin adı. Shared isminin kullanımı Owncloud tarafından rezerver edilmiştir." -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ad" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Boyut" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Değiştirilme" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 dizin" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} dizin" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 dosya" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} dosya" @@ -268,8 +280,8 @@ msgid "From link" msgstr "Bağlantıdan" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Dosyalar silindi" #: templates/index.php:46 msgid "Cancel upload" @@ -283,6 +295,10 @@ msgstr "Burada hiçbir şey yok. Birşeyler yükleyin!" msgid "Download" msgstr "İndir" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Paylaşılmayan" + #: templates/index.php:105 msgid "Upload too large" msgstr "Yüklemeniz çok büyük" @@ -303,4 +319,4 @@ msgstr "Güncel tarama" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Sistem dosyası önbelleği güncelleniyor" diff --git a/l10n/tr/files_encryption.po b/l10n/tr/files_encryption.po index d8297b19c3554156fc4c28ea1e20ec6583d9ebf7..52609fb3a4e0799c1ca0da25772613e88a5b6c32 100644 --- a/l10n/tr/files_encryption.po +++ b/l10n/tr/files_encryption.po @@ -4,13 +4,14 @@ # # Translators: # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 20:10+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +19,21 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Şifreleme" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Dosya şifreleme aktif." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Belirtilen dosya tipleri şifrelenmeyecek:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Seçilen dosya tiplerini şifreleme:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/tr/files_external.po b/l10n/tr/files_external.po index bb6c928a053332dbc14892f1eddf139a01c9e9c4..742414f6662766a897c5813257fbc431afa7454b 100644 --- a/l10n/tr/files_external.po +++ b/l10n/tr/files_external.po @@ -4,13 +4,14 @@ # # Translators: # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-28 00:20+0100\n" -"PO-Revision-Date: 2012-12-27 13:50+0000\n" -"Last-Translator: Necdet Yücel \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,7 +21,7 @@ msgstr "" #: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 msgid "Access granted" -msgstr "" +msgstr "Giriş kabul edildi" #: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 msgid "Error configuring Dropbox storage" @@ -28,27 +29,27 @@ msgstr "" #: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 msgid "Grant access" -msgstr "" +msgstr "Erişim sağlandı" #: js/dropbox.js:73 js/google.js:72 msgid "Fill out all required fields" -msgstr "" +msgstr "Doldurulması zorunlu alanları doldur" #: js/dropbox.js:85 msgid "Please provide a valid Dropbox app key and secret." -msgstr "" +msgstr "Lütfen Dropbox app key ve secret temin ediniz" #: js/google.js:26 js/google.js:73 js/google.js:78 msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -106,16 +107,16 @@ msgstr "Sil" #: templates/settings.php:124 msgid "Enable User External Storage" -msgstr "" +msgstr "Kullanıcılar için Harici Depolamayı Etkinleştir" #: templates/settings.php:125 msgid "Allow users to mount their own external storage" -msgstr "" +msgstr "Kullanıcıların kendi harici depolamalarını bağlamalarına izin ver" #: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL kök sertifikaları" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Kök Sertifikalarını İçe Aktar" diff --git a/l10n/tr/files_trashbin.po b/l10n/tr/files_trashbin.po index af04cb4549624913486f9339a8a98b232f8e7e00..dbf5551a0ca593e0e62bfed4c264673aab9c4f0c 100644 --- a/l10n/tr/files_trashbin.po +++ b/l10n/tr/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "%s Kalıcı olarak silinemedi" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "%s Geri yüklenemedi" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "Geri yükleme işlemini gerçekleştir" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "Dosyayı kalıcı olarak sil" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Kalıcı olarak sil" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "İsim" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Silindi" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 dizin" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} dizin" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 dosya" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} dosya" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Burası boş. Çöp kutun tamamen boş." #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Geri yükle" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Sil" diff --git a/l10n/tr/files_versions.po b/l10n/tr/files_versions.po index 6f30f6794a29d302318fde4055b0a63fa46cc823..1e213a1436df390276aabc17662ef411f18f7ea7 100644 --- a/l10n/tr/files_versions.po +++ b/l10n/tr/files_versions.po @@ -4,13 +4,14 @@ # # Translators: # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 20:00+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Geri alınamıyor: %s" + +#: history.php:40 +msgid "success" +msgstr "Başarılı." + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Dosya %s, %s versiyonuna döndürüldü" + +#: history.php:49 +msgid "failure" +msgstr "hata" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Dosya %s, %s versiyonuna döndürülemedi." + +#: history.php:68 +msgid "No old versions available" +msgstr "Eski versiyonlar mevcut değil." + +#: history.php:73 +msgid "No path specified" +msgstr "Yama belirtilmemiş" + #: js/versions.js:16 msgid "History" msgstr "Geçmiş" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Dosya Sürümleri" diff --git a/l10n/tr/lib.po b/l10n/tr/lib.po index fadb1957cfb9b793a789489d08c230d7c6e53822..d11aba5798cc1a48f0d3b325994289720a86fee4 100644 --- a/l10n/tr/lib.po +++ b/l10n/tr/lib.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-23 00:05+0100\n" -"PO-Revision-Date: 2013-01-22 09:28+0000\n" -"Last-Translator: ismail yenigül \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,47 +19,47 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Yardı" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Kişisel" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Ayarlar" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Kullanıcılar" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Uygulamalar" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Yönetici" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP indirmeleri kapatılmıştır." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Dosyaların birer birer indirilmesi gerekmektedir." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Dosyalara dön" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Seçilen dosyalar bir zip dosyası oluşturmak için fazla büyüktür." -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "tespit edilemedi" @@ -87,6 +87,108 @@ msgstr "Metin" msgid "Images" msgstr "Resimler" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "saniye önce" @@ -139,16 +241,16 @@ msgstr "geçen yıl" msgid "years ago" msgstr "yıl önce" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s kullanılabilir durumda. Daha fazla bilgi alın" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "güncel" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "güncelleme kontrolü kapalı" diff --git a/l10n/tr/settings.po b/l10n/tr/settings.po index 0b51576c5a32beb03cf938152ec80c160a73c011..43a285d6b95bb68bdddbbccb948ad3df1ef89fa4 100644 --- a/l10n/tr/settings.po +++ b/l10n/tr/settings.po @@ -3,16 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Aranel Surion , 2011, 2012. +# Aranel Surion , 2011-2013. # Emre , 2012. # , 2012. # Necdet Yücel , 2012. +# Tolga Gezginiş , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -25,14 +26,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "App Store'dan liste yüklenemiyor" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Eşleşme hata" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Ekran adı değiştirilemiyor" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -72,25 +73,25 @@ msgstr "Geçersiz istek" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "" +msgstr "Yöneticiler kendilerini yönetici grubundan kaldıramaz" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Kullanıcı %s grubuna eklenemiyor" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" -msgstr "" +msgstr "%s grubundan kullanıcı kaldırılamıyor" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Uygulama güncellenemedi." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "{appversion} Güncelle" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -102,15 +103,15 @@ msgstr "Etkin" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Lütfen bekleyin...." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Güncelleniyor...." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Uygulama güncellenirken hata" #: js/apps.js:87 msgid "Error" @@ -118,61 +119,267 @@ msgstr "Hata" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Güncellendi" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Kaydediliyor..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "silindi" + +#: js/users.js:30 +msgid "undo" +msgstr "geri al" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Kullanıcı kaldırılamıyor" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Gruplar" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Yönetici Grubu " + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Sil" + +#: js/users.js:191 +msgid "add group" +msgstr "grup ekle" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Geçerli bir kullanıcı adı mutlaka sağlanmalı" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Kullanıcı oluşturulurken hata" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Geçerli bir parola mutlaka sağlanmalı" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__dil_adı__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Güvenlik Uyarisi" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "data dizininiz ve dosyalarınız büyük ihtimalle internet üzerinden erişilebilir. Owncloud tarafından sağlanan .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu döküman dizini dışına almanızı şiddetle tavsiye ederiz." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Kurulum Uyarısı" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Modül 'fileinfo' kayıp" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Paylaşıma izin ver" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Güvenlik" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "Kayıtlar" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "Daha fazla" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Sürüm" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Geliştirilen TarafownCloud community, the source code is altında lisanslanmıştır AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Uygulamanı Ekle" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" -msgstr "Daha fazla App" +msgstr "Daha fazla uygulama" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Bir uygulama seçin" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Uygulamanın sayfasına apps.owncloud.com adresinden bakın " -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " -msgstr "" +msgstr "-lisanslayan " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Güncelleme" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Kullanıcı Belgelendirmesi" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Yönetici Belgelendirmesi" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Çevrimiçi Belgelendirme" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Forum" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Hata Takip Sistemi" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Ticari Destek" @@ -181,115 +388,85 @@ msgstr "Ticari Destek" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Müşteriler" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Masaüstü İstemcilerini İndir" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Android İstemcisini İndir" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "iOS İstemcisini İndir" +msgid "Get the apps to sync your files" +msgstr "Dosyalarınızı senkronize etmek için uygulamayı indirin" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "İlk Çalıştırma Sihirbazını yeniden göster" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Parola" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Şifreniz değiştirildi" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Parolanız değiştirilemiyor" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Mevcut parola" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Yeni parola" -#: templates/personal.php:28 -msgid "show" -msgstr "göster" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Parola değiştir" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Ekran Adı" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Ekran adınız değiştirildi" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Ekran adınız değiştirilemiyor" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Ekran adını değiştir" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Eposta" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Eposta adresiniz" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Parola sıfırlamayı aktifleştirmek için eposta adresi girin" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Dil" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Çevirilere yardım edin" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "Bu adresi kullanarak ownCloud 'unuza dosya yöneticinizde bağlanın" -#: templates/personal.php:85 -msgid "Version" -msgstr "Sürüm" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Geliştirilen TarafownCloud community, the source code is altında lisanslanmıştır AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Gruplar" +msgstr "Giriş Adı" #: templates/users.php:32 msgid "Create" @@ -297,36 +474,28 @@ msgstr "Oluştur" #: templates/users.php:35 msgid "Default Storage" -msgstr "" +msgstr "Varsayılan Depolama" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" -msgstr "" +msgstr "Limitsiz" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Diğer" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Yönetici Grubu " - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" -msgstr "" +msgstr "Depolama" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "ekran adını değiştir" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "yeni parola belirle" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" -msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Sil" +msgstr "Varsayılan" diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po index 6a5f2430b1cb249b27d3744e6f826996df996ff7..62e1e9d8dd44769ab92fff3500451d74c7183e37 100644 --- a/l10n/tr/user_ldap.po +++ b/l10n/tr/user_ldap.po @@ -4,13 +4,14 @@ # # Translators: # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 20:00+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,17 +23,17 @@ msgstr "" msgid "Failed to delete the server configuration" msgstr "" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" msgstr "" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." msgstr "" -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." @@ -48,7 +49,7 @@ msgstr "" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Ayarları kalsınmı?" #: js/settings.js:97 msgid "Cannot add server configuration" @@ -56,11 +57,11 @@ msgstr "" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Bağlantı testi başarılı oldu" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Bağlantı testi başarısız oldu" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" @@ -68,7 +69,7 @@ msgstr "" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Silmeyi onayla" #: templates/settings.php:8 msgid "" @@ -87,224 +88,224 @@ msgstr "" msgid "Server configuration" msgstr "" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" -msgstr "Konak" +msgstr "Sunucu" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" -msgstr "Base DN" +msgstr "Ana DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" -msgstr "User DN" +msgstr "Kullanıcı DN" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "" -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Parola" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Anonim erişim için DN ve Parola alanlarını boş bırakın." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" -msgstr "Kullanıcı Oturum Açma Süzgeci" +msgstr "Kullanıcı Oturum Filtresi" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" -msgstr "Kullanıcı Liste Süzgeci" +msgstr "Kullanıcı Liste Filtresi" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bir yer tutucusu olmadan, örneğin \"objectClass=person\"" -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Grup Süzgeci" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Bağlantı ayarları" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" msgstr "" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Port" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Ana sunucuyu devredışı birak" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "TLS kullan" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "SSL bağlantıları ile kullanmayın, başarısız olacaktır." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "SSL sertifika doğrulamasını kapat." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Önerilmez, sadece test için kullanın." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Temel Kullanıcı Ağacı" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Temel Grup Ağacı" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Grup-Üye işbirliği" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" msgstr "" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "byte cinsinden" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Kullanıcı adı bölümünü boş bırakın (varsayılan). " -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Yardım" diff --git a/l10n/tr/user_webdavauth.po b/l10n/tr/user_webdavauth.po index 912a2ff24d2baefa7958a22c6042de8017769efe..f5f060e198ce141eeb8eb7f42abaf3f0d89718e5 100644 --- a/l10n/tr/user_webdavauth.po +++ b/l10n/tr/user_webdavauth.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # Necdet Yücel , 2012. +# TayançKILIÇLI , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 20:10+0000\n" +"Last-Translator: atakan96 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,13 +22,13 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV Kimlik doğrulaması" #: templates/settings.php:4 msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " diff --git a/l10n/uk/core.po b/l10n/uk/core.po index 60d1f1f6f1d95e4687c7459024f8021ded48768b..54ed07e8816070811d7597f554970a12d219f9e6 100644 --- a/l10n/uk/core.po +++ b/l10n/uk/core.po @@ -8,13 +8,14 @@ # Soul Kim , 2012. # , 2012. # , 2013. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,8 +56,9 @@ msgid "No category to add?" msgstr "Відсутні категорії для додавання?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Ця категорія вже існує: " +#, php-format +msgid "This category already exists: %s" +msgstr "Ця категорія вже існує: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -160,59 +162,59 @@ msgstr "Листопад" msgid "December" msgstr "Грудень" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Налаштування" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "секунди тому" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 хвилину тому" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} хвилин тому" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 годину тому" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} години тому" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "сьогодні" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "вчора" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} днів тому" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "минулого місяця" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} місяців тому" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "місяці тому" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "минулого року" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "роки тому" @@ -242,8 +244,8 @@ msgid "The object type is not specified." msgstr "Не визначено тип об'єкту." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Помилка" @@ -255,15 +257,15 @@ msgstr "Не визначено ім'я програми." msgid "The required file {file} is not installed!" msgstr "Необхідний файл {file} не встановлено!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Опубліковано" + +#: js/share.js:93 msgid "Share" msgstr "Поділитися" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Помилка під час публікації" @@ -359,23 +361,23 @@ msgstr "видалити" msgid "share" msgstr "опублікувати" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Захищено паролем" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Помилка при відміні терміна дії" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Помилка при встановленні терміна дії" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Надсилання..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Ел. пошта надіслана" @@ -384,13 +386,13 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Оновлення виконалось неуспішно. Будь ласка, повідомте про цю проблему в спільноті ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Оновлення виконалось успішно. Перенаправляємо вас на ownCloud." -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "скидання пароля ownCloud" @@ -471,7 +473,7 @@ msgstr "Редагувати категорії" msgid "Add" msgstr "Додати" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "Попередження про небезпеку" @@ -481,71 +483,75 @@ msgid "" "OpenSSL extension." msgstr "Не доступний безпечний генератор випадкових чисел, будь ласка, активуйте PHP OpenSSL додаток." -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "Без безпечного генератора випадкових чисел зловмисник може визначити токени скидання пароля і заволодіти Вашим обліковим записом." +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "Ваші дані каталогів і файлів, ймовірно, доступні з інтернету, тому що .htaccess файл не працює." + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера." +"For information how to properly configure your server, please see the documentation." +msgstr "Для отримання інформації, як правильно налаштувати сервер, зверніться до документації." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Створити обліковий запис адміністратора" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Додатково" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Каталог даних" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Налаштування бази даних" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "буде використано" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Користувач бази даних" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Пароль для бази даних" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Назва бази даних" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Таблиця бази даних" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Хост бази даних" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Завершити налаштування" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "веб-сервіс під вашим контролем" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Вихід" @@ -577,7 +583,7 @@ msgstr "Вхід" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Альтернативні Логіни" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/uk/files.po b/l10n/uk/files.po index 021cefdc45f3c0fd16d0420cc4e1682b45b49285..a81852cfc624de4e9f19a7c96af412a3edd66678 100644 --- a/l10n/uk/files.po +++ b/l10n/uk/files.po @@ -6,13 +6,14 @@ # , 2012. # , 2012. # Soul Kim , 2012. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +21,20 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Не вдалося перемістити %s - Файл з таким ім'ям вже існує" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Не вдалося перемістити %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Не вдалося перейменувати файл" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Не завантажено жодного файлу. Невідома помилка" @@ -56,72 +71,73 @@ msgid "Failed to write to disk" msgstr "Невдалося записати на диск" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "" +msgid "Not enough storage available" +msgstr "Місця більше немає" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Невірний каталог." #: appinfo/app.php:10 msgid "Files" msgstr "Файли" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Заборонити доступ" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Видалити назавжди" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Видалити" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Перейменувати" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Очікування" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} вже існує" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "заміна" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "запропонуйте назву" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "відміна" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "замінено {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "відмінити" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "замінено {new_name} на {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "виконати операцію видалення" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' це невірне ім'я файлу." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr " Ім'я файлу не може бути порожнім." #: js/files.js:64 msgid "" @@ -131,84 +147,80 @@ msgstr "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '* #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Ваше сховище переповнене, файли більше не можуть бути оновлені або синхронізовані !" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Ваше сховище майже повне ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Помилка завантаження" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Закрити" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Очікування" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 файл завантажується" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} файлів завантажується" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Завантаження перервано." -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL не може бути пустим." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Невірне ім'я теки. Використання \"Shared\" зарезервовано Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Ім'я" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Розмір" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Змінено" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 папка" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 файл" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} файлів" @@ -265,8 +277,8 @@ msgid "From link" msgstr "З посилання" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "Видалено файлів" #: templates/index.php:46 msgid "Cancel upload" @@ -280,6 +292,10 @@ msgstr "Тут нічого немає. Відвантажте що-небудь msgid "Download" msgstr "Завантажити" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Заборонити доступ" + #: templates/index.php:105 msgid "Upload too large" msgstr "Файл занадто великий" @@ -300,4 +316,4 @@ msgstr "Поточне сканування" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Оновлення кеша файлової системи..." diff --git a/l10n/uk/files_encryption.po b/l10n/uk/files_encryption.po index 535f30685532035c8ad7bdad40c2b38e1d8fea5c..f0341a7e32ca2e9f8297a8213713ec4b2f620706 100644 --- a/l10n/uk/files_encryption.po +++ b/l10n/uk/files_encryption.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 16:40+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,43 +19,21 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Шифрування" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Увімкнуто шифрування файлів." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Такі типи файлів шифруватись не будуть:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Виключити наступні типи файлів з ​​шифрування:" #: templates/settings.php:12 msgid "None" diff --git a/l10n/uk/files_external.po b/l10n/uk/files_external.po index dc8a15861878b402be07d2295a91fc7e70f95348..08d108f7f8b7cd56760420683c0c9085d993a9e4 100644 --- a/l10n/uk/files_external.po +++ b/l10n/uk/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-12 15:37+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "Будь ласка, надайте дійсний ключ та пар msgid "Error configuring Google Drive storage" msgstr "Помилка при налаштуванні сховища Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "Попередження: Клієнт \"smbclient\" не встановлено. Під'єднанатися до CIFS/SMB тек неможливо. Попрохайте системного адміністратора встановити його." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -101,7 +101,7 @@ msgid "Users" msgstr "Користувачі" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Видалити" @@ -113,10 +113,10 @@ msgstr "Активувати користувацькі зовнішні схо msgid "Allow users to mount their own external storage" msgstr "Дозволити користувачам монтувати власні зовнішні сховища" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL корневі сертифікати" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Імпортувати корневі сертифікати" diff --git a/l10n/uk/files_trashbin.po b/l10n/uk/files_trashbin.po index 299cd809b970ae3181007a4c30dfd2817c6d3786..8baab90eba95a5752ad783ae6ad5ce7b65c7e87c 100644 --- a/l10n/uk/files_trashbin.po +++ b/l10n/uk/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Неможливо видалити %s назавжди" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Неможливо відновити %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "виконати операцію відновлення" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "видалити файл назавжди" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Видалити назавжди" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Ім'я" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Видалено" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 папка" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} папок" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 файл" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} файлів" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Нічого немає. Ваший кошик для сміття пустий!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Відновити" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Видалити" diff --git a/l10n/uk/files_versions.po b/l10n/uk/files_versions.po index 1a8bb981db62637413e84932fe4a921437a97152..91c980409da40257707d21ef0e09a7ab348146fc 100644 --- a/l10n/uk/files_versions.po +++ b/l10n/uk/files_versions.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-20 00:02+0100\n" +"PO-Revision-Date: 2013-02-19 14:30+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,10 +19,45 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Не вдалося відновити: %s" + +#: history.php:40 +msgid "success" +msgstr "успішно" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "Файл %s був відновлений до версії %s" + +#: history.php:49 +msgid "failure" +msgstr "неуспішно" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "Файл %s не може бути відновлений до версії %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Старі версії недоступні" + +#: history.php:73 +msgid "No path specified" +msgstr "Шлях не вказаний" + #: js/versions.js:16 msgid "History" msgstr "Історія" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Відновити файл на попередню версію, натиснувши на кнопку Відновити" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Версії файлів" diff --git a/l10n/uk/lib.po b/l10n/uk/lib.po index 8d1708aa24eb38a8c99236a18d7b5eadfd6c6b4d..13539fc50aad54e801738ab2bd1949e5bcfd4878 100644 --- a/l10n/uk/lib.po +++ b/l10n/uk/lib.po @@ -7,13 +7,14 @@ # , 2012. # , 2012. # , 2013. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-18 00:03+0100\n" -"PO-Revision-Date: 2013-01-17 13:24+0000\n" -"Last-Translator: volodya327 \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,43 +22,43 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Допомога" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Особисте" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Налаштування" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Користувачі" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Додатки" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Адмін" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP завантаження вимкнено." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Файли повинні бути завантаженні послідовно." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Повернутися до файлів" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Вибрані фали завеликі для генерування zip файлу." @@ -89,6 +90,108 @@ msgstr "Текст" msgid "Images" msgstr "Зображення" +#: setup.php:34 +msgid "Set an admin username." +msgstr "Встановіть ім'я адміністратора." + +#: setup.php:37 +msgid "Set an admin password." +msgstr "Встановіть пароль адміністратора." + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "Вкажіть теку для даних." + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "%s введіть ім'я користувача бази даних." + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "%s введіть назву бази даних." + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "%s не можна використовувати крапки в назві бази даних" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "%s встановити хост бази даних." + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "PostgreSQL ім'я користувача та/або пароль не дійсні" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "Вам потрібно ввести або існуючий обліковий запис або administrator." + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "Oracle ім'я користувача та/або пароль не дійсні" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "MySQL ім'я користувача та/або пароль не дійсні" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "Помилка БД: \"%s\"" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "Команда, що викликала проблему: \"%s\"" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "Користувач MySQL '%s'@'localhost' вже існує." + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "Видалити цього користувача з MySQL" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "Користувач MySQL '%s'@'%%' вже існує" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "Видалити цього користувача з MySQL." + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний." + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "Будь ласка, перевірте інструкції по встановленню." + #: template.php:113 msgid "seconds ago" msgstr "секунди тому" @@ -141,16 +244,16 @@ msgstr "минулого року" msgid "years ago" msgstr "роки тому" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s доступно. Отримати детальну інформацію" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "оновлено" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "перевірка оновлень відключена" diff --git a/l10n/uk/settings.po b/l10n/uk/settings.po index 7d6f148c4e13b2cba04991bce9cde98f1d2117a7..b5d7a8ee06eccec1510fee1a2884c1e7d92ed1a9 100644 --- a/l10n/uk/settings.po +++ b/l10n/uk/settings.po @@ -6,12 +6,13 @@ # , 2012. # , 2012. # , 2012-2013. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -24,14 +25,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Не вдалося завантажити список з App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Помилка автентифікації" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Не вдалося змінити зображене ім'я" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -73,23 +74,23 @@ msgstr "Помилковий запит" msgid "Admins can't remove themself from the admin group" msgstr "Адміністратор не може видалити себе з групи адмінів" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Не вдалося додати користувача у групу %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Не вдалося видалити користувача із групи %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Не вдалося оновити програму. " #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Оновити до {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -101,15 +102,15 @@ msgstr "Включити" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Зачекайте, будь ласка..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Оновлюється..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Помилка при оновленні програми" #: js/apps.js:87 msgid "Error" @@ -117,61 +118,267 @@ msgstr "Помилка" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Оновлено" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Зберігаю..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "видалені" + +#: js/users.js:30 +msgid "undo" +msgstr "відмінити" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "Неможливо видалити користувача" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Групи" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Адміністратор групи" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Видалити" + +#: js/users.js:191 +msgid "add group" +msgstr "додати групу" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "Потрібно задати вірне ім'я користувача" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "Помилка при створенні користувача" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "Потрібно задати вірний пароль" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__language_name__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Попередження про небезпеку" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "Попередження при Налаштуванні" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний." + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "Будь ласка, перевірте інструкції по встановленню." + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "Модуль 'fileinfo' відсутній" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "PHP модуль 'fileinfo' відсутній. Ми наполегливо рекомендуємо увімкнути цей модуль, щоб отримати кращі результати при виявленні MIME-типів." + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "Локалізація не працює" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "Інтернет-з'єднання не працює" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "Цей сервер ownCloud не має під'єднання до Інтернету. Це означає, що деякі функції, такі як монтування зовнішніх накопичувачів, повідомлення про оновлення або встановлення допоміжних програм не працюють. Доступ до файлів ​​віддалено та відправка повідомлень електронною поштою також може не працювати. Ми пропонуємо увімкнути під'єднання до Інтернету для даного сервера, якщо ви хочете мати всі можливості ownCloud." + +#: templates/admin.php:92 +msgid "Cron" +msgstr "Cron" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "Виконати одне завдання для кожної завантаженої сторінки " + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "cron.php зареєстрований в службі webcron. Викликає cron.php сторінку в кореневому каталозі owncloud кожну хвилину по http." + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "Використовується системний cron сервіс. Виклик cron.php файла з owncloud теки за допомогою системного cronjob раз на хвилину." + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "Спільний доступ" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "Увімкнути API спільного доступу" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "Дозволити програмам використовувати API спільного доступу" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "Дозволити посилання" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "Дозволити користувачам відкривати спільний доступ до елементів за допомогою посилань" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "Дозволити перевідкривати спільний доступ" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "Дозволити користувачам знову відкривати спільний доступ до елементів, які вже відкриті для доступу" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "Дозволити користувачам відкривати спільний доступ для всіх" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи" + +#: templates/admin.php:168 +msgid "Security" +msgstr "Безпека" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "Примусове застосування HTTPS" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "Зобов'язати клієнтів під'єднуватись до ownCloud через шифроване з'єднання." + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "Будь ласка, під'єднайтесь до цього ownCloud за допомогою HTTPS, щоб увімкнути або вимкнути використання SSL." + +#: templates/admin.php:195 +msgid "Log" +msgstr "Протокол" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "Рівень протоколювання" + +#: templates/admin.php:223 +msgid "More" +msgstr "Більше" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Версія" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Розроблено ownCloud громадою, вихідний код має ліцензію AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Додати свою програму" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Більше програм" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Вибрати додаток" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Перегляньте сторінку програм на apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-licensed by " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Оновити" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "Документація Користувача" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "Документація Адміністратора" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "Он-Лайн Документація" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "Форум" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "БагТрекер" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "Комерційна підтримка" @@ -180,115 +387,85 @@ msgstr "Комерційна підтримка" msgid "You have used %s of the available %s" msgstr "Ви використали %s із доступних %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "Клієнти" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "Завантажити клієнт для ПК" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "Завантажити клієнт для Android" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "Завантажити клієнт для iOS" +msgid "Get the apps to sync your files" +msgstr "Отримати додатки для синхронізації ваших файлів" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Показувати Майстер Налаштувань знову" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Пароль" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Ваш пароль змінено" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Не вдалося змінити Ваш пароль" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Поточний пароль" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Новий пароль" -#: templates/personal.php:28 -msgid "show" -msgstr "показати" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Змінити пароль" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Показати Ім'я" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Ваше ім'я було змінене" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Неможливо змінити ваше зображене ім'я" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Змінити зображене ім'я" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Ел.пошта" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Ваша адреса електронної пошти" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Введіть адресу електронної пошти для відновлення паролю" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Мова" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Допомогти з перекладом" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "Використовуйте цю адресу для під'єднання до вашого ownCloud у вашому файловому менеджері" -#: templates/personal.php:85 -msgid "Version" -msgstr "Версія" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Розроблено ownCloud громадою, вихідний код має ліцензію AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Групи" +msgstr "Ім'я Логіну" #: templates/users.php:32 msgid "Create" @@ -298,34 +475,26 @@ msgstr "Створити" msgid "Default Storage" msgstr "сховище за замовчуванням" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "Необмежено" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Інше" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Адміністратор групи" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "Сховище" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "змінити зображене ім'я" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "встановити новий пароль" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "За замовчуванням" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Видалити" diff --git a/l10n/uk/user_ldap.po b/l10n/uk/user_ldap.po index 709ba9d797ff34d81755c93b039a863e4762ccd7..41cc88be8cc133809620aa7157af93e8935b6df6 100644 --- a/l10n/uk/user_ldap.po +++ b/l10n/uk/user_ldap.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # , 2012. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 10:30+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,23 +22,23 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Не вдалося видалити конфігурацію сервера" -#: ajax/testConfiguration.php:35 +#: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "" +msgstr "Конфігурація вірна і зв'язок може бути встановлений ​​!" -#: ajax/testConfiguration.php:37 +#: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "" +msgstr "Конфігурація вірна, але встановити зв'язок не вдалося. Будь ласка, перевірте налаштування сервера і облікові дані." -#: ajax/testConfiguration.php:40 +#: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "" +msgstr "Конфігурація невірна. Подробиці подивіться, будь ласка, в журналі ownCloud." #: js/settings.js:66 msgid "Deletion failed" @@ -45,31 +46,31 @@ msgstr "Видалення не було виконано" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "" +msgstr "Застосувати налаштування з останньої конфігурації сервера ?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "" +msgstr "Зберегти налаштування ?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "" +msgstr "Неможливо додати конфігурацію сервера" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "" +msgstr "Перевірка з'єднання пройшла успішно" #: js/settings.js:126 msgid "Connection test failed" -msgstr "" +msgstr "Перевірка з'єднання завершилась неуспішно" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "" +msgstr "Ви дійсно бажаєте видалити поточну конфігурацію сервера ?" #: js/settings.js:137 msgid "Confirm Deletion" -msgstr "" +msgstr "Підтвердіть Видалення" #: templates/settings.php:8 msgid "" @@ -82,230 +83,230 @@ msgstr "Увага: Застосунки user_ldap та user_webdavauth msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." -msgstr "" +msgstr "Увага: Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його." #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Налаштування Сервера" -#: templates/settings.php:17 +#: templates/settings.php:18 msgid "Add Server Configuration" -msgstr "" +msgstr "Додати налаштування Сервера" -#: templates/settings.php:21 +#: templates/settings.php:23 msgid "Host" msgstr "Хост" -#: templates/settings.php:21 +#: templates/settings.php:25 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://" -#: templates/settings.php:22 +#: templates/settings.php:26 msgid "Base DN" msgstr "Базовий DN" -#: templates/settings.php:22 +#: templates/settings.php:27 msgid "One Base DN per line" -msgstr "" +msgstr "Один Base DN на одній строчці" -#: templates/settings.php:22 +#: templates/settings.php:28 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково" -#: templates/settings.php:23 +#: templates/settings.php:30 msgid "User DN" msgstr "DN Користувача" -#: templates/settings.php:23 +#: templates/settings.php:32 msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." msgstr "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:24 +#: templates/settings.php:33 msgid "Password" msgstr "Пароль" -#: templates/settings.php:24 +#: templates/settings.php:36 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:25 +#: templates/settings.php:37 msgid "User Login Filter" msgstr "Фільтр Користувачів, що під'єднуються" -#: templates/settings.php:25 +#: templates/settings.php:40 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Визначає фільтр, який застосовується при спробі входу. %%uid замінює ім'я користувача при вході." -#: templates/settings.php:25 +#: templates/settings.php:41 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "використовуйте %%uid заповнювач, наприклад: \"uid=%%uid\"" -#: templates/settings.php:26 +#: templates/settings.php:42 msgid "User List Filter" msgstr "Фільтр Списку Користувачів" -#: templates/settings.php:26 +#: templates/settings.php:45 msgid "Defines the filter to apply, when retrieving users." msgstr "Визначає фільтр, який застосовується при отриманні користувачів" -#: templates/settings.php:26 +#: templates/settings.php:46 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=person\"." -#: templates/settings.php:27 +#: templates/settings.php:47 msgid "Group Filter" msgstr "Фільтр Груп" -#: templates/settings.php:27 +#: templates/settings.php:50 msgid "Defines the filter to apply, when retrieving groups." msgstr "Визначає фільтр, який застосовується при отриманні груп." -#: templates/settings.php:27 +#: templates/settings.php:51 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\"." -#: templates/settings.php:31 +#: templates/settings.php:55 msgid "Connection Settings" -msgstr "" +msgstr "Налаштування З'єднання" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "Configuration Active" -msgstr "" +msgstr "Налаштування Активне" -#: templates/settings.php:33 +#: templates/settings.php:57 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Якщо \"галочка\" знята, ця конфігурація буде пропущена." -#: templates/settings.php:34 +#: templates/settings.php:58 msgid "Port" msgstr "Порт" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Сервер для резервних копій" -#: templates/settings.php:35 +#: templates/settings.php:59 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Вкажіть додатковий резервний сервер. Він повинен бути копією головного LDAP/AD сервера." -#: templates/settings.php:36 +#: templates/settings.php:60 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Порт сервера для резервних копій" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "Disable Main Server" -msgstr "" +msgstr "Вимкнути Головний Сервер" -#: templates/settings.php:37 +#: templates/settings.php:61 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Коли увімкнуто, ownCloud буде приєднуватись лише до сервера з резервними копіями." -#: templates/settings.php:38 +#: templates/settings.php:62 msgid "Use TLS" msgstr "Використовуйте TLS" -#: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Не використовуйте його для SSL з'єднань, це не буде виконано." +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Не використовуйте це додатково для під'єднання до LDAP, бо виконано не буде." -#: templates/settings.php:39 +#: templates/settings.php:63 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечутливий до регістру LDAP сервер (Windows)" -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Turn off SSL certificate validation." msgstr "Вимкнути перевірку SSL сертифіката." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер." -#: templates/settings.php:40 +#: templates/settings.php:64 msgid "Not recommended, use for testing only." msgstr "Не рекомендується, використовуйте лише для тестів." -#: templates/settings.php:41 +#: templates/settings.php:65 msgid "in seconds. A change empties the cache." msgstr "в секундах. Зміна очищує кеш." -#: templates/settings.php:43 +#: templates/settings.php:67 msgid "Directory Settings" -msgstr "" +msgstr "Налаштування Каталога" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "User Display Name Field" msgstr "Поле, яке відображає Ім'я Користувача" -#: templates/settings.php:45 +#: templates/settings.php:69 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud." -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "Base User Tree" msgstr "Основне Дерево Користувачів" -#: templates/settings.php:46 +#: templates/settings.php:70 msgid "One User Base DN per line" -msgstr "" +msgstr "Один Користувач Base DN на одній строчці" -#: templates/settings.php:47 +#: templates/settings.php:71 msgid "User Search Attributes" -msgstr "" +msgstr "Пошукові Атрибути Користувача" -#: templates/settings.php:47 templates/settings.php:50 +#: templates/settings.php:71 templates/settings.php:74 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Додатково; один атрибут на строчку" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "Group Display Name Field" msgstr "Поле, яке відображає Ім'я Групи" -#: templates/settings.php:48 +#: templates/settings.php:72 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Атрибут LDAP, який використовується для генерації імен груп ownCloud." -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "Base Group Tree" msgstr "Основне Дерево Груп" -#: templates/settings.php:49 +#: templates/settings.php:73 msgid "One Group Base DN per line" -msgstr "" +msgstr "Одна Група Base DN на одній строчці" -#: templates/settings.php:50 +#: templates/settings.php:74 msgid "Group Search Attributes" -msgstr "" +msgstr "Пошукові Атрибути Групи" -#: templates/settings.php:51 +#: templates/settings.php:75 msgid "Group-Member association" msgstr "Асоціація Група-Член" -#: templates/settings.php:53 +#: templates/settings.php:77 msgid "Special Attributes" -msgstr "" +msgstr "Спеціальні Атрибути" -#: templates/settings.php:56 +#: templates/settings.php:80 msgid "in bytes" msgstr "в байтах" -#: templates/settings.php:58 +#: templates/settings.php:82 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD." -#: templates/settings.php:62 +#: templates/settings.php:86 msgid "Help" msgstr "Допомога" diff --git a/l10n/uk/user_webdavauth.po b/l10n/uk/user_webdavauth.po index eec04d63355481b9d304238c7e00deb8d2f80b36..59983e502099f5974ec80f20c12ccb5d97e385bc 100644 --- a/l10n/uk/user_webdavauth.po +++ b/l10n/uk/user_webdavauth.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # , 2012. +# пан Володимир , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-19 00:05+0100\n" +"PO-Revision-Date: 2013-02-18 16:40+0000\n" +"Last-Translator: volodya327 \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,15 +22,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Аутентифікація WebDAV" #: templates/settings.php:4 msgid "URL: http://" msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud надішле облікові дані на цей URL. Цей плагін перевірить відповідь і буде інтерпретувати HTTP коди 401 і 403 як повідомлення про недійсні повноваження, а решту відповідей як дійсні облікові дані." diff --git a/l10n/ur_PK/core.po b/l10n/ur_PK/core.po new file mode 100644 index 0000000000000000000000000000000000000000..e0d59c7ccd0225f2b4b279fa8a42dd885e8d1e3a --- /dev/null +++ b/l10n/ur_PK/core.po @@ -0,0 +1,595 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# M. Adil Javed , 2013. +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2013-02-26 10:41+0000\n" +"Last-Translator: adilch \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/share.php:97 +#, php-format +msgid "User %s shared a file with you" +msgstr "" + +#: ajax/share.php:99 +#, php-format +msgid "User %s shared a folder with you" +msgstr "" + +#: ajax/share.php:101 +#, php-format +msgid "" +"User %s shared the file \"%s\" with you. It is available for download here: " +"%s" +msgstr "" + +#: ajax/share.php:104 +#, php-format +msgid "" +"User %s shared the folder \"%s\" with you. It is available for download " +"here: %s" +msgstr "" + +#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 +msgid "Category type not provided." +msgstr "" + +#: ajax/vcategories/add.php:30 +msgid "No category to add?" +msgstr "شامل کرنے کے لیے کوئی زمرہ نہیں؟" + +#: ajax/vcategories/add.php:37 +#, php-format +msgid "This category already exists: %s" +msgstr "" + +#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 +#: ajax/vcategories/favorites.php:24 +#: ajax/vcategories/removeFromFavorites.php:26 +msgid "Object type not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:30 +#: ajax/vcategories/removeFromFavorites.php:30 +#, php-format +msgid "%s ID not provided." +msgstr "" + +#: ajax/vcategories/addToFavorites.php:35 +#, php-format +msgid "Error adding %s to favorites." +msgstr "" + +#: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 +msgid "No categories selected for deletion." +msgstr "ختم کرنے کے لیے کسی زمرہ جات کا انتخاب نہیں کیا گیا۔" + +#: ajax/vcategories/removeFromFavorites.php:35 +#, php-format +msgid "Error removing %s from favorites." +msgstr "" + +#: js/config.php:34 +msgid "Sunday" +msgstr "" + +#: js/config.php:35 +msgid "Monday" +msgstr "" + +#: js/config.php:36 +msgid "Tuesday" +msgstr "" + +#: js/config.php:37 +msgid "Wednesday" +msgstr "" + +#: js/config.php:38 +msgid "Thursday" +msgstr "" + +#: js/config.php:39 +msgid "Friday" +msgstr "" + +#: js/config.php:40 +msgid "Saturday" +msgstr "" + +#: js/config.php:45 +msgid "January" +msgstr "جنوری" + +#: js/config.php:46 +msgid "February" +msgstr "فرورئ" + +#: js/config.php:47 +msgid "March" +msgstr "مارچ" + +#: js/config.php:48 +msgid "April" +msgstr "اپریل" + +#: js/config.php:49 +msgid "May" +msgstr "مئی" + +#: js/config.php:50 +msgid "June" +msgstr "جون" + +#: js/config.php:51 +msgid "July" +msgstr "جولائی" + +#: js/config.php:52 +msgid "August" +msgstr "اگست" + +#: js/config.php:53 +msgid "September" +msgstr "ستمبر" + +#: js/config.php:54 +msgid "October" +msgstr "اکتوبر" + +#: js/config.php:55 +msgid "November" +msgstr "نومبر" + +#: js/config.php:56 +msgid "December" +msgstr "دسمبر" + +#: js/js.js:286 +msgid "Settings" +msgstr "سیٹینگز" + +#: js/js.js:768 +msgid "seconds ago" +msgstr "" + +#: js/js.js:769 +msgid "1 minute ago" +msgstr "" + +#: js/js.js:770 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/js.js:771 +msgid "1 hour ago" +msgstr "" + +#: js/js.js:772 +msgid "{hours} hours ago" +msgstr "" + +#: js/js.js:773 +msgid "today" +msgstr "" + +#: js/js.js:774 +msgid "yesterday" +msgstr "" + +#: js/js.js:775 +msgid "{days} days ago" +msgstr "" + +#: js/js.js:776 +msgid "last month" +msgstr "" + +#: js/js.js:777 +msgid "{months} months ago" +msgstr "" + +#: js/js.js:778 +msgid "months ago" +msgstr "" + +#: js/js.js:779 +msgid "last year" +msgstr "" + +#: js/js.js:780 +msgid "years ago" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "منتخب کریں" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "منسوخ کریں" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "نہیں" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "ہاں" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "اوکے" + +#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 +#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 +msgid "The object type is not specified." +msgstr "" + +#: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 +msgid "Error" +msgstr "ایرر" + +#: js/oc-vcategories.js:179 +msgid "The app name is not specified." +msgstr "" + +#: js/oc-vcategories.js:194 +msgid "The required file {file} is not installed!" +msgstr "" + +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "" + +#: js/share.js:93 +msgid "Share" +msgstr "" + +#: js/share.js:141 js/share.js:622 +msgid "Error while sharing" +msgstr "شئیرنگ کے دوران ایرر" + +#: js/share.js:152 +msgid "Error while unsharing" +msgstr "شئیرنگ ختم کرنے کے دوران ایرر" + +#: js/share.js:159 +msgid "Error while changing permissions" +msgstr "اختیارات کو تبدیل کرنے کے دوران ایرر" + +#: js/share.js:168 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:170 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:175 +msgid "Share with" +msgstr "اس کے ساتھ شئیر کریں" + +#: js/share.js:180 +msgid "Share with link" +msgstr "لنک کے ساتھ شئیر کریں" + +#: js/share.js:183 +msgid "Password protect" +msgstr "پاسورڈ سے محفوظ کریں" + +#: js/share.js:185 templates/installation.php:47 templates/login.php:35 +msgid "Password" +msgstr "پاسورڈ" + +#: js/share.js:189 +msgid "Email link to person" +msgstr "" + +#: js/share.js:190 +msgid "Send" +msgstr "" + +#: js/share.js:194 +msgid "Set expiration date" +msgstr "تاریخ معیاد سیٹ کریں" + +#: js/share.js:195 +msgid "Expiration date" +msgstr "تاریخ معیاد" + +#: js/share.js:227 +msgid "Share via email:" +msgstr "" + +#: js/share.js:229 +msgid "No people found" +msgstr "کوئی لوگ نہیں ملے۔" + +#: js/share.js:256 +msgid "Resharing is not allowed" +msgstr "دوبارہ شئیر کرنے کی اجازت نہیں" + +#: js/share.js:292 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:313 +msgid "Unshare" +msgstr "شئیرنگ ختم کریں" + +#: js/share.js:325 +msgid "can edit" +msgstr "ایڈٹ کر سکے" + +#: js/share.js:327 +msgid "access control" +msgstr "اسیس کنٹرول" + +#: js/share.js:330 +msgid "create" +msgstr "نیا بنائیں" + +#: js/share.js:333 +msgid "update" +msgstr "اپ ڈیٹ" + +#: js/share.js:336 +msgid "delete" +msgstr "ختم کریں" + +#: js/share.js:339 +msgid "share" +msgstr "شئیر کریں" + +#: js/share.js:373 js/share.js:569 +msgid "Password protected" +msgstr "پاسورڈ سے محفوظ کیا گیا ہے" + +#: js/share.js:582 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:594 +msgid "Error setting expiration date" +msgstr "" + +#: js/share.js:609 +msgid "Sending ..." +msgstr "" + +#: js/share.js:620 +msgid "Email sent" +msgstr "" + +#: js/update.js:14 +msgid "" +"The update was unsuccessful. Please report this issue to the ownCloud " +"community." +msgstr "" + +#: js/update.js:18 +msgid "The update was successful. Redirecting you to ownCloud now." +msgstr "" + +#: lostpassword/controller.php:48 +msgid "ownCloud password reset" +msgstr "اون کلاؤڈ پاسورڈ ری سیٹ" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "اپنا پاسورڈ ری سیٹ کرنے کے لیے اس لنک پر کلک کریں۔ {link}" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "آپ ای میل کے ذریعے اپنے پاسورڈ ری سیٹ کا لنک موصول کریں گے" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:41 +#: templates/login.php:28 +msgid "Username" +msgstr "یوزر نیم" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "ری سیٹ کی درخواست کریں" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "آپ کا پاسورڈ ری سیٹ کر دیا گیا ہے" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "لاگ ان صفحے کی طرف" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "نیا پاسورڈ" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "ری سیٹ پاسورڈ" + +#: strings.php:5 +msgid "Personal" +msgstr "ذاتی" + +#: strings.php:6 +msgid "Users" +msgstr "یوزرز" + +#: strings.php:7 +msgid "Apps" +msgstr "ایپز" + +#: strings.php:8 +msgid "Admin" +msgstr "ایڈمن" + +#: strings.php:9 +msgid "Help" +msgstr "مدد" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "پہنچ کی اجازت نہیں" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "نہیں مل سکا" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "زمرہ جات کی تدوین کریں" + +#: templates/edit_categories_dialog.php:16 +msgid "Add" +msgstr "شامل کریں" + +#: templates/installation.php:24 templates/installation.php:31 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:25 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:26 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + +#: templates/installation.php:33 +msgid "" +"For information how to properly configure your server, please see the documentation." +msgstr "" + +#: templates/installation.php:37 +msgid "Create an admin account" +msgstr "ایک ایڈمن اکاؤنٹ بنائیں" + +#: templates/installation.php:55 +msgid "Advanced" +msgstr "ایڈوانسڈ" + +#: templates/installation.php:57 +msgid "Data folder" +msgstr "ڈیٹا فولڈر" + +#: templates/installation.php:66 +msgid "Configure the database" +msgstr "ڈیٹا بیس کونفگر کریں" + +#: templates/installation.php:71 templates/installation.php:83 +#: templates/installation.php:94 templates/installation.php:105 +#: templates/installation.php:117 +msgid "will be used" +msgstr "استعمال ہو گا" + +#: templates/installation.php:129 +msgid "Database user" +msgstr "ڈیٹابیس یوزر" + +#: templates/installation.php:134 +msgid "Database password" +msgstr "ڈیٹابیس پاسورڈ" + +#: templates/installation.php:139 +msgid "Database name" +msgstr "ڈیٹابیس کا نام" + +#: templates/installation.php:149 +msgid "Database tablespace" +msgstr "ڈیٹابیس ٹیبل سپیس" + +#: templates/installation.php:156 +msgid "Database host" +msgstr "ڈیٹابیس ہوسٹ" + +#: templates/installation.php:162 +msgid "Finish setup" +msgstr "سیٹ اپ ختم کریں" + +#: templates/layout.guest.php:35 +msgid "web services under your control" +msgstr "آپ کے اختیار میں ویب سروسیز" + +#: templates/layout.user.php:53 +msgid "Log out" +msgstr "لاگ آؤٹ" + +#: templates/login.php:10 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:11 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:13 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:19 +msgid "Lost your password?" +msgstr "کیا آپ پاسورڈ بھول گئے ہیں؟" + +#: templates/login.php:41 +msgid "remember" +msgstr "یاد رکھیں" + +#: templates/login.php:43 +msgid "Log in" +msgstr "لاگ ان" + +#: templates/login.php:49 +msgid "Alternative Logins" +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "پچھلا" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "اگلا" + +#: templates/update.php:3 +#, php-format +msgid "Updating ownCloud to version %s, this may take a while." +msgstr "" diff --git a/l10n/ur_PK/files.po b/l10n/ur_PK/files.po new file mode 100644 index 0000000000000000000000000000000000000000..f564ce572c7fe314b9eb7c181f7ec53b8e24550c --- /dev/null +++ b/l10n/ur_PK/files.po @@ -0,0 +1,315 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + +#: ajax/upload.php:19 +msgid "No file was uploaded. Unknown error" +msgstr "" + +#: ajax/upload.php:26 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:27 +msgid "" +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " +msgstr "" + +#: ajax/upload.php:29 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:30 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:31 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:32 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:33 +msgid "Failed to write to disk" +msgstr "" + +#: ajax/upload.php:51 +msgid "Not enough storage available" +msgstr "" + +#: ajax/upload.php:82 +msgid "Invalid directory." +msgstr "" + +#: appinfo/app.php:10 +msgid "Files" +msgstr "" + +#: js/fileactions.js:125 +msgid "Delete permanently" +msgstr "" + +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:193 +msgid "Rename" +msgstr "" + +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "replace" +msgstr "" + +#: js/filelist.js:253 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 +msgid "cancel" +msgstr "" + +#: js/filelist.js:295 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:295 js/filelist.js:297 +msgid "undo" +msgstr "" + +#: js/filelist.js:297 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:322 +msgid "perform delete operation" +msgstr "" + +#: js/files.js:52 +msgid "'.' is an invalid file name." +msgstr "" + +#: js/files.js:56 +msgid "File name cannot be empty." +msgstr "" + +#: js/files.js:64 +msgid "" +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " +"allowed." +msgstr "" + +#: js/files.js:78 +msgid "Your storage is full, files can not be updated or synced anymore!" +msgstr "" + +#: js/files.js:82 +msgid "Your storage is almost full ({usedSpacePercent}%)" +msgstr "" + +#: js/files.js:225 +msgid "" +"Your download is being prepared. This might take some time if the files are " +"big." +msgstr "" + +#: js/files.js:262 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:262 +msgid "Upload Error" +msgstr "" + +#: js/files.js:273 +msgid "Close" +msgstr "" + +#: js/files.js:312 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:315 js/files.js:370 js/files.js:385 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:388 js/files.js:423 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:497 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:570 +msgid "URL cannot be empty." +msgstr "" + +#: js/files.js:575 +msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" +msgstr "" + +#: js/files.js:953 templates/index.php:67 +msgid "Name" +msgstr "" + +#: js/files.js:954 templates/index.php:78 +msgid "Size" +msgstr "" + +#: js/files.js:955 templates/index.php:80 +msgid "Modified" +msgstr "" + +#: js/files.js:974 +msgid "1 folder" +msgstr "" + +#: js/files.js:976 +msgid "{count} folders" +msgstr "" + +#: js/files.js:984 +msgid "1 file" +msgstr "" + +#: js/files.js:986 +msgid "{count} files" +msgstr "" + +#: lib/helper.php:11 templates/index.php:18 +msgid "Upload" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:10 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:15 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:17 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:20 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:22 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:26 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:10 +msgid "Text file" +msgstr "" + +#: templates/index.php:12 +msgid "Folder" +msgstr "" + +#: templates/index.php:14 +msgid "From link" +msgstr "" + +#: templates/index.php:40 +msgid "Deleted files" +msgstr "" + +#: templates/index.php:46 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:59 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:73 +msgid "Download" +msgstr "" + +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + +#: templates/index.php:105 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:107 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:112 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:115 +msgid "Current scanning" +msgstr "" + +#: templates/upgrade.php:2 +msgid "Upgrading filesystem cache..." +msgstr "" diff --git a/l10n/ur_PK/files_encryption.po b/l10n/ur_PK/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..d945e7ba70d2c255e196ae921791fddc6aa3a7a5 --- /dev/null +++ b/l10n/ur_PK/files_encryption.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings-personal.php:4 templates/settings.php:5 +msgid "Encryption" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "File encryption is enabled." +msgstr "" + +#: templates/settings-personal.php:11 +msgid "The following file types will not be encrypted:" +msgstr "" + +#: templates/settings.php:7 +msgid "Exclude the following file types from encryption:" +msgstr "" + +#: templates/settings.php:12 +msgid "None" +msgstr "" diff --git a/l10n/ur_PK/files_external.po b/l10n/ur_PK/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..d0fa4b9933f22dc5b5694e5677c34937c98f51fb --- /dev/null +++ b/l10n/ur_PK/files_external.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: lib/config.php:398 +msgid "" +"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " +"is not possible. Please ask your system administrator to install it." +msgstr "" + +#: lib/config.php:401 +msgid "" +"Warning: The FTP support in PHP is not enabled or installed. Mounting" +" of FTP shares is not possible. Please ask your system administrator to " +"install it." +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:8 templates/settings.php:22 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:9 +msgid "Backend" +msgstr "" + +#: templates/settings.php:10 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:11 +msgid "Options" +msgstr "" + +#: templates/settings.php:12 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:27 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:85 +msgid "None set" +msgstr "" + +#: templates/settings.php:86 +msgid "All Users" +msgstr "" + +#: templates/settings.php:87 +msgid "Groups" +msgstr "" + +#: templates/settings.php:95 +msgid "Users" +msgstr "یوزرز" + +#: templates/settings.php:108 templates/settings.php:109 +#: templates/settings.php:144 templates/settings.php:145 +msgid "Delete" +msgstr "" + +#: templates/settings.php:124 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:125 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:136 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:154 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/ur_PK/files_sharing.po b/l10n/ur_PK/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..bf96aabc4599264666fbc4b39985918d407ed4df --- /dev/null +++ b/l10n/ur_PK/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "پاسورڈ" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:10 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:13 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:19 templates/public.php:37 +msgid "Download" +msgstr "" + +#: templates/public.php:34 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:43 +msgid "web services under your control" +msgstr "آپ کے اختیار میں ویب سروسیز" diff --git a/l10n/ur_PK/files_trashbin.po b/l10n/ur_PK/files_trashbin.po new file mode 100644 index 0000000000000000000000000000000000000000..4e66d16ae31188be0dfe7439d93a05107954f109 --- /dev/null +++ b/l10n/ur_PK/files_trashbin.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2013-01-31 16:03+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 +msgid "perform restore operation" +msgstr "" + +#: js/trash.js:34 +msgid "delete file permanently" +msgstr "" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 +msgid "Name" +msgstr "" + +#: js/trash.js:152 templates/index.php:27 +msgid "Deleted" +msgstr "" + +#: js/trash.js:161 +msgid "1 folder" +msgstr "" + +#: js/trash.js:163 +msgid "{count} folders" +msgstr "" + +#: js/trash.js:171 +msgid "1 file" +msgstr "" + +#: js/trash.js:173 +msgid "{count} files" +msgstr "" + +#: templates/index.php:9 +msgid "Nothing in here. Your trash bin is empty!" +msgstr "" + +#: templates/index.php:20 templates/index.php:22 +msgid "Restore" +msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/ur_PK/files_versions.po b/l10n/ur_PK/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..1a897839d3c296842fac41fd45ffe1b2e5472c4a --- /dev/null +++ b/l10n/ur_PK/files_versions.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:7 +msgid "Enable" +msgstr "" diff --git a/l10n/ur_PK/lib.po b/l10n/ur_PK/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..88660467ae64a001e51abbdf7714ea18c551da94 --- /dev/null +++ b/l10n/ur_PK/lib.po @@ -0,0 +1,258 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:36+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: app.php:349 +msgid "Help" +msgstr "مدد" + +#: app.php:362 +msgid "Personal" +msgstr "ذاتی" + +#: app.php:373 +msgid "Settings" +msgstr "سیٹینگز" + +#: app.php:385 +msgid "Users" +msgstr "یوزرز" + +#: app.php:398 +msgid "Apps" +msgstr "ایپز" + +#: app.php:406 +msgid "Admin" +msgstr "ایڈمن" + +#: files.php:202 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:203 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:204 files.php:231 +msgid "Back to Files" +msgstr "" + +#: files.php:228 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: helper.php:228 +msgid "couldn't be determined" +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:62 json.php:73 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: template.php:113 +msgid "seconds ago" +msgstr "" + +#: template.php:114 +msgid "1 minute ago" +msgstr "" + +#: template.php:115 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:116 +msgid "1 hour ago" +msgstr "" + +#: template.php:117 +#, php-format +msgid "%d hours ago" +msgstr "" + +#: template.php:118 +msgid "today" +msgstr "" + +#: template.php:119 +msgid "yesterday" +msgstr "" + +#: template.php:120 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:121 +msgid "last month" +msgstr "" + +#: template.php:122 +#, php-format +msgid "%d months ago" +msgstr "" + +#: template.php:123 +msgid "last year" +msgstr "" + +#: template.php:124 +msgid "years ago" +msgstr "" + +#: updater.php:78 +#, php-format +msgid "%s is available. Get more information" +msgstr "" + +#: updater.php:81 +msgid "up to date" +msgstr "" + +#: updater.php:84 +msgid "updates check is disabled" +msgstr "" + +#: vcategories.php:188 vcategories.php:249 +#, php-format +msgid "Could not find category \"%s\"" +msgstr "" diff --git a/l10n/ur_PK/settings.po b/l10n/ur_PK/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..69006ade4028e22dfbdbb31d2fb5c4a6a7d9b7a3 --- /dev/null +++ b/l10n/ur_PK/settings.po @@ -0,0 +1,496 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 +msgid "Authentication error" +msgstr "" + +#: ajax/changedisplayname.php:32 +msgid "Unable to change display name" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:11 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/togglegroups.php:12 +msgid "Admins can't remove themself from the admin group" +msgstr "" + +#: ajax/togglegroups.php:30 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:36 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: ajax/updateapp.php:14 +msgid "Couldn't update app." +msgstr "" + +#: js/apps.js:30 +msgid "Update to {appversion}" +msgstr "" + +#: js/apps.js:36 js/apps.js:76 +msgid "Disable" +msgstr "" + +#: js/apps.js:36 js/apps.js:64 +msgid "Enable" +msgstr "" + +#: js/apps.js:55 +msgid "Please wait...." +msgstr "" + +#: js/apps.js:84 +msgid "Updating...." +msgstr "" + +#: js/apps.js:87 +msgid "Error while updating app" +msgstr "" + +#: js/apps.js:87 +msgid "Error" +msgstr "" + +#: js/apps.js:90 +msgid "Updated" +msgstr "" + +#: js/personal.js:99 +msgid "Saving..." +msgstr "" + +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "" + +#: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:28 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:34 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:36 +msgid "-licensed by " +msgstr "" + +#: templates/apps.php:38 +msgid "Update" +msgstr "" + +#: templates/help.php:4 +msgid "User Documentation" +msgstr "" + +#: templates/help.php:6 +msgid "Administrator Documentation" +msgstr "" + +#: templates/help.php:9 +msgid "Online Documentation" +msgstr "" + +#: templates/help.php:11 +msgid "Forum" +msgstr "" + +#: templates/help.php:14 +msgid "Bugtracker" +msgstr "" + +#: templates/help.php:17 +msgid "Commercial Support" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used %s of the available %s" +msgstr "" + +#: templates/personal.php:15 +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 +msgid "Password" +msgstr "پاسورڈ" + +#: templates/personal.php:38 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:39 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:40 +msgid "Current password" +msgstr "" + +#: templates/personal.php:42 +msgid "New password" +msgstr "نیا پاسورڈ" + +#: templates/personal.php:44 +msgid "Change password" +msgstr "" + +#: templates/personal.php:56 templates/users.php:78 +msgid "Display Name" +msgstr "" + +#: templates/personal.php:57 +msgid "Your display name was changed" +msgstr "" + +#: templates/personal.php:58 +msgid "Unable to change your display name" +msgstr "" + +#: templates/personal.php:61 +msgid "Change display name" +msgstr "" + +#: templates/personal.php:70 +msgid "Email" +msgstr "" + +#: templates/personal.php:72 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:73 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:79 templates/personal.php:80 +msgid "Language" +msgstr "" + +#: templates/personal.php:86 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:91 +msgid "WebDAV" +msgstr "" + +#: templates/personal.php:93 +msgid "Use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:77 +msgid "Login Name" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Storage" +msgstr "" + +#: templates/users.php:41 templates/users.php:139 +msgid "Unlimited" +msgstr "" + +#: templates/users.php:59 templates/users.php:154 +msgid "Other" +msgstr "" + +#: templates/users.php:84 +msgid "Storage" +msgstr "" + +#: templates/users.php:95 +msgid "change display name" +msgstr "" + +#: templates/users.php:99 +msgid "set new password" +msgstr "" + +#: templates/users.php:134 +msgid "Default" +msgstr "" diff --git a/l10n/ur_PK/user_ldap.po b/l10n/ur_PK/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..3d7d8d61d1db41855078cd4fe9f3f32d9a4cfed3 --- /dev/null +++ b/l10n/ur_PK/user_ldap.po @@ -0,0 +1,309 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-27 00:08+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/deleteConfiguration.php:34 +msgid "Failed to delete the server configuration" +msgstr "" + +#: ajax/testConfiguration.php:36 +msgid "The configuration is valid and the connection could be established!" +msgstr "" + +#: ajax/testConfiguration.php:39 +msgid "" +"The configuration is valid, but the Bind failed. Please check the server " +"settings and credentials." +msgstr "" + +#: ajax/testConfiguration.php:43 +msgid "" +"The configuration is invalid. Please look in the ownCloud log for further " +"details." +msgstr "" + +#: js/settings.js:66 +msgid "Deletion failed" +msgstr "" + +#: js/settings.js:82 +msgid "Take over settings from recent server configuration?" +msgstr "" + +#: js/settings.js:83 +msgid "Keep settings?" +msgstr "" + +#: js/settings.js:97 +msgid "Cannot add server configuration" +msgstr "" + +#: js/settings.js:121 +msgid "Connection test succeeded" +msgstr "" + +#: js/settings.js:126 +msgid "Connection test failed" +msgstr "" + +#: js/settings.js:136 +msgid "Do you really want to delete the current Server Configuration?" +msgstr "" + +#: js/settings.js:137 +msgid "Confirm Deletion" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may" +" experience unexpected behaviour. Please ask your system administrator to " +"disable one of them." +msgstr "" + +#: templates/settings.php:11 +msgid "" +"Warning: The PHP LDAP module is not installed, the backend will not " +"work. Please ask your system administrator to install it." +msgstr "" + +#: templates/settings.php:15 +msgid "Server configuration" +msgstr "" + +#: templates/settings.php:18 +msgid "Add Server Configuration" +msgstr "" + +#: templates/settings.php:23 +msgid "Host" +msgstr "" + +#: templates/settings.php:25 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:26 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:27 +msgid "One Base DN per line" +msgstr "" + +#: templates/settings.php:28 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:30 +msgid "User DN" +msgstr "" + +#: templates/settings.php:32 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:33 +msgid "Password" +msgstr "پاسورڈ" + +#: templates/settings.php:36 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:37 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:40 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:41 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:42 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:45 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:46 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:47 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:50 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:51 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:55 +msgid "Connection Settings" +msgstr "" + +#: templates/settings.php:57 +msgid "Configuration Active" +msgstr "" + +#: templates/settings.php:57 +msgid "When unchecked, this configuration will be skipped." +msgstr "" + +#: templates/settings.php:58 +msgid "Port" +msgstr "" + +#: templates/settings.php:59 +msgid "Backup (Replica) Host" +msgstr "" + +#: templates/settings.php:59 +msgid "" +"Give an optional backup host. It must be a replica of the main LDAP/AD " +"server." +msgstr "" + +#: templates/settings.php:60 +msgid "Backup (Replica) Port" +msgstr "" + +#: templates/settings.php:61 +msgid "Disable Main Server" +msgstr "" + +#: templates/settings.php:61 +msgid "When switched on, ownCloud will only connect to the replica server." +msgstr "" + +#: templates/settings.php:62 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:62 +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" + +#: templates/settings.php:63 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:64 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:64 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:64 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:65 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:67 +msgid "Directory Settings" +msgstr "" + +#: templates/settings.php:69 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:69 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:70 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:70 +msgid "One User Base DN per line" +msgstr "" + +#: templates/settings.php:71 +msgid "User Search Attributes" +msgstr "" + +#: templates/settings.php:71 templates/settings.php:74 +msgid "Optional; one attribute per line" +msgstr "" + +#: templates/settings.php:72 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:72 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:73 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:73 +msgid "One Group Base DN per line" +msgstr "" + +#: templates/settings.php:74 +msgid "Group Search Attributes" +msgstr "" + +#: templates/settings.php:75 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:77 +msgid "Special Attributes" +msgstr "" + +#: templates/settings.php:80 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:82 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:86 +msgid "Help" +msgstr "مدد" diff --git a/l10n/ur_PK/user_webdavauth.po b/l10n/ur_PK/user_webdavauth.po new file mode 100644 index 0000000000000000000000000000000000000000..31e16092c8873380144f103e83ca3d8388cc373c --- /dev/null +++ b/l10n/ur_PK/user_webdavauth.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2013-02-26 00:04+0100\n" +"PO-Revision-Date: 2012-11-09 09:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur_PK\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings.php:3 +msgid "WebDAV Authentication" +msgstr "" + +#: templates/settings.php:4 +msgid "URL: http://" +msgstr "" + +#: templates/settings.php:7 +msgid "" +"ownCloud will send the user credentials to this URL. This plugin checks the " +"response and will interpret the HTTP statuscodes 401 and 403 as invalid " +"credentials, and all other responses as valid credentials." +msgstr "" diff --git a/l10n/vi/core.po b/l10n/vi/core.po index 643d941604af1f58151ac5d56fe11923dbac95a0..f8755bc4aed531d256462cb026e336a850ea5750 100644 --- a/l10n/vi/core.po +++ b/l10n/vi/core.po @@ -6,15 +6,16 @@ # , 2012. # , 2012. # , 2012. +# sao sang , 2013. # Son Nguyen , 2012. # Sơn Nguyễn , 2012-2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,8 +56,9 @@ msgid "No category to add?" msgstr "Không có danh mục được thêm?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "Danh mục này đã được tạo :" +#, php-format +msgid "This category already exists: %s" +msgstr "Danh mục này đã tồn tại: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -160,59 +162,59 @@ msgstr "Tháng 11" msgid "December" msgstr "Tháng 12" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "Cài đặt" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "vài giây trước" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 phút trước" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} phút trước" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 giờ trước" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} giờ trước" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "hôm nay" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "hôm qua" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} ngày trước" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "tháng trước" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} tháng trước" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "tháng trước" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "năm trước" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "năm trước" @@ -242,8 +244,8 @@ msgid "The object type is not specified." msgstr "Loại đối tượng không được chỉ định." #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "Lỗi" @@ -255,15 +257,15 @@ msgstr "Tên ứng dụng không được chỉ định." msgid "The required file {file} is not installed!" msgstr "Tập tin cần thiết {file} không được cài đặt!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 +msgid "Shared" +msgstr "Được chia sẻ" + +#: js/share.js:93 msgid "Share" msgstr "Chia sẻ" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Shared" -msgstr "" - -#: js/share.js:141 js/share.js:611 +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "Lỗi trong quá trình chia sẻ" @@ -301,7 +303,7 @@ msgstr "Mật khẩu" #: js/share.js:189 msgid "Email link to person" -msgstr "" +msgstr "Liên kết email tới cá nhân" #: js/share.js:190 msgid "Send" @@ -359,25 +361,25 @@ msgstr "xóa" msgid "share" msgstr "chia sẻ" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "Mật khẩu bảo vệ" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "Lỗi không thiết lập ngày kết thúc" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "Lỗi cấu hình ngày kết thúc" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "Đang gởi ..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" -msgstr "" +msgstr "Email đã được gửi" #: js/update.js:14 msgid "" @@ -390,7 +392,7 @@ msgstr "Cập nhật không thành công . Vui lòng thông báo đến documentation." +msgstr "Để biết thêm cách cấu hình máy chủ của bạn, xin xem tài liệu." #: templates/installation.php:36 msgid "Create an admin account" msgstr "Tạo một tài khoản quản trị" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "Nâng cao" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "Thư mục dữ liệu" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "Cấu hình cơ sở dữ liệu" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "được sử dụng" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "Người dùng cơ sở dữ liệu" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "Mật khẩu cơ sở dữ liệu" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "Tên cơ sở dữ liệu" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "Cơ sở dữ liệu tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "Database host" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "Cài đặt hoàn tất" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "các dịch vụ web dưới sự kiểm soát của bạn" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "Đăng xuất" @@ -577,7 +583,7 @@ msgstr "Đăng nhập" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "Đăng nhập khác" #: templates/part.pagenavi.php:3 msgid "prev" @@ -590,4 +596,4 @@ msgstr "Kế tiếp" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" +msgstr "Cập nhật ownCloud lên phiên bản %s, có thể sẽ mất thời gian" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index 609e4ff5904178b1f6a84c9b44547a936b59509c..388859c6d8893dcb0096ee2053629b9fff4e7cfe 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/files.po @@ -6,14 +6,15 @@ # , 2012. # , 2012. # , 2012. +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +22,20 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "Không thể di chuyển %s - Đã có tên file này trên hệ thống" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "Không thể di chuyển %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "Không thể đổi tên file" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Không có tập tin nào được tải lên. Lỗi không xác định" @@ -32,7 +47,7 @@ msgstr "Không có lỗi, các tập tin đã được tải lên thành công" #: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "" +msgstr "The uploaded file exceeds the upload_max_filesize directive in php.ini: " #: ajax/upload.php:29 msgid "" @@ -57,72 +72,73 @@ msgid "Failed to write to disk" msgstr "Không thể ghi " #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "" +msgid "Not enough storage available" +msgstr "Không đủ không gian lưu trữ" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Thư mục không hợp lệ" #: appinfo/app.php:10 msgid "Files" msgstr "Tập tin" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "Không chia sẽ" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "Xóa vĩnh vễn" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "Xóa" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "Sửa tên" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Chờ" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} đã tồn tại" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "thay thế" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "tên gợi ý" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "hủy" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "đã thay thế {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "lùi lại" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "đã thay thế {new_name} bằng {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" -msgstr "" +msgstr "thực hiện việc xóa" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "'.' là một tên file không hợp lệ" #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "Tên file không được rỗng" #: js/files.js:64 msgid "" @@ -132,84 +148,80 @@ msgstr "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Your storage is full, files can not be updated or synced anymore!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Your storage is almost full ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Your download is being prepared. This might take some time if the files are big." -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "Tải lên lỗi" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "Đóng" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Chờ" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 tệp tin đang được tải lên" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} tập tin đang tải lên" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "Hủy tải lên" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này." -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL không được để trống." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "Tên" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "Kích cỡ" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "Thay đổi" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 thư mục" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} thư mục" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 tập tin" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} tập tin" @@ -266,8 +278,8 @@ msgid "From link" msgstr "Từ liên kết" #: templates/index.php:40 -msgid "Trash" -msgstr "" +msgid "Deleted files" +msgstr "File đã bị xóa" #: templates/index.php:46 msgid "Cancel upload" @@ -281,6 +293,10 @@ msgstr "Không có gì ở đây .Hãy tải lên một cái gì đó !" msgid "Download" msgstr "Tải xuống" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "Không chia sẽ" + #: templates/index.php:105 msgid "Upload too large" msgstr "Tập tin tải lên quá lớn" @@ -301,4 +317,4 @@ msgstr "Hiện tại đang quét" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Upgrading filesystem cache..." diff --git a/l10n/vi/files_encryption.po b/l10n/vi/files_encryption.po index a845b05ea15875b18f4e03e39f173ea5722bd05f..af199ade990ade7f5cff1fc86c3df75d73c53743 100644 --- a/l10n/vi/files_encryption.po +++ b/l10n/vi/files_encryption.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -18,43 +19,21 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "Mã hóa" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "Mã hóa file đã mở" #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "Loại file sau sẽ không được mã hóa" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "Việc mã hóa không bao gồm loại file sau" #: templates/settings.php:12 msgid "None" diff --git a/l10n/vi/files_external.po b/l10n/vi/files_external.po index 72b1138b2b2336a7cf1e71a6f5f5911b719321a4..4e047a661a414aa921f2793cc8dbce210004f494 100644 --- a/l10n/vi/files_external.po +++ b/l10n/vi/files_external.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,18 +44,18 @@ msgstr "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã b msgid "Error configuring Google Drive storage" msgstr "Lỗi cấu hình lưu trữ Google Drive" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." -msgstr "" +msgstr "Cảnh báo: \"smbclient\" chưa được cài đặt. Mount CIFS/SMB shares là không thể thực hiện được. Hãy hỏi người quản trị hệ thống để cài đặt nó." -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "" +msgstr "Cảnh báo: FTP trong PHP chưa được cài đặt hoặc chưa được mở. Mount FTP shares là không thể. Xin hãy yêu cầu quản trị hệ thống của bạn cài đặt nó." #: templates/settings.php:3 msgid "External Storage" @@ -101,7 +102,7 @@ msgid "Users" msgstr "Người dùng" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "Xóa" @@ -113,10 +114,10 @@ msgstr "Kích hoạt tính năng lưu trữ ngoài" msgid "Allow users to mount their own external storage" msgstr "Cho phép người dùng kết nối với lưu trữ riêng bên ngoài của họ" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "Chứng chỉ SSL root" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "Nhập Root Certificate" diff --git a/l10n/vi/files_trashbin.po b/l10n/vi/files_trashbin.po index 4882b64008b28e723c2956110abb5c86327dc691..1bd8d833be1f90d426531dc0f63425e0a6e16706 100644 --- a/l10n/vi/files_trashbin.po +++ b/l10n/vi/files_trashbin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# sao sang , 2013. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -17,42 +18,60 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "Không thể óa %s vĩnh viễn" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "Không thể khôi phục %s" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" -msgstr "" +msgstr "thực hiện phục hồi" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" -msgstr "" +msgstr "xóa file vĩnh viễn" + +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "Xóa vĩnh vễn" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "Tên" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "Đã xóa" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 thư mục" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} thư mục" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 tập tin" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} tập tin" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "Không có gì ở đây. Thùng rác của bạn rỗng!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" -msgstr "" +msgstr "Khôi phục" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "Xóa" diff --git a/l10n/vi/files_versions.po b/l10n/vi/files_versions.po index 4de9dbf8467b1eac1bd1057ea19885f8d54d688f..86b6d7a99838bcc91be2a5ea0a4eae52c4aa55ac 100644 --- a/l10n/vi/files_versions.po +++ b/l10n/vi/files_versions.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 18:30+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,10 +20,45 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "Không thể khôi phục: %s" + +#: history.php:40 +msgid "success" +msgstr "thành công" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "File %s đã được khôi phục về phiên bản %s" + +#: history.php:49 +msgid "failure" +msgstr "Thất bại" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "File %s không thể khôi phục về phiên bản %s" + +#: history.php:68 +msgid "No old versions available" +msgstr "Không có phiên bản cũ nào" + +#: history.php:73 +msgid "No path specified" +msgstr "Không chỉ ra đường dẫn rõ ràng" + #: js/versions.js:16 msgid "History" msgstr "Lịch sử" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "Khôi phục một file về phiên bản trước đó bằng cách click vào nút Khôi phục tương ứng" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "Phiên bản tập tin" diff --git a/l10n/vi/lib.po b/l10n/vi/lib.po index d838960fd97a3d113d073073b0c9558daedace5b..c09c4caadc13287816cb2d10e8132addd98551ed 100644 --- a/l10n/vi/lib.po +++ b/l10n/vi/lib.po @@ -5,13 +5,14 @@ # Translators: # , 2012. # , 2012. +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -20,49 +21,49 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "Giúp đỡ" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "Cá nhân" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "Cài đặt" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "Người dùng" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "Ứng dụng" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "Quản trị" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "Tải về ZIP đã bị tắt." -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "Tập tin cần phải được tải về từng người một." -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "Trở lại tập tin" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "Tập tin được chọn quá lớn để tạo tập tin ZIP." #: helper.php:228 msgid "couldn't be determined" -msgstr "" +msgstr "không thể phát hiện được" #: json.php:28 msgid "Application is not enabled" @@ -88,6 +89,108 @@ msgstr "Văn bản" msgid "Images" msgstr "Hình ảnh" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "1 giây trước" @@ -140,16 +243,16 @@ msgstr "năm trước" msgid "years ago" msgstr "năm trước" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s có sẵn. xem thêm ở đây" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "đến ngày" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "đã TĂT chức năng cập nhật " diff --git a/l10n/vi/settings.po b/l10n/vi/settings.po index a8cdfa2fbb90e1d99cee4a9cf0e6b398fd8e3401..c0451608cf16628df89a5831569874c85849a8e5 100644 --- a/l10n/vi/settings.po +++ b/l10n/vi/settings.po @@ -6,6 +6,7 @@ # , 2012. # , 2012. # , 2012. +# sao sang , 2013. # Son Nguyen , 2012. # Sơn Nguyễn , 2012. # , 2012. @@ -13,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -27,14 +28,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "Không thể tải danh sách ứng dụng từ App Store" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "Lỗi xác thực" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "Không thể thay đổi tên hiển thị" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -76,23 +77,23 @@ msgstr "Yêu cầu không hợp lệ" msgid "Admins can't remove themself from the admin group" msgstr "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "Không thể thêm người dùng vào nhóm %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "Không thể xóa người dùng từ nhóm %s" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Không thể cập nhật ứng dụng" #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Cập nhật lên {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -104,15 +105,15 @@ msgstr "Bật" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Xin hãy đợi..." #: js/apps.js:84 msgid "Updating...." -msgstr "" +msgstr "Đang cập nhật..." #: js/apps.js:87 msgid "Error while updating app" -msgstr "" +msgstr "Lỗi khi cập nhật ứng dụng" #: js/apps.js:87 msgid "Error" @@ -120,178 +121,354 @@ msgstr "Lỗi" #: js/apps.js:90 msgid "Updated" -msgstr "" +msgstr "Đã cập nhật" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "Đang tiến hành lưu ..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "đã xóa" + +#: js/users.js:30 +msgid "undo" +msgstr "lùi lại" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "Nhóm" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "Nhóm quản trị" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "Xóa" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__Ngôn ngữ___" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "Cảnh bảo bảo mật" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "Thư mục dữ liệu và những tập tin của bạn có thể dễ dàng bị truy cập từ mạng. Tập tin .htaccess do ownCloud cung cấp không hoạt động. Chúng tôi đề nghị bạn nên cấu hình lại máy chủ web để thư mục dữ liệu không còn bị truy cập hoặc bạn nên di chuyển thư mục dữ liệu ra bên ngoài thư mục gốc của máy chủ." + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "hơn" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "Phiên bản" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "Được phát triển bởi cộng đồng ownCloud, mã nguồn đã được cấp phép theo chuẩn AGPL." + +#: templates/apps.php:11 msgid "Add your App" msgstr "Thêm ứng dụng của bạn" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "Nhiều ứng dụng hơn" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "Chọn một ứng dụng" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "Xem nhiều ứng dụng hơn tại apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-Giấy phép được cấp bởi " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "Cập nhật" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" -msgstr "" +msgstr "Tài liệu người sử dụng" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" -msgstr "" +msgstr "Tài liệu quản trị" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" -msgstr "" +msgstr "Tài liệu trực tuyến" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" -msgstr "" +msgstr "Diễn đàn" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" -msgstr "" +msgstr "Hệ ghi nhận lỗi" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" -msgstr "" +msgstr "Hỗ trợ có phí" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" msgstr "Bạn đã sử dụng %s có sẵn %s " -#: templates/personal.php:12 -msgid "Clients" -msgstr "Khách hàng" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "" +msgid "Get the apps to sync your files" +msgstr "Nhận ứng dụng để đồng bộ file của bạn" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "Hiện lại việc chạy đồ thuật khởi đầu" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "Mật khẩu" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "Mật khẩu của bạn đã được thay đổi." -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "Không thể đổi mật khẩu" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "Mật khẩu cũ" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "Mật khẩu mới " -#: templates/personal.php:28 -msgid "show" -msgstr "Hiện" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "Đổi mật khẩu" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" -msgstr "" +msgstr "Tên hiển thị" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "Tên hiển thị của bạn đã được thay đổi" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "Không thể thay đổi tên hiển thị của bạn" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "Thay đổi tên hiển thị" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "Email của bạn" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "Nhập địa chỉ email của bạn để khôi phục lại mật khẩu" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "Ngôn ngữ" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "Hỗ trợ dịch thuật" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "Sử dụng địa chỉ này để kết nối ownCloud của bạn trong trình quản lý file của bạn" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "Được phát triển bởi cộng đồng ownCloud, mã nguồn đã được cấp phép theo chuẩn AGPL." - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" -msgstr "" - -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "Nhóm" +msgstr "Tên đăng nhập" #: templates/users.php:32 msgid "Create" @@ -299,36 +476,28 @@ msgstr "Tạo" #: templates/users.php:35 msgid "Default Storage" -msgstr "" +msgstr "Bộ nhớ mặc định" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" -msgstr "" +msgstr "Không giới hạn" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "Khác" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "Nhóm quản trị" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" -msgstr "" +msgstr "Bộ nhớ" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" -msgstr "" +msgstr "Thay đổi tên hiển thị" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" -msgstr "" +msgstr "đặt mật khẩu mới" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" -msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "Xóa" +msgstr "Mặc định" diff --git a/l10n/vi/user_ldap.po b/l10n/vi/user_ldap.po index d067549c1d8278e44d449a3ac0355ac1a47fbfde..003187cb06d08824e6c9336e1a86ae8a583c1d4d 100644 --- a/l10n/vi/user_ldap.po +++ b/l10n/vi/user_ldap.po @@ -4,14 +4,15 @@ # # Translators: # , 2012. +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 19:00+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -174,7 +175,7 @@ msgstr "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\"." #: templates/settings.php:31 msgid "Connection Settings" -msgstr "" +msgstr "Connection Settings" #: templates/settings.php:33 msgid "Configuration Active" @@ -200,23 +201,23 @@ msgstr "" #: templates/settings.php:36 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Cổng sao lưu (Replica)" #: templates/settings.php:37 msgid "Disable Main Server" -msgstr "" +msgstr "Tắt máy chủ chính" #: templates/settings.php:37 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "When switched on, ownCloud will only connect to the replica server." #: templates/settings.php:38 msgid "Use TLS" msgstr "Sử dụng TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "Kết nối SSL bị lỗi. " +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "Do not use it additionally for LDAPS connections, it will fail." #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" @@ -242,7 +243,7 @@ msgstr "trong vài giây. Một sự thay đổi bộ nhớ cache." #: templates/settings.php:43 msgid "Directory Settings" -msgstr "" +msgstr "Directory Settings" #: templates/settings.php:45 msgid "User Display Name Field" @@ -262,11 +263,11 @@ msgstr "" #: templates/settings.php:47 msgid "User Search Attributes" -msgstr "" +msgstr "User Search Attributes" #: templates/settings.php:47 templates/settings.php:50 msgid "Optional; one attribute per line" -msgstr "" +msgstr "Optional; one attribute per line" #: templates/settings.php:48 msgid "Group Display Name Field" @@ -286,7 +287,7 @@ msgstr "" #: templates/settings.php:50 msgid "Group Search Attributes" -msgstr "" +msgstr "Group Search Attributes" #: templates/settings.php:51 msgid "Group-Member association" @@ -294,7 +295,7 @@ msgstr "Nhóm thành viên Cộng đồng" #: templates/settings.php:53 msgid "Special Attributes" -msgstr "" +msgstr "Special Attributes" #: templates/settings.php:56 msgid "in bytes" diff --git a/l10n/vi/user_webdavauth.po b/l10n/vi/user_webdavauth.po index 5442bdaff4254a6f120a189e07b7325d2a1753b5..57c796e00db20b026f43e25794eaf661b5c80f1c 100644 --- a/l10n/vi/user_webdavauth.po +++ b/l10n/vi/user_webdavauth.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# sao sang , 2013. # Sơn Nguyễn , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 18:30+0000\n" +"Last-Translator: saosangm \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,15 +21,15 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "Xác thực WebDAV" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" -#: templates/settings.php:6 +#: templates/settings.php:7 msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "" +msgstr "ownCloud sẽ gửi chứng thư người dùng tới URL này. Tính năng này kiểm tra trả lời và sẽ hiểu mã 401 và 403 của giao thức HTTP là chứng thư không hợp lệ, và mọi trả lời khác được coi là hợp lệ." diff --git a/l10n/zh_CN.GB2312/core.po b/l10n/zh_CN.GB2312/core.po index 4a6e721e77f6df2b769eaf69d34a5c5a091e9481..971edd7b11dfeaf8d1e0b0cdb9bc4c579c4c24b6 100644 --- a/l10n/zh_CN.GB2312/core.po +++ b/l10n/zh_CN.GB2312/core.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -52,8 +52,9 @@ msgid "No category to add?" msgstr "没有分类添加了?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "这个分类已经存在了:" +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -157,59 +158,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "设置" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "秒前" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 分钟前" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} 分钟前" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "今天" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "昨天" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "上个月" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "月前" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "去年" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "年前" @@ -239,8 +240,8 @@ msgid "The object type is not specified." msgstr "" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "错误" @@ -252,15 +253,15 @@ msgstr "" msgid "The required file {file} is not installed!" msgstr "" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "分享" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "分享" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "分享出错" @@ -356,23 +357,23 @@ msgstr "删除" msgid "share" msgstr "分享" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "密码保护" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "取消设置失效日期出错" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "设置失效日期出错" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "" -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "" @@ -387,7 +388,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "私有云密码重置" @@ -468,7 +469,7 @@ msgstr "编辑分类" msgid "Add" msgstr "添加" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "安全警告" @@ -478,71 +479,75 @@ msgid "" "OpenSSL extension." msgstr "没有安全随机码生成器,请启用 PHP OpenSSL 扩展。" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "没有安全随机码生成器,黑客可以预测密码重置令牌并接管你的账户。" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "您的数据文件夹和您的文件或许能够从互联网访问。ownCloud 提供的 .htaccesss 文件未其作用。我们强烈建议您配置网络服务器以使数据文件夹不能从互联网访问,或将移动数据文件夹移出网络服务器文档根目录。" +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "建立一个 管理帐户" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "进阶" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "数据存放文件夹" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "配置数据库" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "将会使用" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "数据库用户" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "数据库密码" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "数据库用户名" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "数据库表格空间" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "数据库主机" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "完成安装" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "你控制下的网络服务" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "注销" diff --git a/l10n/zh_CN.GB2312/files.po b/l10n/zh_CN.GB2312/files.po index 31b335db11b57648b8920fb18a0ea1bafd1cd5fd..dd2697a69410223594eed71c030e7580d25416d5 100644 --- a/l10n/zh_CN.GB2312/files.po +++ b/l10n/zh_CN.GB2312/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,20 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "没有上传文件。未知错误" @@ -55,7 +69,7 @@ msgid "Failed to write to disk" msgstr "写磁盘失败" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -66,51 +80,52 @@ msgstr "" msgid "Files" msgstr "文件" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "取消共享" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "删除" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "重命名" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "Pending" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} 已存在" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "替换" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "推荐名称" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "取消" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "已替换 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "撤销" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "已用 {old_name} 替换 {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -136,78 +151,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "不能上传你指定的文件,可能因为它是个文件夹或者大小为0" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "上传错误" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "关闭" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "Pending" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 个文件正在上传" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} 个文件正在上传" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "上传取消了" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传。关闭页面会取消上传。" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "网址不能为空。" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名字" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改日期" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 个文件夹" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 个文件" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 个文件" @@ -264,7 +275,7 @@ msgid "From link" msgstr "来自链接" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -279,6 +290,10 @@ msgstr "这里没有东西.上传点什么!" msgid "Download" msgstr "下载" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "取消共享" + #: templates/index.php:105 msgid "Upload too large" msgstr "上传的文件太大了" diff --git a/l10n/zh_CN.GB2312/files_encryption.po b/l10n/zh_CN.GB2312/files_encryption.po index bacd5c9294bf010b87536618d4704aae97d64a1d..262bed13b5928d8f3139e8d10f84cf8bf4568cd2 100644 --- a/l10n/zh_CN.GB2312/files_encryption.po +++ b/l10n/zh_CN.GB2312/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "加密" diff --git a/l10n/zh_CN.GB2312/files_external.po b/l10n/zh_CN.GB2312/files_external.po index 066da805d348c278b64ca207747687167daf856c..3b106784f01d35e3caf37b1ef96bde0e84790788 100644 --- a/l10n/zh_CN.GB2312/files_external.po +++ b/l10n/zh_CN.GB2312/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "请提供一个有效的 Dropbox app key 和 secret。" msgid "Error configuring Google Drive storage" msgstr "配置 Google Drive 存储失败" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "用户" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "删除" @@ -112,10 +112,10 @@ msgstr "启用用户外部存储" msgid "Allow users to mount their own external storage" msgstr "允许用户挂载他们的外部存储" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "SSL 根证书" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "导入根证书" diff --git a/l10n/zh_CN.GB2312/files_trashbin.po b/l10n/zh_CN.GB2312/files_trashbin.po index 9add0d0faa96273e08861e49ba9c7268a94b741e..23c17f7e30d21b9d171059b1800251eb86234eb0 100644 --- a/l10n/zh_CN.GB2312/files_trashbin.po +++ b/l10n/zh_CN.GB2312/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "名称" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 个文件夹" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 个文件" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} 个文件" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "删除" diff --git a/l10n/zh_CN.GB2312/files_versions.po b/l10n/zh_CN.GB2312/files_versions.po index 7676ba278c2ef19f0de020e9e88ba807a7eb31a0..97402cab1a7c72c90860af6659342785430b3b40 100644 --- a/l10n/zh_CN.GB2312/files_versions.po +++ b/l10n/zh_CN.GB2312/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "历史" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "文件版本" diff --git a/l10n/zh_CN.GB2312/lib.po b/l10n/zh_CN.GB2312/lib.po index d03b24aa3aa136fca1b9156b048023e51233307e..3ab8eb8f8cf8f51b79a70f34ff4b31debca2ce9c 100644 --- a/l10n/zh_CN.GB2312/lib.po +++ b/l10n/zh_CN.GB2312/lib.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -18,43 +18,43 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "帮助" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "私人" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "设置" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "用户" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "程序" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "管理员" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP 下载已关闭" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "需要逐个下载文件。" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "返回到文件" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "选择的文件太大而不能生成 zip 文件。" @@ -86,6 +86,108 @@ msgstr "文本" msgid "Images" msgstr "图片" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "秒前" @@ -138,16 +240,16 @@ msgstr "去年" msgid "years ago" msgstr "年前" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s 不可用。获知 详情" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "最新" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "更新检测已禁用" diff --git a/l10n/zh_CN.GB2312/settings.po b/l10n/zh_CN.GB2312/settings.po index 3335b000123b4bbbafc2caabeaab1221ee2af0c6..01b153143fd6e23790f9c21c234ac67020d644cf 100644 --- a/l10n/zh_CN.GB2312/settings.po +++ b/l10n/zh_CN.GB2312/settings.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -23,12 +23,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "不能从App Store 中加载列表" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "认证错误" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -72,17 +72,17 @@ msgstr "非法请求" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "未能添加用户到群组 %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "未能将用户从群组 %s 移除" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -118,59 +118,265 @@ msgstr "出错" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "保存中..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "删除" + +#: js/users.js:30 +msgid "undo" +msgstr "撤销" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "组" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "群组管理员" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "删除" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "Chinese" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "安全警告" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "您的数据文件夹和您的文件或许能够从互联网访问。ownCloud 提供的 .htaccesss 文件未其作用。我们强烈建议您配置网络服务器以使数据文件夹不能从互联网访问,或将移动数据文件夹移出网络服务器文档根目录。" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "更多" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "由 ownCloud 社区开发,s源代码AGPL 许可协议发布。" + +#: templates/apps.php:11 msgid "Add your App" msgstr "添加你的应用程序" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "更多应用" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "选择一个程序" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "在owncloud.com上查看应用程序" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "授权协议 " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "更新" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -179,116 +385,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "客户" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "密码" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "您的密码以变更" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "不能改变你的密码" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "现在的密码" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "新密码" -#: templates/personal.php:28 -msgid "show" -msgstr "展示" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "改变密码" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "Email" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "你的email地址" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "输入一个邮箱地址以激活密码恢复功能" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "语言" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "帮助翻译" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "由 ownCloud 社区开发,s源代码AGPL 许可协议发布。" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "组" - #: templates/users.php:32 msgid "Create" msgstr "新建" @@ -297,34 +473,26 @@ msgstr "新建" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "其他的" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "群组管理员" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "删除" diff --git a/l10n/zh_CN.GB2312/user_ldap.po b/l10n/zh_CN.GB2312/user_ldap.po index bc915483e990bee2ab65745e9b9d0cdd97ccdade..f85d4abe78fab413ce39fd0d949f0f8cd1909931 100644 --- a/l10n/zh_CN.GB2312/user_ldap.po +++ b/l10n/zh_CN.GB2312/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -214,8 +214,8 @@ msgid "Use TLS" msgstr "使用 TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "不要使用它进行 SSL 连接,会失败的。" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index 6070c36097c402355e5805823e67bfd499cecdad..b1f593bcc25ad11981d9ceb3ab64628cfd20ed03 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/core.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -56,8 +56,9 @@ msgid "No category to add?" msgstr "没有可添加分类?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "此分类已存在: " +#, php-format +msgid "This category already exists: %s" +msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -161,59 +162,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "设置" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "秒前" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "一分钟前" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} 分钟前" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1小时前" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} 小时前" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "今天" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "昨天" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "上月" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} 月前" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "月前" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "去年" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "年前" @@ -243,8 +244,8 @@ msgid "The object type is not specified." msgstr "未指定对象类型。" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "错误" @@ -256,15 +257,15 @@ msgstr "未指定App名称。" msgid "The required file {file} is not installed!" msgstr "所需文件{file}未安装!" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "共享" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "已共享" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "共享" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "共享时出错" @@ -360,23 +361,23 @@ msgstr "删除" msgid "share" msgstr "共享" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "密码已受保护" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "取消设置过期日期时出错" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "设置过期日期时出错" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "正在发送..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "邮件已发送" @@ -391,7 +392,7 @@ msgstr "" msgid "The update was successful. Redirecting you to ownCloud now." msgstr "" -#: lostpassword/controller.php:47 +#: lostpassword/controller.php:48 msgid "ownCloud password reset" msgstr "重置 ownCloud 密码" @@ -472,7 +473,7 @@ msgstr "编辑分类" msgid "Add" msgstr "添加" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "安全警告" @@ -482,71 +483,75 @@ msgid "" "OpenSSL extension." msgstr "随机数生成器无效,请启用PHP的OpenSSL扩展" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "没有安全随机码生成器,攻击者可能会猜测密码重置信息从而窃取您的账户" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." -msgstr "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器根目录以外。" +"For information how to properly configure your server, please see the documentation." +msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "创建管理员账号" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "高级" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "数据目录" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "配置数据库" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "将被使用" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "数据库用户" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "数据库密码" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "数据库名" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "数据库表空间" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "数据库主机" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "安装完成" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "由您掌控的网络服务" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "注销" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index 1f00755a8095a2aa8c942788e8d3a3f9e6d97402..e88f59b128ca14af028d341b985689ee453dc164 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -24,6 +24,20 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "无法移动 %s - 同名文件已存在" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "无法移动 %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "无法重命名文件" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "没有文件被上传。未知错误" @@ -60,8 +74,8 @@ msgid "Failed to write to disk" msgstr "写入磁盘失败" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "没有足够可用空间" +msgid "Not enough storage available" +msgstr "" #: ajax/upload.php:83 msgid "Invalid directory." @@ -71,51 +85,52 @@ msgstr "无效文件夹。" msgid "Files" msgstr "文件" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "取消分享" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "删除" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "重命名" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "操作等待中" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} 已存在" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "替换" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "建议名称" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "取消" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "替换 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "撤销" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "已将 {old_name}替换成 {new_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -141,78 +156,74 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "下载正在准备中。如果文件较大可能会花费一些时间。" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "无法上传文件,因为它是一个目录或者大小为 0 字节" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "上传错误" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "关闭" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "操作等待中" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1个文件上传中" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} 个文件上传中" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "上传已取消" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传中。现在离开此页会导致上传动作被取消。" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL不能为空" -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "无效文件夹名。'共享' 是 Owncloud 预留的文件夹名。" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名称" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改日期" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1个文件夹" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 个文件" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 个文件" @@ -269,7 +280,7 @@ msgid "From link" msgstr "来自链接" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -284,6 +295,10 @@ msgstr "这里还什么都没有。上传些东西吧!" msgid "Download" msgstr "下载" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "取消分享" + #: templates/index.php:105 msgid "Upload too large" msgstr "上传文件过大" diff --git a/l10n/zh_CN/files_encryption.po b/l10n/zh_CN/files_encryption.po index f7e50a5ccc18ce250aa8ec336ea1ac954fa90bf9..b9d48e1dcecefccc77e9b7c7921167b32816683f 100644 --- a/l10n/zh_CN/files_encryption.po +++ b/l10n/zh_CN/files_encryption.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -18,28 +18,6 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "加密" diff --git a/l10n/zh_CN/files_external.po b/l10n/zh_CN/files_external.po index 674ecf16c69a6497a86dc769459dad7aa1ef1557..2601a7a78e1590b040403a6b0df0302a341cfa9e 100644 --- a/l10n/zh_CN/files_external.po +++ b/l10n/zh_CN/files_external.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-24 00:10+0100\n" -"PO-Revision-Date: 2012-12-23 14:40+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: Dianjin Wang <1132321739qq@gmail.com>\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -43,13 +43,13 @@ msgstr "请提供有效的Dropbox应用key和secret" msgid "Error configuring Google Drive storage" msgstr "配置Google Drive存储时出错" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "警告:“smbclient” 尚未安装。CIFS/SMB 分享挂载无法实现。请咨询系统管理员进行安装。" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -117,6 +117,6 @@ msgstr "允许用户挂载自有外部存储" msgid "SSL root certificates" msgstr "SSL根证书" -#: templates/settings.php:153 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "导入根证书" diff --git a/l10n/zh_CN/files_trashbin.po b/l10n/zh_CN/files_trashbin.po index 151921754f6b79fe7b364054e904dbdef61f065c..944ac8ff4af004fd449d49dcb29747f6a01cb831 100644 --- a/l10n/zh_CN/files_trashbin.po +++ b/l10n/zh_CN/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "名称" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1个文件夹" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 个文件" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} 个文件" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "删除" diff --git a/l10n/zh_CN/files_versions.po b/l10n/zh_CN/files_versions.po index 8427a53caaf2a79ad03f6e2a25059abb631e6daf..fef8172901c2a45ed9cc949355c9df8c1e78dc90 100644 --- a/l10n/zh_CN/files_versions.po +++ b/l10n/zh_CN/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "历史" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "文件版本" diff --git a/l10n/zh_CN/lib.po b/l10n/zh_CN/lib.po index 7dd9eb38371d73e138a1bdf39e8754142021837e..55b00867f9fa24730de49e5f2acfcebeb0d30eaa 100644 --- a/l10n/zh_CN/lib.po +++ b/l10n/zh_CN/lib.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -19,43 +19,43 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "帮助" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "个人" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "设置" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "用户" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "应用" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "管理" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP 下载已经关闭" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "需要逐一下载文件" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "回到文件" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "选择的文件太大,无法生成 zip 文件。" @@ -87,6 +87,108 @@ msgstr "文本" msgid "Images" msgstr "图像" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "几秒前" @@ -139,16 +241,16 @@ msgstr "上年" msgid "years ago" msgstr "几年前" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s 已存在. 点此 获取更多信息" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "已更新。" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "检查更新功能被关闭。" diff --git a/l10n/zh_CN/settings.po b/l10n/zh_CN/settings.po index 51c13db8795c6a14d8bb3083526d8bfb55ec621b..fce5d5f37d3f21abc5bcbdc9473d6024d1165be5 100644 --- a/l10n/zh_CN/settings.po +++ b/l10n/zh_CN/settings.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -27,12 +27,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "无法从应用商店载入列表" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "认证错误" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -76,17 +76,17 @@ msgstr "非法请求" msgid "Admins can't remove themself from the admin group" msgstr "管理员不能将自己移出管理组。" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "无法把用户添加到组 %s" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "无法从组%s中移除用户" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -122,59 +122,265 @@ msgstr "错误" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "正在保存" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "已经删除" + +#: js/users.js:30 +msgid "undo" +msgstr "撤销" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "组" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "组管理员" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "删除" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "简体中文" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "安全警告" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器根目录以外。" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "更多" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "版本" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "由ownCloud社区开发, 源代码AGPL许可证下发布。" + +#: templates/apps.php:11 msgid "Add your App" msgstr "添加应用" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "更多应用" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "选择一个应用" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "查看在 app.owncloud.com 的应用程序页面" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-核准: " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "更新" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "用户文档" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "管理员文档" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "在线文档" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "论坛" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "问题跟踪器" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "商业支持" @@ -183,116 +389,86 @@ msgstr "商业支持" msgid "You have used %s of the available %s" msgstr "你已使用 %s,有效空间 %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "客户" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "下载桌面客户端" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "下载 Android 客户端" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "下载 iOS 客户端" +msgid "Get the apps to sync your files" +msgstr "" + +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "密码" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "密码已修改" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "无法修改密码" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "当前密码" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "新密码" -#: templates/personal.php:28 -msgid "show" -msgstr "显示" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "修改密码" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "电子邮件" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "您的电子邮件" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "填写电子邮件地址以启用密码恢复功能" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "语言" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "帮助翻译" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "用该地址来连接文件管理器中的 ownCloud" -#: templates/personal.php:85 -msgid "Version" -msgstr "版本" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "由ownCloud社区开发, 源代码AGPL许可证下发布。" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "组" - #: templates/users.php:32 msgid "Create" msgstr "创建" @@ -301,34 +477,26 @@ msgstr "创建" msgid "Default Storage" msgstr "默认存储" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "无限" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "其它" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "组管理员" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "存储" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "默认" - -#: templates/users.php:165 -msgid "Delete" -msgstr "删除" diff --git a/l10n/zh_CN/user_ldap.po b/l10n/zh_CN/user_ldap.po index 18eef3d02f9abc93d339b9d8f5adf104da1f15d1..1f5920201f9cabb6e8b68f22d7fcf84fda84bff8 100644 --- a/l10n/zh_CN/user_ldap.po +++ b/l10n/zh_CN/user_ldap.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -215,8 +215,8 @@ msgid "Use TLS" msgstr "使用TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." -msgstr "不要在SSL链接中使用此选项,会导致失败。" +msgid "Do not use it additionally for LDAPS connections, it will fail." +msgstr "" #: templates/settings.php:39 msgid "Case insensitve LDAP server (Windows)" diff --git a/l10n/zh_HK/core.po b/l10n/zh_HK/core.po index a61b851c754015eea809e018336af9a167fb96e6..65b41b0aeeef3a171bc59af21a6a0e367d49a90d 100644 --- a/l10n/zh_HK/core.po +++ b/l10n/zh_HK/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-09 00:12+0100\n" +"PO-Revision-Date: 2013-02-08 23:12+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -51,7 +51,8 @@ msgid "No category to add?" msgstr "" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " +#, php-format +msgid "This category already exists: %s" msgstr "" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 @@ -156,59 +157,59 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:280 +#: js/js.js:284 msgid "Settings" msgstr "" -#: js/js.js:760 +#: js/js.js:764 msgid "seconds ago" msgstr "" -#: js/js.js:761 +#: js/js.js:765 msgid "1 minute ago" msgstr "" -#: js/js.js:762 +#: js/js.js:766 msgid "{minutes} minutes ago" msgstr "" -#: js/js.js:763 +#: js/js.js:767 msgid "1 hour ago" msgstr "" -#: js/js.js:764 +#: js/js.js:768 msgid "{hours} hours ago" msgstr "" -#: js/js.js:765 +#: js/js.js:769 msgid "today" msgstr "" -#: js/js.js:766 +#: js/js.js:770 msgid "yesterday" msgstr "" -#: js/js.js:767 +#: js/js.js:771 msgid "{days} days ago" msgstr "" -#: js/js.js:768 +#: js/js.js:772 msgid "last month" msgstr "" -#: js/js.js:769 +#: js/js.js:773 msgid "{months} months ago" msgstr "" -#: js/js.js:770 +#: js/js.js:774 msgid "months ago" msgstr "" -#: js/js.js:771 +#: js/js.js:775 msgid "last year" msgstr "" -#: js/js.js:772 +#: js/js.js:776 msgid "years ago" msgstr "" @@ -467,7 +468,7 @@ msgstr "" msgid "Add" msgstr "" -#: templates/installation.php:23 templates/installation.php:31 +#: templates/installation.php:23 templates/installation.php:30 msgid "Security Warning" msgstr "" @@ -477,71 +478,75 @@ msgid "" "OpenSSL extension." msgstr "" -#: templates/installation.php:26 +#: templates/installation.php:25 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." msgstr "" +#: templates/installation.php:31 +msgid "" +"Your data directory and files are probably accessible from the internet " +"because the .htaccess file does not work." +msgstr "" + #: templates/installation.php:32 msgid "" -"Your data directory and your files are probably accessible from the " -"internet. The .htaccess file that ownCloud provides is not working. We " -"strongly suggest that you configure your webserver in a way that the data " -"directory is no longer accessible or you move the data directory outside the" -" webserver document root." +"For information how to properly configure your server, please see the documentation." msgstr "" #: templates/installation.php:36 msgid "Create an admin account" msgstr "" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "" diff --git a/l10n/zh_HK/files.po b/l10n/zh_HK/files.po index 3679a52e3413346e8ecb340098c8c599cb1fc852..81c2adf9f00ce93c4f6ca90db122e57fa7396483 100644 --- a/l10n/zh_HK/files.po +++ b/l10n/zh_HK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-15 00:04+0100\n" +"PO-Revision-Date: 2013-02-14 23:05+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,20 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -53,7 +67,7 @@ msgid "Failed to write to disk" msgstr "" #: ajax/upload.php:52 -msgid "Not enough space available" +msgid "Not enough storage available" msgstr "" #: ajax/upload.php:83 @@ -64,51 +78,52 @@ msgstr "" msgid "Files" msgstr "" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" msgstr "" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:291 js/files.js:407 +#: js/files.js:438 +msgid "Pending" +msgstr "" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "" @@ -148,64 +163,60 @@ msgstr "" msgid "Upload Error" msgstr "" -#: js/files.js:278 +#: js/files.js:272 msgid "Close" msgstr "" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "" - -#: js/files.js:317 +#: js/files.js:311 msgid "1 file uploading" msgstr "" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:314 js/files.js:369 js/files.js:384 msgid "{count} files uploading" msgstr "" -#: js/files.js:393 js/files.js:428 +#: js/files.js:387 js/files.js:422 msgid "Upload cancelled." msgstr "" -#: js/files.js:502 +#: js/files.js:496 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:575 +#: js/files.js:569 msgid "URL cannot be empty." msgstr "" -#: js/files.js:580 +#: js/files.js:574 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:948 templates/index.php:67 msgid "Name" msgstr "" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:949 templates/index.php:78 msgid "Size" msgstr "" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:950 templates/index.php:80 msgid "Modified" msgstr "" -#: js/files.js:974 +#: js/files.js:969 msgid "1 folder" msgstr "" -#: js/files.js:976 +#: js/files.js:971 msgid "{count} folders" msgstr "" -#: js/files.js:984 +#: js/files.js:979 msgid "1 file" msgstr "" -#: js/files.js:986 +#: js/files.js:981 msgid "{count} files" msgstr "" @@ -262,7 +273,7 @@ msgid "From link" msgstr "" #: templates/index.php:40 -msgid "Trash" +msgid "Deleted files" msgstr "" #: templates/index.php:46 @@ -277,6 +288,10 @@ msgstr "" msgid "Download" msgstr "" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "" + #: templates/index.php:105 msgid "Upload too large" msgstr "" diff --git a/l10n/zh_HK/files_encryption.po b/l10n/zh_HK/files_encryption.po index c8652a2cde396b9646644e824223a4469a44d529..b213e0bbd8d8ff36c1f80b4ae1a721cb119c3d3f 100644 --- a/l10n/zh_HK/files_encryption.po +++ b/l10n/zh_HK/files_encryption.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,28 +17,6 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "" diff --git a/l10n/zh_HK/files_trashbin.po b/l10n/zh_HK/files_trashbin.po index 61f53da0ef35c9041843636acea5229e5535626c..3619584ba4deed48888c2818e167662ef890c07f 100644 --- a/l10n/zh_HK/files_trashbin.po +++ b/l10n/zh_HK/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-21 00:14+0100\n" +"PO-Revision-Date: 2013-02-20 23:14+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "" diff --git a/l10n/zh_HK/files_versions.po b/l10n/zh_HK/files_versions.po index 4859a33c5a06418c44120019c078d02abbf0196b..0b4229496a94aebf0dbe5ccd3f06cbca937aa2b6 100644 --- a/l10n/zh_HK/files_versions.po +++ b/l10n/zh_HK/files_versions.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,10 +17,45 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "" diff --git a/l10n/zh_HK/lib.po b/l10n/zh_HK/lib.po index f3bc0dc6e13e72d21cd779340b8873ab21fb9b44..17cc01004159d99ad864d78b231ce06b6afff87c 100644 --- a/l10n/zh_HK/lib.po +++ b/l10n/zh_HK/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-17 00:26+0100\n" -"PO-Revision-Date: 2013-01-16 23:26+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,43 +17,43 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "" @@ -85,6 +85,108 @@ msgstr "" msgid "Images" msgstr "" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + #: template.php:113 msgid "seconds ago" msgstr "" @@ -137,16 +239,16 @@ msgstr "" msgid "years ago" msgstr "" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "" diff --git a/l10n/zh_HK/settings.po b/l10n/zh_HK/settings.po index e9501109c5af6fd6e266389f9e746b8ab071ea32..5650c789106bddbe5c2b1be4bd7089a00fea21c8 100644 --- a/l10n/zh_HK/settings.po +++ b/l10n/zh_HK/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -21,12 +21,12 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" msgstr "" @@ -70,17 +70,17 @@ msgstr "" msgid "Admins can't remove themself from the admin group" msgstr "" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "" @@ -116,59 +116,265 @@ msgstr "" msgid "Updated" msgstr "" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "" -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "" + +#: js/users.js:30 +msgid "undo" +msgstr "" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "" + +#: js/users.js:191 +msgid "add group" +msgstr "" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "" -#: templates/apps.php:10 -msgid "Add your App" +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." msgstr "" #: templates/apps.php:11 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:12 msgid "More Apps" msgstr "" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "" -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "" @@ -177,116 +383,86 @@ msgstr "" msgid "You have used %s of the available %s" msgstr "" -#: templates/personal.php:12 -msgid "Clients" -msgstr "" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "" - -#: templates/personal.php:14 -msgid "Download Android Client" +#: templates/personal.php:15 +msgid "Get the apps to sync your files" msgstr "" -#: templates/personal.php:15 -msgid "Download iOS Client" +#: templates/personal.php:26 +msgid "Show First Run Wizard again" msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "" -#: templates/personal.php:28 -msgid "show" -msgstr "" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" msgstr "" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" msgstr "" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" msgstr "" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "" -#: templates/personal.php:85 -msgid "Version" -msgstr "" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "" - #: templates/users.php:32 msgid "Create" msgstr "" @@ -295,34 +471,26 @@ msgstr "" msgid "Default Storage" msgstr "" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "" - -#: templates/users.php:165 -msgid "Delete" -msgstr "" diff --git a/l10n/zh_HK/user_ldap.po b/l10n/zh_HK/user_ldap.po index cda8b305dea8b4b1b56582e11c868298317c5204..3d9f862dc9ba7963f0388cb41ac15eeb58b2fb63 100644 --- a/l10n/zh_HK/user_ldap.po +++ b/l10n/zh_HK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -213,7 +213,7 @@ msgid "Use TLS" msgstr "" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/l10n/zh_TW/core.po b/l10n/zh_TW/core.po index 5886158a82d8b1c6fd025b928f453eb2b48f3eec..ac0cd1754c9c46579ddab98ce8ebb13e94bb1330 100644 --- a/l10n/zh_TW/core.po +++ b/l10n/zh_TW/core.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:20+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,8 +55,9 @@ msgid "No category to add?" msgstr "沒有可增加的分類?" #: ajax/vcategories/add.php:37 -msgid "This category already exists: " -msgstr "此分類已經存在:" +#, php-format +msgid "This category already exists: %s" +msgstr "分類已經存在: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 @@ -160,59 +161,59 @@ msgstr "十一月" msgid "December" msgstr "十二月" -#: js/js.js:280 +#: js/js.js:286 msgid "Settings" msgstr "設定" -#: js/js.js:760 +#: js/js.js:767 msgid "seconds ago" msgstr "幾秒前" -#: js/js.js:761 +#: js/js.js:768 msgid "1 minute ago" msgstr "1 分鐘前" -#: js/js.js:762 +#: js/js.js:769 msgid "{minutes} minutes ago" msgstr "{minutes} 分鐘前" -#: js/js.js:763 +#: js/js.js:770 msgid "1 hour ago" msgstr "1 個小時前" -#: js/js.js:764 +#: js/js.js:771 msgid "{hours} hours ago" msgstr "{hours} 小時前" -#: js/js.js:765 +#: js/js.js:772 msgid "today" msgstr "今天" -#: js/js.js:766 +#: js/js.js:773 msgid "yesterday" msgstr "昨天" -#: js/js.js:767 +#: js/js.js:774 msgid "{days} days ago" msgstr "{days} 天前" -#: js/js.js:768 +#: js/js.js:775 msgid "last month" msgstr "上個月" -#: js/js.js:769 +#: js/js.js:776 msgid "{months} months ago" msgstr "{months} 個月前" -#: js/js.js:770 +#: js/js.js:777 msgid "months ago" msgstr "幾個月前" -#: js/js.js:771 +#: js/js.js:778 msgid "last year" msgstr "去年" -#: js/js.js:772 +#: js/js.js:779 msgid "years ago" msgstr "幾年前" @@ -242,8 +243,8 @@ msgid "The object type is not specified." msgstr "未指定物件類型。" #: js/oc-vcategories.js:95 js/oc-vcategories.js:125 js/oc-vcategories.js:136 -#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:571 -#: js/share.js:583 +#: js/oc-vcategories.js:195 js/share.js:152 js/share.js:159 js/share.js:582 +#: js/share.js:594 msgid "Error" msgstr "錯誤" @@ -255,15 +256,15 @@ msgstr "沒有指定 app 名稱。" msgid "The required file {file} is not installed!" msgstr "沒有安裝所需的檔案 {file} !" -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 -msgid "Share" -msgstr "分享" - -#: js/share.js:29 js/share.js:43 js/share.js:90 js/share.js:93 +#: js/share.js:29 js/share.js:43 js/share.js:90 msgid "Shared" msgstr "已分享" -#: js/share.js:141 js/share.js:611 +#: js/share.js:93 +msgid "Share" +msgstr "分享" + +#: js/share.js:141 js/share.js:622 msgid "Error while sharing" msgstr "分享時發生錯誤" @@ -359,23 +360,23 @@ msgstr "刪除" msgid "share" msgstr "分享" -#: js/share.js:373 js/share.js:558 +#: js/share.js:373 js/share.js:569 msgid "Password protected" msgstr "受密碼保護" -#: js/share.js:571 +#: js/share.js:582 msgid "Error unsetting expiration date" msgstr "解除過期日設定失敗" -#: js/share.js:583 +#: js/share.js:594 msgid "Error setting expiration date" msgstr "錯誤的到期日設定" -#: js/share.js:598 +#: js/share.js:609 msgid "Sending ..." msgstr "正在寄出..." -#: js/share.js:609 +#: js/share.js:620 msgid "Email sent" msgstr "Email 已寄出" @@ -390,7 +391,7 @@ msgstr "升級失敗,請將此問題回報 documentation." +msgstr "請參考說明文件以瞭解如何正確設定您的伺服器。" #: templates/installation.php:36 msgid "Create an admin account" msgstr "建立一個管理者帳號" -#: templates/installation.php:50 +#: templates/installation.php:52 msgid "Advanced" msgstr "進階" -#: templates/installation.php:52 +#: templates/installation.php:54 msgid "Data folder" msgstr "資料夾" -#: templates/installation.php:59 +#: templates/installation.php:61 msgid "Configure the database" msgstr "設定資料庫" -#: templates/installation.php:64 templates/installation.php:75 -#: templates/installation.php:85 templates/installation.php:95 +#: templates/installation.php:66 templates/installation.php:77 +#: templates/installation.php:87 templates/installation.php:97 msgid "will be used" msgstr "將會使用" -#: templates/installation.php:107 +#: templates/installation.php:109 msgid "Database user" msgstr "資料庫使用者" -#: templates/installation.php:111 +#: templates/installation.php:113 msgid "Database password" msgstr "資料庫密碼" -#: templates/installation.php:115 +#: templates/installation.php:117 msgid "Database name" msgstr "資料庫名稱" -#: templates/installation.php:123 +#: templates/installation.php:125 msgid "Database tablespace" msgstr "資料庫 tablespace" -#: templates/installation.php:129 +#: templates/installation.php:131 msgid "Database host" msgstr "資料庫主機" -#: templates/installation.php:134 +#: templates/installation.php:136 msgid "Finish setup" msgstr "完成設定" -#: templates/layout.guest.php:34 +#: templates/layout.guest.php:33 msgid "web services under your control" msgstr "網路服務在您控制之下" -#: templates/layout.user.php:49 +#: templates/layout.user.php:48 msgid "Log out" msgstr "登出" @@ -577,7 +582,7 @@ msgstr "登入" #: templates/login.php:49 msgid "Alternative Logins" -msgstr "" +msgstr "替代登入方法" #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/zh_TW/files.po b/l10n/zh_TW/files.po index 0db332c7219a696f67300088f7528c2fbadb01dd..88fbe67d2eebd02ee84302e007ca671f8603bdc2 100644 --- a/l10n/zh_TW/files.po +++ b/l10n/zh_TW/files.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:31+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,20 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/move.php:17 +#, php-format +msgid "Could not move %s - File with this name already exists" +msgstr "無法移動 %s - 同名的檔案已經存在" + +#: ajax/move.php:27 ajax/move.php:30 +#, php-format +msgid "Could not move %s" +msgstr "無法移動 %s" + +#: ajax/rename.php:22 ajax/rename.php:25 +msgid "Unable to rename file" +msgstr "無法重新命名檔案" + #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "沒有檔案被上傳。未知的錯誤。" @@ -59,8 +73,8 @@ msgid "Failed to write to disk" msgstr "寫入硬碟失敗" #: ajax/upload.php:52 -msgid "Not enough space available" -msgstr "沒有足夠的可用空間" +msgid "Not enough storage available" +msgstr "儲存空間不足" #: ajax/upload.php:83 msgid "Invalid directory." @@ -70,51 +84,52 @@ msgstr "無效的資料夾。" msgid "Files" msgstr "檔案" -#: js/fileactions.js:117 templates/index.php:85 templates/index.php:86 -msgid "Unshare" -msgstr "取消共享" - -#: js/fileactions.js:119 +#: js/fileactions.js:125 msgid "Delete permanently" -msgstr "" +msgstr "永久刪除" -#: js/fileactions.js:121 templates/index.php:91 templates/index.php:92 +#: js/fileactions.js:127 templates/index.php:91 templates/index.php:92 msgid "Delete" msgstr "刪除" -#: js/fileactions.js:187 +#: js/fileactions.js:193 msgid "Rename" msgstr "重新命名" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:49 js/filelist.js:52 js/files.js:292 js/files.js:408 +#: js/files.js:439 +msgid "Pending" +msgstr "等候中" + +#: js/filelist.js:253 js/filelist.js:255 msgid "{new_name} already exists" msgstr "{new_name} 已經存在" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "replace" msgstr "取代" -#: js/filelist.js:208 +#: js/filelist.js:253 msgid "suggest name" msgstr "建議檔名" -#: js/filelist.js:208 js/filelist.js:210 +#: js/filelist.js:253 js/filelist.js:255 msgid "cancel" msgstr "取消" -#: js/filelist.js:253 +#: js/filelist.js:295 msgid "replaced {new_name}" msgstr "已取代 {new_name}" -#: js/filelist.js:253 js/filelist.js:255 +#: js/filelist.js:295 js/filelist.js:297 msgid "undo" msgstr "復原" -#: js/filelist.js:255 +#: js/filelist.js:297 msgid "replaced {new_name} with {old_name}" msgstr "使用 {new_name} 取代 {old_name}" -#: js/filelist.js:280 +#: js/filelist.js:322 msgid "perform delete operation" msgstr "進行刪除動作" @@ -140,78 +155,74 @@ msgstr "您的儲存空間已滿,沒有辦法再更新或是同步檔案!" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "您的儲存空間快要滿了 ({usedSpacePercent}%)" -#: js/files.js:224 +#: js/files.js:225 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "正在準備您的下載,若您的檔案較大,將會需要更多時間。" -#: js/files.js:261 +#: js/files.js:262 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0" -#: js/files.js:261 +#: js/files.js:262 msgid "Upload Error" msgstr "上傳發生錯誤" -#: js/files.js:278 +#: js/files.js:273 msgid "Close" msgstr "關閉" -#: js/files.js:297 js/files.js:413 js/files.js:444 -msgid "Pending" -msgstr "等候中" - -#: js/files.js:317 +#: js/files.js:312 msgid "1 file uploading" msgstr "1 個檔案正在上傳" -#: js/files.js:320 js/files.js:375 js/files.js:390 +#: js/files.js:315 js/files.js:370 js/files.js:385 msgid "{count} files uploading" msgstr "{count} 個檔案正在上傳" -#: js/files.js:393 js/files.js:428 +#: js/files.js:388 js/files.js:423 msgid "Upload cancelled." msgstr "上傳取消" -#: js/files.js:502 +#: js/files.js:497 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "檔案上傳中。離開此頁面將會取消上傳。" -#: js/files.js:575 +#: js/files.js:570 msgid "URL cannot be empty." msgstr "URL 不能為空白." -#: js/files.js:580 +#: js/files.js:575 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無效的資料夾名稱,'Shared' 的使用被 Owncloud 保留" -#: js/files.js:953 templates/index.php:67 +#: js/files.js:949 templates/index.php:67 msgid "Name" msgstr "名稱" -#: js/files.js:954 templates/index.php:78 +#: js/files.js:950 templates/index.php:78 msgid "Size" msgstr "大小" -#: js/files.js:955 templates/index.php:80 +#: js/files.js:951 templates/index.php:80 msgid "Modified" msgstr "修改" -#: js/files.js:974 +#: js/files.js:970 msgid "1 folder" msgstr "1 個資料夾" -#: js/files.js:976 +#: js/files.js:972 msgid "{count} folders" msgstr "{count} 個資料夾" -#: js/files.js:984 +#: js/files.js:980 msgid "1 file" msgstr "1 個檔案" -#: js/files.js:986 +#: js/files.js:982 msgid "{count} files" msgstr "{count} 個檔案" @@ -268,8 +279,8 @@ msgid "From link" msgstr "從連結" #: templates/index.php:40 -msgid "Trash" -msgstr "回收筒" +msgid "Deleted files" +msgstr "" #: templates/index.php:46 msgid "Cancel upload" @@ -283,6 +294,10 @@ msgstr "沒有任何東西。請上傳內容!" msgid "Download" msgstr "下載" +#: templates/index.php:85 templates/index.php:86 +msgid "Unshare" +msgstr "取消共享" + #: templates/index.php:105 msgid "Upload too large" msgstr "上傳過大" diff --git a/l10n/zh_TW/files_encryption.po b/l10n/zh_TW/files_encryption.po index 785876bb0fb3b7127d16ccbb6ccb72dfa556869c..a07b9404ea3eb60d0af2b31b04e35f51b4218119 100644 --- a/l10n/zh_TW/files_encryption.po +++ b/l10n/zh_TW/files_encryption.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-06 00:05+0100\n" -"PO-Revision-Date: 2013-02-05 23:05+0000\n" +"POT-Creation-Date: 2013-02-10 00:08+0100\n" +"PO-Revision-Date: 2013-02-09 23:09+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -19,28 +19,6 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/settings-personal.js:17 -msgid "" -"Please switch to your ownCloud client and change your encryption password to" -" complete the conversion." -msgstr "請至您的 ownCloud 客戶端程式修改您的加密密碼以完成轉換。" - -#: js/settings-personal.js:17 -msgid "switched to client side encryption" -msgstr "已切換為客戶端加密" - -#: js/settings-personal.js:21 -msgid "Change encryption password to login password" -msgstr "將加密密碼修改為登入密碼" - -#: js/settings-personal.js:25 -msgid "Please check your passwords and try again." -msgstr "請檢查您的密碼並再試一次。" - -#: js/settings-personal.js:25 -msgid "Could not change your file encryption password to your login password" -msgstr "無法變更您的檔案加密密碼為登入密碼" - #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" msgstr "加密" diff --git a/l10n/zh_TW/files_external.po b/l10n/zh_TW/files_external.po index 88c257062d00fde4381c39d3b131c8a9253ec3b0..b21173f2dd5a3d2de69ff299143423536c64ab67 100644 --- a/l10n/zh_TW/files_external.po +++ b/l10n/zh_TW/files_external.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-12-13 00:17+0100\n" -"PO-Revision-Date: 2012-12-11 23:22+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -42,13 +42,13 @@ msgstr "" msgid "Error configuring Google Drive storage" msgstr "" -#: lib/config.php:434 +#: lib/config.php:398 msgid "" "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "is not possible. Please ask your system administrator to install it." msgstr "" -#: lib/config.php:435 +#: lib/config.php:401 msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " @@ -100,7 +100,7 @@ msgid "Users" msgstr "使用者" #: templates/settings.php:108 templates/settings.php:109 -#: templates/settings.php:149 templates/settings.php:150 +#: templates/settings.php:144 templates/settings.php:145 msgid "Delete" msgstr "刪除" @@ -112,10 +112,10 @@ msgstr "" msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:139 +#: templates/settings.php:136 msgid "SSL root certificates" msgstr "" -#: templates/settings.php:158 +#: templates/settings.php:154 msgid "Import Root Certificate" msgstr "匯入根憑證" diff --git a/l10n/zh_TW/files_trashbin.po b/l10n/zh_TW/files_trashbin.po index 0f6d6a4b1feafa6abcbe14319ecdf60b7d1d8625..9ddcf5237e0c85fc05fdd3c1fee50a14b94c7918 100644 --- a/l10n/zh_TW/files_trashbin.po +++ b/l10n/zh_TW/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:09+0000\n" +"POT-Creation-Date: 2013-02-22 00:06+0100\n" +"PO-Revision-Date: 2013-02-20 23:32+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -17,35 +17,49 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: js/trash.js:7 js/trash.js:94 +#: ajax/delete.php:40 +#, php-format +msgid "Couldn't delete %s permanently" +msgstr "" + +#: ajax/undelete.php:41 +#, php-format +msgid "Couldn't restore %s" +msgstr "" + +#: js/trash.js:7 js/trash.js:96 msgid "perform restore operation" msgstr "" -#: js/trash.js:33 +#: js/trash.js:34 msgid "delete file permanently" msgstr "" -#: js/trash.js:125 templates/index.php:17 +#: js/trash.js:121 +msgid "Delete permanently" +msgstr "永久刪除" + +#: js/trash.js:151 templates/index.php:17 msgid "Name" msgstr "名稱" -#: js/trash.js:126 templates/index.php:27 +#: js/trash.js:152 templates/index.php:27 msgid "Deleted" msgstr "" -#: js/trash.js:135 +#: js/trash.js:161 msgid "1 folder" msgstr "1 個資料夾" -#: js/trash.js:137 +#: js/trash.js:163 msgid "{count} folders" msgstr "{count} 個資料夾" -#: js/trash.js:145 +#: js/trash.js:171 msgid "1 file" msgstr "1 個檔案" -#: js/trash.js:147 +#: js/trash.js:173 msgid "{count} files" msgstr "{count} 個檔案" @@ -56,3 +70,7 @@ msgstr "" #: templates/index.php:20 templates/index.php:22 msgid "Restore" msgstr "" + +#: templates/index.php:30 templates/index.php:31 +msgid "Delete" +msgstr "刪除" diff --git a/l10n/zh_TW/files_versions.po b/l10n/zh_TW/files_versions.po index 1d41bf764bcdb2f6afb555cefee1a9829c44f11b..2855967dae236ee5790bbc46f7ce54424ac544d3 100644 --- a/l10n/zh_TW/files_versions.po +++ b/l10n/zh_TW/files_versions.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-15 00:03+0100\n" -"PO-Revision-Date: 2013-01-14 23:04+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -18,10 +18,45 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/rollbackVersion.php:15 +#, php-format +msgid "Could not revert: %s" +msgstr "" + +#: history.php:40 +msgid "success" +msgstr "" + +#: history.php:42 +#, php-format +msgid "File %s was reverted to version %s" +msgstr "" + +#: history.php:49 +msgid "failure" +msgstr "" + +#: history.php:51 +#, php-format +msgid "File %s could not be reverted to version %s" +msgstr "" + +#: history.php:68 +msgid "No old versions available" +msgstr "" + +#: history.php:73 +msgid "No path specified" +msgstr "" + #: js/versions.js:16 msgid "History" msgstr "歷史" +#: templates/history.php:20 +msgid "Revert a file to a previous version by clicking on its revert button" +msgstr "" + #: templates/settings.php:3 msgid "Files Versioning" msgstr "檔案版本化中..." diff --git a/l10n/zh_TW/lib.po b/l10n/zh_TW/lib.po index 8a76773c0768c4c8e859861b448b507e86af5390..16d21a7a5ada610f84d481bf54a77c87bac8774e 100644 --- a/l10n/zh_TW/lib.po +++ b/l10n/zh_TW/lib.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-01-24 00:06+0100\n" -"PO-Revision-Date: 2013-01-23 10:07+0000\n" -"Last-Translator: pellaeon \n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,47 +21,47 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: app.php:301 +#: app.php:349 msgid "Help" msgstr "說明" -#: app.php:308 +#: app.php:362 msgid "Personal" msgstr "個人" -#: app.php:313 +#: app.php:373 msgid "Settings" msgstr "設定" -#: app.php:318 +#: app.php:385 msgid "Users" msgstr "使用者" -#: app.php:325 +#: app.php:398 msgid "Apps" msgstr "應用程式" -#: app.php:327 +#: app.php:406 msgid "Admin" msgstr "管理" -#: files.php:365 +#: files.php:202 msgid "ZIP download is turned off." msgstr "ZIP 下載已關閉" -#: files.php:366 +#: files.php:203 msgid "Files need to be downloaded one by one." msgstr "檔案需要逐一下載" -#: files.php:366 files.php:391 +#: files.php:204 files.php:231 msgid "Back to Files" msgstr "回到檔案列表" -#: files.php:390 +#: files.php:228 msgid "Selected files too large to generate zip file." msgstr "選擇的檔案太大以致於無法產生壓縮檔" -#: helper.php:229 +#: helper.php:228 msgid "couldn't be determined" msgstr "無法判斷" @@ -89,6 +89,108 @@ msgstr "文字" msgid "Images" msgstr "圖片" +#: setup.php:34 +msgid "Set an admin username." +msgstr "" + +#: setup.php:37 +msgid "Set an admin password." +msgstr "" + +#: setup.php:40 +msgid "Specify a data folder." +msgstr "" + +#: setup.php:55 +#, php-format +msgid "%s enter the database username." +msgstr "" + +#: setup.php:58 +#, php-format +msgid "%s enter the database name." +msgstr "" + +#: setup.php:61 +#, php-format +msgid "%s you may not use dots in the database name" +msgstr "" + +#: setup.php:64 +#, php-format +msgid "%s set the database host." +msgstr "" + +#: setup.php:128 setup.php:320 setup.php:365 +msgid "PostgreSQL username and/or password not valid" +msgstr "" + +#: setup.php:129 setup.php:152 setup.php:229 +msgid "You need to enter either an existing account or the administrator." +msgstr "" + +#: setup.php:151 setup.php:453 setup.php:520 +msgid "Oracle username and/or password not valid" +msgstr "" + +#: setup.php:228 +msgid "MySQL username and/or password not valid" +msgstr "" + +#: setup.php:282 setup.php:386 setup.php:395 setup.php:413 setup.php:423 +#: setup.php:432 setup.php:461 setup.php:527 setup.php:553 setup.php:560 +#: setup.php:571 setup.php:578 setup.php:587 setup.php:595 setup.php:604 +#: setup.php:610 +#, php-format +msgid "DB Error: \"%s\"" +msgstr "" + +#: setup.php:283 setup.php:387 setup.php:396 setup.php:414 setup.php:424 +#: setup.php:433 setup.php:462 setup.php:528 setup.php:554 setup.php:561 +#: setup.php:572 setup.php:588 setup.php:596 setup.php:605 +#, php-format +msgid "Offending command was: \"%s\"" +msgstr "" + +#: setup.php:299 +#, php-format +msgid "MySQL user '%s'@'localhost' exists already." +msgstr "" + +#: setup.php:300 +msgid "Drop this user from MySQL" +msgstr "" + +#: setup.php:305 +#, php-format +msgid "MySQL user '%s'@'%%' already exists" +msgstr "" + +#: setup.php:306 +msgid "Drop this user from MySQL." +msgstr "" + +#: setup.php:579 setup.php:611 +#, php-format +msgid "Offending command was: \"%s\", name: %s, password: %s" +msgstr "" + +#: setup.php:631 +#, php-format +msgid "MS SQL username and/or password not valid: %s" +msgstr "" + +#: setup.php:849 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。" + +#: setup.php:850 +#, php-format +msgid "Please double check the installation guides." +msgstr "請參考安裝指南。" + #: template.php:113 msgid "seconds ago" msgstr "幾秒前" @@ -141,16 +243,16 @@ msgstr "去年" msgid "years ago" msgstr "幾年前" -#: updater.php:75 +#: updater.php:78 #, php-format msgid "%s is available. Get more information" msgstr "%s 已經可用。取得 更多資訊" -#: updater.php:77 +#: updater.php:81 msgid "up to date" msgstr "最新的" -#: updater.php:80 +#: updater.php:84 msgid "updates check is disabled" msgstr "檢查更新已停用" diff --git a/l10n/zh_TW/settings.po b/l10n/zh_TW/settings.po index b1edf5e53938f333ecc32278693ccfd1657e6cdf..4136e0f0388b14fa0bb2064e566c8733601c8d47 100644 --- a/l10n/zh_TW/settings.po +++ b/l10n/zh_TW/settings.po @@ -8,6 +8,7 @@ # , 2013. # Pellaeon Lin , 2013. # , 2012. +# , 2013. # , 2012. # , 2012. # ywang , 2012. @@ -15,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-07 00:07+0100\n" -"PO-Revision-Date: 2013-02-06 23:08+0000\n" +"POT-Creation-Date: 2013-02-27 14:35+0100\n" +"PO-Revision-Date: 2013-02-27 13:35+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -29,14 +30,14 @@ msgstr "" msgid "Unable to load list from App Store" msgstr "無法從 App Store 讀取清單" -#: ajax/changedisplayname.php:19 ajax/removeuser.php:15 ajax/setquota.php:15 -#: ajax/togglegroups.php:18 +#: ajax/changedisplayname.php:23 ajax/removeuser.php:15 ajax/setquota.php:17 +#: ajax/togglegroups.php:20 msgid "Authentication error" msgstr "認證錯誤" -#: ajax/changedisplayname.php:28 +#: ajax/changedisplayname.php:32 msgid "Unable to change display name" -msgstr "" +msgstr "無法更改顯示名稱" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -78,17 +79,17 @@ msgstr "無效請求" msgid "Admins can't remove themself from the admin group" msgstr "管理者帳號無法從管理者群組中移除" -#: ajax/togglegroups.php:28 +#: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" msgstr "使用者加入群組%s錯誤" -#: ajax/togglegroups.php:34 +#: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" msgstr "使用者移出群組%s錯誤" -#: ajax/updateapp.php:13 +#: ajax/updateapp.php:14 msgid "Couldn't update app." msgstr "無法更新應用程式" @@ -124,59 +125,265 @@ msgstr "錯誤" msgid "Updated" msgstr "已更新" -#: js/personal.js:96 +#: js/personal.js:99 msgid "Saving..." msgstr "儲存中..." -#: personal.php:34 personal.php:35 +#: js/users.js:30 +msgid "deleted" +msgstr "已刪除" + +#: js/users.js:30 +msgid "undo" +msgstr "復原" + +#: js/users.js:62 +msgid "Unable to remove user" +msgstr "無法刪除用戶" + +#: js/users.js:75 templates/users.php:26 templates/users.php:80 +#: templates/users.php:105 +msgid "Groups" +msgstr "群組" + +#: js/users.js:78 templates/users.php:82 templates/users.php:119 +msgid "Group Admin" +msgstr "群組 管理員" + +#: js/users.js:99 templates/users.php:161 +msgid "Delete" +msgstr "刪除" + +#: js/users.js:191 +msgid "add group" +msgstr "新增群組" + +#: js/users.js:352 +msgid "A valid username must be provided" +msgstr "" + +#: js/users.js:353 js/users.js:359 js/users.js:374 +msgid "Error creating user" +msgstr "" + +#: js/users.js:358 +msgid "A valid password must be provided" +msgstr "" + +#: personal.php:29 personal.php:30 msgid "__language_name__" msgstr "__語言_名稱__" -#: templates/apps.php:10 +#: templates/admin.php:15 +msgid "Security Warning" +msgstr "安全性警告" + +#: templates/admin.php:18 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。" + +#: templates/admin.php:29 +msgid "Setup Warning" +msgstr "" + +#: templates/admin.php:32 +msgid "" +"Your web server is not yet properly setup to allow files synchronization " +"because the WebDAV interface seems to be broken." +msgstr "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。" + +#: templates/admin.php:33 +#, php-format +msgid "Please double check the installation guides." +msgstr "請參考安裝指南。" + +#: templates/admin.php:44 +msgid "Module 'fileinfo' missing" +msgstr "" + +#: templates/admin.php:47 +msgid "" +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this " +"module to get best results with mime-type detection." +msgstr "" + +#: templates/admin.php:58 +msgid "Locale not working" +msgstr "" + +#: templates/admin.php:63 +#, php-format +msgid "" +"This ownCloud server can't set system locale to %s. This means that there " +"might be problems with certain characters in file names. We strongly suggest" +" to install the required packages on your system to support %s." +msgstr "" + +#: templates/admin.php:75 +msgid "Internet connection not working" +msgstr "" + +#: templates/admin.php:78 +msgid "" +"This ownCloud server has no working internet connection. This means that " +"some of the features like mounting of external storage, notifications about " +"updates or installation of 3rd party apps don´t work. Accessing files from " +"remote and sending of notification emails might also not work. We suggest to" +" enable internet connection for this server if you want to have all features" +" of ownCloud." +msgstr "" + +#: templates/admin.php:92 +msgid "Cron" +msgstr "" + +#: templates/admin.php:101 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:111 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:121 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:128 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:134 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:135 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:142 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:143 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:150 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:151 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:158 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:161 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:168 +msgid "Security" +msgstr "" + +#: templates/admin.php:181 +msgid "Enforce HTTPS" +msgstr "" + +#: templates/admin.php:182 +msgid "" +"Enforces the clients to connect to ownCloud via an encrypted connection." +msgstr "" + +#: templates/admin.php:185 +msgid "" +"Please connect to this ownCloud instance via HTTPS to enable or disable the " +"SSL enforcement." +msgstr "" + +#: templates/admin.php:195 +msgid "Log" +msgstr "" + +#: templates/admin.php:196 +msgid "Log level" +msgstr "" + +#: templates/admin.php:223 +msgid "More" +msgstr "更多" + +#: templates/admin.php:230 templates/personal.php:102 +msgid "Version" +msgstr "版本" + +#: templates/admin.php:233 templates/personal.php:105 +msgid "" +"Developed by the ownCloud community, the source code is " +"licensed under the AGPL." +msgstr "由ownCloud 社區開發,源代碼AGPL許可證下發布。" + +#: templates/apps.php:11 msgid "Add your App" msgstr "添加你的 App" -#: templates/apps.php:11 +#: templates/apps.php:12 msgid "More Apps" msgstr "更多Apps" -#: templates/apps.php:24 +#: templates/apps.php:28 msgid "Select an App" msgstr "選擇一個應用程式" -#: templates/apps.php:28 +#: templates/apps.php:34 msgid "See application page at apps.owncloud.com" msgstr "查看應用程式頁面於 apps.owncloud.com" -#: templates/apps.php:29 +#: templates/apps.php:36 msgid "-licensed by " msgstr "-核准: " -#: templates/apps.php:31 +#: templates/apps.php:38 msgid "Update" msgstr "更新" -#: templates/help.php:3 +#: templates/help.php:4 msgid "User Documentation" msgstr "用戶說明文件" -#: templates/help.php:4 +#: templates/help.php:6 msgid "Administrator Documentation" msgstr "管理者說明文件" -#: templates/help.php:6 +#: templates/help.php:9 msgid "Online Documentation" msgstr "線上說明文件" -#: templates/help.php:7 +#: templates/help.php:11 msgid "Forum" msgstr "論壇" -#: templates/help.php:9 +#: templates/help.php:14 msgid "Bugtracker" msgstr "Bugtracker" -#: templates/help.php:11 +#: templates/help.php:17 msgid "Commercial Support" msgstr "商用支援" @@ -185,116 +392,86 @@ msgstr "商用支援" msgid "You have used %s of the available %s" msgstr "您已經使用了 %s ,目前可用空間為 %s" -#: templates/personal.php:12 -msgid "Clients" -msgstr "客戶" - -#: templates/personal.php:13 -msgid "Download Desktop Clients" -msgstr "下載桌面客戶端" - -#: templates/personal.php:14 -msgid "Download Android Client" -msgstr "下載 Android 客戶端" - #: templates/personal.php:15 -msgid "Download iOS Client" -msgstr "下載 iOS 客戶端" +msgid "Get the apps to sync your files" +msgstr "" -#: templates/personal.php:23 templates/users.php:23 templates/users.php:81 +#: templates/personal.php:26 +msgid "Show First Run Wizard again" +msgstr "再次顯示首次使用精靈" + +#: templates/personal.php:37 templates/users.php:23 templates/users.php:79 msgid "Password" msgstr "密碼" -#: templates/personal.php:24 +#: templates/personal.php:38 msgid "Your password was changed" msgstr "你的密碼已更改" -#: templates/personal.php:25 +#: templates/personal.php:39 msgid "Unable to change your password" msgstr "無法變更你的密碼" -#: templates/personal.php:26 +#: templates/personal.php:40 msgid "Current password" msgstr "目前密碼" -#: templates/personal.php:27 +#: templates/personal.php:42 msgid "New password" msgstr "新密碼" -#: templates/personal.php:28 -msgid "show" -msgstr "顯示" - -#: templates/personal.php:29 +#: templates/personal.php:44 msgid "Change password" msgstr "變更密碼" -#: templates/personal.php:41 templates/users.php:80 +#: templates/personal.php:56 templates/users.php:78 msgid "Display Name" msgstr "顯示名稱" -#: templates/personal.php:42 +#: templates/personal.php:57 msgid "Your display name was changed" -msgstr "" +msgstr "已更改顯示名稱" -#: templates/personal.php:43 +#: templates/personal.php:58 msgid "Unable to change your display name" -msgstr "" +msgstr "無法更改您的顯示名稱" -#: templates/personal.php:46 +#: templates/personal.php:61 msgid "Change display name" -msgstr "" +msgstr "更改顯示名稱" -#: templates/personal.php:55 +#: templates/personal.php:70 msgid "Email" msgstr "電子郵件" -#: templates/personal.php:56 +#: templates/personal.php:72 msgid "Your email address" msgstr "你的電子郵件信箱" -#: templates/personal.php:57 +#: templates/personal.php:73 msgid "Fill in an email address to enable password recovery" msgstr "請填入電子郵件信箱以便回復密碼" -#: templates/personal.php:63 templates/personal.php:64 +#: templates/personal.php:79 templates/personal.php:80 msgid "Language" msgstr "語言" -#: templates/personal.php:69 +#: templates/personal.php:86 msgid "Help translate" msgstr "幫助翻譯" -#: templates/personal.php:74 +#: templates/personal.php:91 msgid "WebDAV" msgstr "WebDAV" -#: templates/personal.php:76 +#: templates/personal.php:93 msgid "Use this address to connect to your ownCloud in your file manager" msgstr "在您的檔案管理員中使用這個地址來連線到 ownCloud" -#: templates/personal.php:85 -msgid "Version" -msgstr "版本" - -#: templates/personal.php:87 -msgid "" -"Developed by the ownCloud community, the source code is " -"licensed under the AGPL." -msgstr "由ownCloud 社區開發,源代碼AGPL許可證下發布。" - -#: templates/users.php:21 templates/users.php:79 +#: templates/users.php:21 templates/users.php:77 msgid "Login Name" msgstr "登入名稱" -#: templates/users.php:26 templates/users.php:82 templates/users.php:107 -msgid "Groups" -msgstr "群組" - #: templates/users.php:32 msgid "Create" msgstr "創造" @@ -303,34 +480,26 @@ msgstr "創造" msgid "Default Storage" msgstr "預設儲存區" -#: templates/users.php:42 templates/users.php:142 +#: templates/users.php:41 templates/users.php:139 msgid "Unlimited" msgstr "無限制" -#: templates/users.php:60 templates/users.php:157 +#: templates/users.php:59 templates/users.php:154 msgid "Other" msgstr "其他" -#: templates/users.php:84 templates/users.php:121 -msgid "Group Admin" -msgstr "群組 管理員" - -#: templates/users.php:86 +#: templates/users.php:84 msgid "Storage" msgstr "儲存區" -#: templates/users.php:97 +#: templates/users.php:95 msgid "change display name" msgstr "修改顯示名稱" -#: templates/users.php:101 +#: templates/users.php:99 msgid "set new password" msgstr "設定新密碼" -#: templates/users.php:137 +#: templates/users.php:134 msgid "Default" msgstr "預設" - -#: templates/users.php:165 -msgid "Delete" -msgstr "刪除" diff --git a/l10n/zh_TW/user_ldap.po b/l10n/zh_TW/user_ldap.po index f6b4543db19818a8961cc4e82a33c6a503662de3..89db84884a7113c6eb03f16fb0a0c6bc307ccb30 100644 --- a/l10n/zh_TW/user_ldap.po +++ b/l10n/zh_TW/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-02-03 00:04+0100\n" -"PO-Revision-Date: 2013-02-02 23:05+0000\n" +"POT-Creation-Date: 2013-02-08 00:10+0100\n" +"PO-Revision-Date: 2013-02-07 23:11+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -214,7 +214,7 @@ msgid "Use TLS" msgstr "使用TLS" #: templates/settings.php:38 -msgid "Do not use it for SSL connections, it will fail." +msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" #: templates/settings.php:39 diff --git a/lib/api.php b/lib/api.php index abf1c3b003668b11c768c96030d330954441aac4..70e3028b68a95cfef127b71a6d990ce5a774acec 100644 --- a/lib/api.php +++ b/lib/api.php @@ -82,7 +82,7 @@ class OC_API { // Prepare the request variables if($_SERVER['REQUEST_METHOD'] == 'PUT') { parse_str(file_get_contents("php://input"), $parameters['_put']); - } else if($_SERVER['REQUEST_METHOD'] == 'DELETE'){ + } else if($_SERVER['REQUEST_METHOD'] == 'DELETE') { parse_str(file_get_contents("php://input"), $parameters['_delete']); } $name = $parameters['_route']; diff --git a/lib/app.php b/lib/app.php index 3a4e21e8cd1e9f49730f79ef549be77d05ddbded..55b4543ec9f874b0085a9118eb7334748c1f06c0 100644 --- a/lib/app.php +++ b/lib/app.php @@ -38,6 +38,15 @@ class OC_App{ static private $checkedApps = array(); static private $altLogin = array(); + /** + * @brief clean the appid + * @param $app Appid that needs to be cleaned + * @return string + */ + public static function cleanAppId($app) { + return str_replace(array('\0', '/', '\\', '..'), '', $app); + } + /** * @brief loads all apps * @param array $types @@ -67,14 +76,14 @@ class OC_App{ && empty(OC_Util::$core_scripts) && empty(OC_Util::$core_styles)) { OC_Util::$core_scripts = OC_Util::$scripts; - OC_Util::$scripts = array(); - OC_Util::$core_styles = OC_Util::$styles; - OC_Util::$styles = array(); + OC_Util::$scripts = array(); + OC_Util::$core_styles = OC_Util::$styles; + OC_Util::$styles = array(); + } } - } // return - return true; -} + return true; + } /** * load a single app @@ -148,7 +157,7 @@ class OC_App{ */ public static function isShipped($appid){ $info = self::getAppInfo($appid); - if(isset($info['shipped']) && $info['shipped']=='true'){ + if(isset($info['shipped']) && $info['shipped']=='true') { return true; } else { return false; @@ -159,10 +168,12 @@ class OC_App{ * get all enabled apps */ public static function getEnabledApps() { - if(!OC_Config::getValue('installed', false)) + if(!OC_Config::getValue('installed', false)) { return array(); + } $apps=array('files'); - $query = OC_DB::prepare( 'SELECT `appid` FROM `*PREFIX*appconfig` WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'' ); + $query = OC_DB::prepare( 'SELECT `appid` FROM `*PREFIX*appconfig`' + .' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'' ); $result=$query->execute(); while($row=$result->fetchRow()) { if(array_search($row['appid'], $apps)===false) { @@ -203,7 +214,8 @@ class OC_App{ $appdata=OC_OCSClient::getApplication($app); $download=OC_OCSClient::getApplicationDownload($app, 1); if(isset($download['downloadlink']) and $download['downloadlink']!='') { - $app=OC_Installer::installApp(array('source'=>'http', 'href'=>$download['downloadlink'],'appdata'=>$appdata)); + $info = array('source'=>'http', 'href'=>$download['downloadlink'], 'appdata'=>$appdata); + $app=OC_Installer::installApp($info); } } } @@ -211,8 +223,11 @@ class OC_App{ // check if the app is compatible with this version of ownCloud $info=OC_App::getAppInfo($app); $version=OC_Util::getVersion(); - if(!isset($info['require']) or ($version[0]>$info['require'])) { - OC_Log::write('core', 'App "'.$info['name'].'" can\'t be installed because it is not compatible with this version of ownCloud', OC_Log::ERROR); + if(!isset($info['require']) or !self::isAppVersionCompatible($version, $info['require'])) { + OC_Log::write('core', + 'App "'.$info['name'].'" can\'t be installed because it is' + .' not compatible with this version of ownCloud', + OC_Log::ERROR); return false; }else{ OC_Appconfig::setValue( $app, 'enabled', 'yes' ); @@ -238,7 +253,7 @@ class OC_App{ OC_Appconfig::setValue( $app, 'enabled', 'no' ); // check if app is a shipped app or not. if not delete - if(!OC_App::isShipped( $app )){ + if(!OC_App::isShipped( $app )) { OC_Installer::removeApp( $app ); } } @@ -285,6 +300,23 @@ class OC_App{ return true; } + /** + * @brief Get the navigation entries for the $app + * @param string $app app + * @return array of the $data added with addNavigationEntry + */ + public static function getAppNavigationEntries($app) { + if(is_file(self::getAppPath($app).'/appinfo/app.php')) { + $save = self::$navigation; + self::$navigation = array(); + require $app.'/appinfo/app.php'; + $app_entries = self::$navigation; + self::$navigation = $save; + return $app_entries; + } + return array(); + } + /** * @brief gets the active Menu entry * @return string id or empty string @@ -310,33 +342,70 @@ class OC_App{ // by default, settings only contain the help menu if(OC_Config::getValue('knowledgebaseenabled', true)==true) { $settings = array( - array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkToRoute( "settings_help" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" )) - ); + array( + "id" => "help", + "order" => 1000, + "href" => OC_Helper::linkToRoute( "settings_help" ), + "name" => $l->t("Help"), + "icon" => OC_Helper::imagePath( "settings", "help.svg" ) + ) + ); } // if the user is logged-in if (OC_User::isLoggedIn()) { // personal menu - $settings[] = array( "id" => "personal", "order" => 1, "href" => OC_Helper::linkToRoute( "settings_personal" ), "name" => $l->t("Personal"), "icon" => OC_Helper::imagePath( "settings", "personal.svg" )); + $settings[] = array( + "id" => "personal", + "order" => 1, + "href" => OC_Helper::linkToRoute( "settings_personal" ), + "name" => $l->t("Personal"), + "icon" => OC_Helper::imagePath( "settings", "personal.svg" ) + ); // if there are some settings forms - if(!empty(self::$settingsForms)) + if(!empty(self::$settingsForms)) { // settings menu - $settings[]=array( "id" => "settings", "order" => 1000, "href" => OC_Helper::linkToRoute( "settings_settings" ), "name" => $l->t("Settings"), "icon" => OC_Helper::imagePath( "settings", "settings.svg" )); + $settings[]=array( + "id" => "settings", + "order" => 1000, + "href" => OC_Helper::linkToRoute( "settings_settings" ), + "name" => $l->t("Settings"), + "icon" => OC_Helper::imagePath( "settings", "settings.svg" ) + ); + } //SubAdmins are also allowed to access user management if(OC_SubAdmin::isSubAdmin(OC_User::getUser())) { // admin users menu - $settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkToRoute( "settings_users" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" )); + $settings[] = array( + "id" => "core_users", + "order" => 2, + "href" => OC_Helper::linkToRoute( "settings_users" ), + "name" => $l->t("Users"), + "icon" => OC_Helper::imagePath( "settings", "users.svg" ) + ); } // if the user is an admin if(OC_User::isAdminUser(OC_User::getUser())) { // admin apps menu - $settings[] = array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkToRoute( "settings_apps" ).'?installed', "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" )); + $settings[] = array( + "id" => "core_apps", + "order" => 3, + "href" => OC_Helper::linkToRoute( "settings_apps" ).'?installed', + "name" => $l->t("Apps"), + "icon" => OC_Helper::imagePath( "settings", "apps.svg" ) + ); - $settings[]=array( "id" => "admin", "order" => 1000, "href" => OC_Helper::linkToRoute( "settings_admin" ), "name" => $l->t("Admin"), "icon" => OC_Helper::imagePath( "settings", "admin.svg" )); + $settings[]=array( + "id" => "admin", + "order" => 1000, + "href" => OC_Helper::linkToRoute( "settings_admin" ), + "name" => $l->t("Admin"), + "icon" => OC_Helper::imagePath( "settings", "admin.svg" ) + ); } } @@ -369,8 +438,9 @@ class OC_App{ } foreach(OC::$APPSROOTS as $dir) { - if(isset($dir['writable']) && $dir['writable']===true) + if(isset($dir['writable']) && $dir['writable']===true) { return $dir['path']; + } } OC_Log::write('core', 'No application directories are marked as writable.', OC_Log::ERROR); @@ -531,16 +601,16 @@ class OC_App{ $forms=array(); switch($type) { case 'settings': - $source=self::$settingsForms; - break; + $source=self::$settingsForms; + break; case 'admin': - $source=self::$adminForms; - break; + $source=self::$adminForms; + break; case 'personal': - $source=self::$personalForms; - break; + $source=self::$personalForms; + break; default: - return array(); + return array(); } foreach($source as $form) { $forms[]=include $form; @@ -615,7 +685,8 @@ class OC_App{ public static function listAllApps() { $installedApps = OC_App::getAllApps(); - //TODO which apps do we want to blacklist and how do we integrate blacklisting with the multi apps folder feature? + //TODO which apps do we want to blacklist and how do we integrate + // blacklisting with the multi apps folder feature? $blacklist = array('files');//we dont want to show configuration for these $appList = array(); @@ -645,7 +716,7 @@ class OC_App{ $info['update']=false; } else { $info['internal']=false; - $info['internallabel']='3rd Party App'; + $info['internallabel']='3rd Party'; $info['internalclass']='externalapp'; $info['update']=OC_Installer::isUpdateAvailable($app); } @@ -668,25 +739,26 @@ class OC_App{ // OR $app['ocs_id'] == $remote['ocs_id'] ) { unset( $remoteApps[$key]); + } } } + $combinedApps = array_merge( $appList, $remoteApps ); + } else { + $combinedApps = $appList; } - $combinedApps = array_merge( $appList, $remoteApps ); - } else { - $combinedApps = $appList; - } - return $combinedApps; -} + return $combinedApps; + } /** * @brief: get a list of all apps on apps.owncloud.com - * @return array, multi-dimensional array of apps. Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description + * @return array, multi-dimensional array of apps. + * Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description */ public static function getAppstoreApps( $filter = 'approved' ) { - $catagoryNames = OC_OCSClient::getCategories(); - if ( is_array( $catagoryNames ) ) { + $categoryNames = OC_OCSClient::getCategories(); + if ( is_array( $categoryNames ) ) { // Check that categories of apps were retrieved correctly - if ( ! $categories = array_keys( $catagoryNames ) ) { + if ( ! $categories = array_keys( $categoryNames ) ) { return false; } @@ -700,7 +772,7 @@ class OC_App{ $app1[$i]['ocs_id'] = $app['id']; $app1[$i]['internal'] = $app1[$i]['active'] = 0; $app1[$i]['update'] = false; - if($app['label']=='recommended'){ + if($app['label']=='recommended') { $app1[$i]['internallabel'] = 'Recommended'; $app1[$i]['internalclass'] = 'recommendedapp'; }else{ @@ -748,7 +820,9 @@ class OC_App{ $installedVersion = $versions[$app]; if (version_compare($currentVersion, $installedVersion, '>')) { $info = self::getAppInfo($app); - OC_Log::write($app, 'starting app upgrade from '.$installedVersion.' to '.$currentVersion, OC_Log::DEBUG); + OC_Log::write($app, + 'starting app upgrade from '.$installedVersion.' to '.$currentVersion, + OC_Log::DEBUG); try { OC_App::updateApp($app); OC_Hook::emit('update', 'success', 'Updated '.$info['name'].' app'); @@ -777,14 +851,49 @@ class OC_App{ foreach($apps as $app) { // check if the app is compatible with this version of ownCloud $info = OC_App::getAppInfo($app); - if(!isset($info['require']) or (($version[0].'.'.$version[1])>$info['require'])) { - OC_Log::write('core', 'App "'.$info['name'].'" ('.$app.') can\'t be used because it is not compatible with this version of ownCloud', OC_Log::ERROR); + if(!isset($info['require']) or !self::isAppVersionCompatible($version, $info['require'])) { + OC_Log::write('core', + 'App "'.$info['name'].'" ('.$app.') can\'t be used because it is' + .' not compatible with this version of ownCloud', + OC_Log::ERROR); OC_App::disable( $app ); OC_Hook::emit('update', 'success', 'Disabled '.$info['name'].' app because it is not compatible'); } } } + + /** + * Compares the app version with the owncloud version to see if the app + * requires a newer version than the currently active one + * @param array $owncloudVersions array with 3 entries: major minor bugfix + * @param string $appRequired the required version from the xml + * major.minor.bugfix + * @return boolean true if compatible, otherwise false + */ + public static function isAppVersionCompatible($owncloudVersions, $appRequired){ + $appVersions = explode('.', $appRequired); + + for($i=0; $i $appVersion) { + return true; + } + } + + return true; + } + + /** * get the installed version of all apps */ @@ -794,7 +903,8 @@ class OC_App{ return $versions; // when function is used besides in checkUpgrade } $versions=array(); - $query = OC_DB::prepare( 'SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig` WHERE `configkey` = \'installed_version\'' ); + $query = OC_DB::prepare( 'SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig`' + .' WHERE `configkey` = \'installed_version\'' ); $result = $query->execute(); while($row = $result->fetchRow()) { $versions[$row['appid']]=$row['configvalue']; diff --git a/lib/appconfig.php b/lib/appconfig.php index 1f2d576af877c0c2cbea553d258077568a3f6d2e..e615d838173e9a182d2397be10a9d5cad98577f9 100644 --- a/lib/appconfig.php +++ b/lib/appconfig.php @@ -91,7 +91,8 @@ class OC_Appconfig{ */ public static function getValue( $app, $key, $default = null ) { // At least some magic in here :-) - $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*appconfig`' + .' WHERE `appid` = ? AND `configkey` = ?' ); $result = $query->execute( array( $app, $key )); $row = $result->fetchRow(); if($row) { @@ -124,11 +125,13 @@ class OC_Appconfig{ public static function setValue( $app, $key, $value ) { // Does the key exist? yes: update. No: insert if(! self::hasKey($app, $key)) { - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*appconfig` ( `appid`, `configkey`, `configvalue` ) VALUES( ?, ?, ? )' ); + $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*appconfig` ( `appid`, `configkey`, `configvalue` )' + .' VALUES( ?, ?, ? )' ); $query->execute( array( $app, $key, $value )); } else{ - $query = OC_DB::prepare( 'UPDATE `*PREFIX*appconfig` SET `configvalue` = ? WHERE `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'UPDATE `*PREFIX*appconfig` SET `configvalue` = ?' + .' WHERE `appid` = ? AND `configkey` = ?' ); $query->execute( array( $value, $app, $key )); } } diff --git a/lib/archive/tar.php b/lib/archive/tar.php index 117d88e5f42f0a6e550e05e00979bff9609a299a..e7c81389619a8f2d00cb94aea7cb3b275895cb46 100644 --- a/lib/archive/tar.php +++ b/lib/archive/tar.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -require_once 'Archive/Tar.php'; +require_once OC::$THIRDPARTYROOT . '/3rdparty/Archive/Tar.php'; class OC_Archive_TAR extends OC_Archive{ const PLAIN=0; diff --git a/lib/arrayparser.php b/lib/arrayparser.php new file mode 100644 index 0000000000000000000000000000000000000000..3bb394a5163b77a52cde1a98d04660c9a56afc7f --- /dev/null +++ b/lib/arrayparser.php @@ -0,0 +1,189 @@ +. + * + */ + +namespace OC; + +class SyntaxException extends \Exception { +} + +class ArrayParser { + const TYPE_NUM = 1; + const TYPE_BOOL = 2; + const TYPE_STRING = 3; + const TYPE_ARRAY = 4; + + function parsePHP($string) { + $string = $this->stripPHPTags($string); + $string = $this->stripAssignAndReturn($string); + return $this->parse($string); + } + + function stripPHPTags($string) { + $string = trim($string); + if (substr($string, 0, 5) === '') { + $string = substr($string, 0, -2); + } + return $string; + } + + function stripAssignAndReturn($string) { + $string = trim($string); + if (substr($string, 0, 6) === 'return') { + $string = substr($string, 6); + } + if (substr($string, 0, 1) === '$') { + list(, $string) = explode('=', $string, 2); + } + return $string; + } + + function parse($string) { + $string = trim($string); + $string = trim($string, ';'); + switch ($this->getType($string)) { + case self::TYPE_NUM: + return $this->parseNum($string); + case self::TYPE_BOOL: + return $this->parseBool($string); + case self::TYPE_STRING: + return $this->parseString($string); + case self::TYPE_ARRAY: + return $this->parseArray($string); + } + return null; + } + + function getType($string) { + $string = strtolower($string); + $first = substr($string, 0, 1); + $last = substr($string, -1, 1); + $arrayFirst = substr($string, 0, 5); + if (($first === '"' or $first === "'") and ($last === '"' or $last === "'")) { + return self::TYPE_STRING; + } elseif ($string === 'false' or $string === 'true') { + return self::TYPE_BOOL; + } elseif ($arrayFirst === 'array' and $last === ')') { + return self::TYPE_ARRAY; + } else { + return self::TYPE_NUM; + } + } + + function parseString($string) { + return substr($string, 1, -1); + } + + function parseNum($string) { + return intval($string); + } + + function parseBool($string) { + $string = strtolower($string); + return $string === 'true'; + } + + function parseArray($string) { + $body = substr($string, 5); + $body = trim($body); + $body = substr($body, 1, -1); + $items = $this->splitArray($body); + $result = array(); + $lastKey = -1; + foreach ($items as $item) { + $item = trim($item); + if ($item) { + if (strpos($item, '=>')) { + list($key, $value) = explode('=>', $item, 2); + $key = $this->parse($key); + $value = $this->parse($value); + } else { + $key = ++$lastKey; + $value = $item; + } + + if (is_numeric($key)) { + $lastKey = $key; + } + $result[$key] = $value; + } + } + return $result; + } + + function splitArray($body) { + $inSingleQuote = false;//keep track if we are inside quotes + $inDoubleQuote = false; + $bracketDepth = 0;//keep track if we are inside brackets + $parts = array(); + $start = 0; + $escaped = false;//keep track if we are after an escape character + $skips = array();//keep track of the escape characters we need to remove from the result + if (substr($body, -1, 1) !== ',') { + $body .= ','; + } + for ($i = 0; $i < strlen($body); $i++) { + $char = substr($body, $i, 1); + if ($char === '\\') { + if ($escaped) { + array_unshift($skips, $i - 1); + } + $escaped = !$escaped; + } else { + if ($char === '"' and !$inSingleQuote) { + if ($escaped) { + array_unshift($skips, $i - 1); + } else { + $inDoubleQuote = !$inDoubleQuote; + } + } elseif ($char === "'" and !$inDoubleQuote) { + if ($escaped) { + array_unshift($skips, $i - 1); + } else { + $inSingleQuote = !$inSingleQuote; + } + } elseif (!$inDoubleQuote and !$inSingleQuote) { + if ($char === '(') { + $bracketDepth++; + } elseif ($char === ')') { + if ($bracketDepth <= 0) { + throw new SyntaxException; + } else { + $bracketDepth--; + } + } elseif ($bracketDepth === 0 and $char === ',') { + $part = substr($body, $start, $i - $start); + foreach ($skips as $skip) { + $part = substr($part, 0, $skip - $start) . substr($part, $skip - $start + 1); + } + $parts[] = $part; + $start = $i + 1; + $skips = array(); + } + } + $escaped = false; + } + } + return $parts; + } +} diff --git a/lib/backgroundjob/queuedtask.php b/lib/backgroundjob/queuedtask.php index 8264e1a0ae66d97c46dbe728bcf969bf9e902966..b2ce6f39ed8ed365346e0508f400b592baf23837 100644 --- a/lib/backgroundjob/queuedtask.php +++ b/lib/backgroundjob/queuedtask.php @@ -82,7 +82,8 @@ class OC_BackgroundJob_QueuedTask{ * @return id of task */ public static function add( $app, $klass, $method, $parameters ) { - $stmt = OC_DB::prepare( 'INSERT INTO `*PREFIX*queuedtasks` (`app`, `klass`, `method`, `parameters`) VALUES(?,?,?,?)' ); + $stmt = OC_DB::prepare( 'INSERT INTO `*PREFIX*queuedtasks` (`app`, `klass`, `method`, `parameters`)' + .' VALUES(?,?,?,?)' ); $result = $stmt->execute(array($app, $klass, $method, $parameters )); return OC_DB::insertid(); diff --git a/lib/base.php b/lib/base.php index 5bfdb0b7c0a568f893d864b3e31c51f0a0580733..0e751c0f0ecc2f7c3667fd862f0d3c7e0c33eaad 100644 --- a/lib/base.php +++ b/lib/base.php @@ -162,7 +162,9 @@ class OC { OC::$THIRDPARTYWEBROOT = rtrim(dirname(OC::$WEBROOT), '/'); OC::$THIRDPARTYROOT = rtrim(dirname(OC::$SERVERROOT), '/'); } else { - echo("3rdparty directory not found! Please put the ownCloud 3rdparty folder in the ownCloud folder or the folder above. You can also configure the location in the config.php file."); + echo('3rdparty directory not found! Please put the ownCloud 3rdparty' + .' folder in the ownCloud folder or the folder above.' + .' You can also configure the location in the config.php file.'); exit; } // search the apps folder @@ -178,11 +180,16 @@ class OC { } elseif (file_exists(OC::$SERVERROOT . '/apps')) { OC::$APPSROOTS[] = array('path' => OC::$SERVERROOT . '/apps', 'url' => '/apps', 'writable' => true); } elseif (file_exists(OC::$SERVERROOT . '/../apps')) { - OC::$APPSROOTS[] = array('path' => rtrim(dirname(OC::$SERVERROOT), '/') . '/apps', 'url' => '/apps', 'writable' => true); + OC::$APPSROOTS[] = array( + 'path' => rtrim(dirname(OC::$SERVERROOT), '/') . '/apps', + 'url' => '/apps', + 'writable' => true + ); } if (empty(OC::$APPSROOTS)) { - echo("apps directory not found! Please put the ownCloud apps folder in the ownCloud folder or the folder above. You can also configure the location in the config.php file."); + echo('apps directory not found! Please put the ownCloud apps folder in the ownCloud folder' + .' or the folder above. You can also configure the location in the config.php file.'); exit; } $paths = array(); @@ -202,9 +209,14 @@ class OC { } public static function checkConfig() { - if (file_exists(OC::$SERVERROOT . "/config/config.php") and !is_writable(OC::$SERVERROOT . "/config/config.php")) { + if (file_exists(OC::$SERVERROOT . "/config/config.php") + and !is_writable(OC::$SERVERROOT . "/config/config.php")) { $tmpl = new OC_Template('', 'error', 'guest'); - $tmpl->assign('errors', array(1 => array('error' => "Can't write into config directory 'config'", 'hint' => "You can usually fix this by giving the webserver user write access to the config directory in owncloud"))); + $tmpl->assign('errors', array(1 => array( + 'error' => "Can't write into config directory 'config'", + 'hint' => 'You can usually fix this by giving the webserver user write access' + .' to the config directory in owncloud' + ))); $tmpl->printPage(); exit(); } @@ -231,6 +243,11 @@ class OC { header("Location: $url"); exit(); } + } else { + // Invalidate HSTS headers + if (OC_Request::serverProtocol() === 'https') { + header('Strict-Transport-Security: max-age=0'); + } } } @@ -257,7 +274,9 @@ class OC { if (version_compare($currentVersion, $installedVersion, '>')) { if ($showTemplate && !OC_Config::getValue('maintenance', false)) { OC_Config::setValue('maintenance', true); - OC_Log::write('core', 'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, OC_Log::DEBUG); + OC_Log::write('core', + 'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, + OC_Log::DEBUG); OC_Util::addscript('update'); $tmpl = new OC_Template('', 'update', 'guest'); $tmpl->assign('version', OC_Util::getVersionString()); @@ -278,6 +297,7 @@ class OC { OC_Util::addScript("jquery-showpassword"); OC_Util::addScript("jquery.infieldlabel"); OC_Util::addScript("jquery-tipsy"); + OC_Util::addScript("compatibility"); OC_Util::addScript("oc-dialogs"); OC_Util::addScript("js"); OC_Util::addScript("eventsource"); @@ -300,19 +320,33 @@ class OC { // set the session name to the instance id - which is unique session_name(OC_Util::getInstanceId()); - // (re)-initialize session - session_start(); + // if session cant be started break with http 500 error + if (session_start() === false){ + OC_Log::write('core', 'Session could not be initialized', + OC_Log::ERROR); + + header('HTTP/1.1 500 Internal Server Error'); + OC_Util::addStyle("styles"); + $error = 'Session could not be initialized. Please contact your '; + $error .= 'system administrator'; + + $tmpl = new OC_Template('', 'error', 'guest'); + $tmpl->assign('errors', array(1 => array('error' => $error))); + $tmpl->printPage(); + + exit(); + } // regenerate session id periodically to avoid session fixation if (!isset($_SESSION['SID_CREATED'])) { $_SESSION['SID_CREATED'] = time(); - } else if (time() - $_SESSION['SID_CREATED'] > 900) { + } else if (time() - $_SESSION['SID_CREATED'] > 60*60*12) { session_regenerate_id(true); $_SESSION['SID_CREATED'] = time(); } // session timeout - if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 3600)) { + if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 60*60*24)) { if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } @@ -346,7 +380,7 @@ class OC { public static function init() { // register autoloader spl_autoload_register(array('OC', 'autoload')); - setlocale(LC_ALL, 'en_US.UTF-8'); + OC_Util::issetlocaleworking(); // set some stuff //ob_start(); @@ -387,14 +421,16 @@ class OC { } //set http auth headers for apache+php-cgi work around - if (isset($_SERVER['HTTP_AUTHORIZATION']) && preg_match('/Basic\s+(.*)$/i', $_SERVER['HTTP_AUTHORIZATION'], $matches)) { + if (isset($_SERVER['HTTP_AUTHORIZATION']) + && preg_match('/Basic\s+(.*)$/i', $_SERVER['HTTP_AUTHORIZATION'], $matches)) { list($name, $password) = explode(':', base64_decode($matches[1]), 2); $_SERVER['PHP_AUTH_USER'] = strip_tags($name); $_SERVER['PHP_AUTH_PW'] = strip_tags($password); } //set http auth headers for apache+php-cgi work around if variable gets renamed by apache - if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && preg_match('/Basic\s+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches)) { + if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) + && preg_match('/Basic\s+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches)) { list($name, $password) = explode(':', base64_decode($matches[1]), 2); $_SERVER['PHP_AUTH_USER'] = strip_tags($name); $_SERVER['PHP_AUTH_PW'] = strip_tags($password); @@ -402,12 +438,6 @@ class OC { self::initPaths(); - if (!defined('PHPUNIT_RUN')) { - register_shutdown_function(array('OC_Log', 'onShutdown')); - set_error_handler(array('OC_Log', 'onError')); - set_exception_handler(array('OC_Log', 'onException')); - } - // set debug mode if an xdebug session is active if (!defined('DEBUG') || !DEBUG) { if (isset($_COOKIE['XDEBUG_SESSION'])) { @@ -415,6 +445,12 @@ class OC { } } + if (!defined('PHPUNIT_RUN') and !(defined('DEBUG') and DEBUG)) { + register_shutdown_function(array('OC_Log', 'onShutdown')); + set_error_handler(array('OC_Log', 'onError')); + set_exception_handler(array('OC_Log', 'onException')); + } + // register the stream wrappers stream_wrapper_register('fakedir', 'OC\Files\Stream\Dir'); stream_wrapper_register('static', 'OC\Files\Stream\StaticStream'); @@ -441,7 +477,8 @@ class OC { OC_User::useBackend(new OC_User_Database()); OC_Group::useBackend(new OC_Group_Database()); - if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SESSION['user_id']) && $_SERVER['PHP_AUTH_USER'] != $_SESSION['user_id']) { + if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SESSION['user_id']) + && $_SERVER['PHP_AUTH_USER'] != $_SESSION['user_id']) { OC_User::logout(); } @@ -468,7 +505,7 @@ class OC { register_shutdown_function(array('OC_Helper', 'cleanTmp')); //parse the given parameters - self::$REQUESTEDAPP = (isset($_GET['app']) && trim($_GET['app']) != '' && !is_null($_GET['app']) ? str_replace(array('\0', '/', '\\', '..'), '', strip_tags($_GET['app'])) : OC_Config::getValue('defaultapp', 'files')); + self::$REQUESTEDAPP = (isset($_GET['app']) && trim($_GET['app']) != '' && !is_null($_GET['app']) ? OC_App::cleanAppId(strip_tags($_GET['app'])) : OC_Config::getValue('defaultapp', 'files')); if (substr_count(self::$REQUESTEDAPP, '?') != 0) { $app = substr(self::$REQUESTEDAPP, 0, strpos(self::$REQUESTEDAPP, '?')); $param = substr($_GET['app'], strpos($_GET['app'], '?') + 1); @@ -498,7 +535,9 @@ class OC { // write error into log if locale can't be set if (OC_Util::issetlocaleworking() == false) { - OC_Log::write('core', 'setting locale to en_US.UTF-8 failed. Support is probably not installed on your system', OC_Log::ERROR); + OC_Log::write('core', + 'setting locale to en_US.UTF-8/en_US.UTF8 failed. Support is probably not installed on your system', + OC_Log::ERROR); } if (OC_Config::getValue('installed', false)) { if (OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') { @@ -548,14 +587,16 @@ class OC { require_once 'core/setup.php'; exit(); } + $request = OC_Request::getPathInfo(); - if(substr($request, -3) !== '.js'){// we need these files during the upgrade + if(substr($request, -3) !== '.js') {// we need these files during the upgrade self::checkMaintenanceMode(); self::checkUpgrade(); } if (!self::$CLI) { try { + OC_App::loadApps(); OC::getRouter()->match(OC_Request::getPathInfo()); return; } catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) { diff --git a/lib/config.php b/lib/config.php index cbea9199320dec0b156200cedc7cfc62a4b5e0ce..0bd497b8e50a396758f987ca44ecef66052fd948 100644 --- a/lib/config.php +++ b/lib/config.php @@ -166,7 +166,8 @@ class OC_Config{ $tmpl = new OC_Template( '', 'error', 'guest' ); $tmpl->assign('errors', array(1=>array( 'error'=>"Can't write into config directory 'config'", - 'hint'=>"You can usually fix this by giving the webserver user write access to the config directory in owncloud"))); + 'hint'=>'You can usually fix this by giving the webserver user write access' + .' to the config directory in owncloud'))); $tmpl->printPage(); exit; } diff --git a/lib/connector/sabre/directory.php b/lib/connector/sabre/directory.php index b210602bbf48f2a5cfd1697af349fec0713c94c0..953692f80a999829ea678f07c0beef1be5240f22 100644 --- a/lib/connector/sabre/directory.php +++ b/lib/connector/sabre/directory.php @@ -62,7 +62,36 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa } } else { $newPath = $this->path . '/' . $name; - \OC\Files\Filesystem::file_put_contents($newPath, $data); + + // mark file as partial while uploading (ignored by the scanner) + $partpath = $newPath . '.part'; + + \OC\Files\Filesystem::file_put_contents($partpath, $data); + + //detect aborted upload + if (isset ($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'PUT' ) { + if (isset($_SERVER['CONTENT_LENGTH'])) { + $expected = $_SERVER['CONTENT_LENGTH']; + $actual = \OC\Files\Filesystem::filesize($partpath); + if ($actual != $expected) { + \OC\Files\Filesystem::unlink($partpath); + throw new Sabre_DAV_Exception_BadRequest( + 'expected filesize ' . $expected . ' got ' . $actual); + } + } + } + + // rename to correct path + \OC\Files\Filesystem::rename($partpath, $newPath); + + // allow sync clients to send the mtime along in a header + $mtime = OC_Request::hasModificationTime(); + if ($mtime !== false) { + if(\OC\Files\Filesystem::touch($newPath, $mtime)) { + header('X-OC-MTime: accepted'); + } + } + return OC_Connector_Sabre_Node::getETagPropertyForPath($newPath); } @@ -121,7 +150,7 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa $paths = array(); foreach($folder_content as $info) { $paths[] = $this->path.'/'.$info['name']; - $properties[$this->path.'/'.$info['name']][self::GETETAG_PROPERTYNAME] = $info['etag']; + $properties[$this->path.'/'.$info['name']][self::GETETAG_PROPERTYNAME] = '"' . $info['etag'] . '"'; } if(count($paths)>0) { // @@ -131,7 +160,8 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa $chunks = array_chunk($paths, 200, false); foreach ($chunks as $pack) { $placeholders = join(',', array_fill(0, count($pack), '?')); - $query = OC_DB::prepare( 'SELECT * FROM `*PREFIX*properties` WHERE `userid` = ?' . ' AND `propertypath` IN ('.$placeholders.')' ); + $query = OC_DB::prepare( 'SELECT * FROM `*PREFIX*properties`' + .' WHERE `userid` = ?' . ' AND `propertypath` IN ('.$placeholders.')' ); array_unshift($pack, OC_User::getUser()); // prepend userid $result = $query->execute( $pack ); while($row = $result->fetchRow()) { diff --git a/lib/connector/sabre/file.php b/lib/connector/sabre/file.php index 1c18a391742aabbc87519310b6a7b57ae1a364c8..91646312e901a6cdb77f4697908e876be8238e55 100644 --- a/lib/connector/sabre/file.php +++ b/lib/connector/sabre/file.php @@ -45,7 +45,34 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function put($data) { - \OC\Files\Filesystem::file_put_contents($this->path,$data); + // mark file as partial while uploading (ignored by the scanner) + $partpath = $this->path . '.part'; + + \OC\Files\Filesystem::file_put_contents($partpath, $data); + + //detect aborted upload + if (isset ($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'PUT' ) { + if (isset($_SERVER['CONTENT_LENGTH'])) { + $expected = $_SERVER['CONTENT_LENGTH']; + $actual = \OC\Files\Filesystem::filesize($partpath); + if ($actual != $expected) { + \OC\Files\Filesystem::unlink($partpath); + throw new Sabre_DAV_Exception_BadRequest( + 'expected filesize ' . $expected . ' got ' . $actual); + } + } + } + + // rename to correct path + \OC\Files\Filesystem::rename($partpath, $this->path); + + //allow sync clients to send the mtime along in a header + $mtime = OC_Request::hasModificationTime(); + if ($mtime !== false) { + if(\OC\Files\Filesystem::touch($this->path, $mtime)) { + header('X-OC-MTime: accepted'); + } + } return OC_Connector_Sabre_Node::getETagPropertyForPath($this->path); } @@ -57,7 +84,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D */ public function get() { - return \OC\Files\Filesystem::fopen($this->path,'rb'); + return \OC\Files\Filesystem::fopen($this->path, 'rb'); } @@ -86,8 +113,9 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D /** * Returns the ETag for a file * - * An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change. - * The ETag is an arbritrary string, but MUST be surrounded by double-quotes. + * An ETag is a unique identifier representing the current version of the + * file. If the file changes, the ETag MUST change. The ETag is an + * arbritrary string, but MUST be surrounded by double-quotes. * * Return null if the ETag can not effectively be determined * diff --git a/lib/connector/sabre/locks.php b/lib/connector/sabre/locks.php index a72d003bc72d08cdd255ebaf93ebe4c9dfe1ac71..e58e584fb4117594c5602b12604e5fde497e8cba 100644 --- a/lib/connector/sabre/locks.php +++ b/lib/connector/sabre/locks.php @@ -44,7 +44,8 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract { // NOTE: SQLite requires time() to be inserted directly. That's ugly // but otherwise reading locks from SQLite Databases will return // nothing - $query = 'SELECT * FROM `*PREFIX*locks` WHERE `userid` = ? AND (`created` + `timeout`) > '.time().' AND (( `uri` = ?)'; + $query = 'SELECT * FROM `*PREFIX*locks`' + .' WHERE `userid` = ? AND (`created` + `timeout`) > '.time().' AND (( `uri` = ?)'; $params = array(OC_User::getUser(), $uri); // We need to check locks for every part in the uri. @@ -116,11 +117,33 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract { } if ($exists) { - $query = OC_DB::prepare( 'UPDATE `*PREFIX*locks` SET `owner` = ?, `timeout` = ?, `scope` = ?, `depth` = ?, `uri` = ?, `created` = ? WHERE `userid` = ? AND `token` = ?' ); - $result = $query->execute( array($lockInfo->owner,$lockInfo->timeout,$lockInfo->scope,$lockInfo->depth,$uri,$lockInfo->created,OC_User::getUser(),$lockInfo->token)); + $query = OC_DB::prepare( 'UPDATE `*PREFIX*locks`' + .' SET `owner` = ?, `timeout` = ?, `scope` = ?, `depth` = ?, `uri` = ?, `created` = ?' + .' WHERE `userid` = ? AND `token` = ?' ); + $result = $query->execute( array( + $lockInfo->owner, + $lockInfo->timeout, + $lockInfo->scope, + $lockInfo->depth, + $uri, + $lockInfo->created, + OC_User::getUser(), + $lockInfo->token) + ); } else { - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*locks` (`userid`,`owner`,`timeout`,`scope`,`depth`,`uri`,`created`,`token`) VALUES (?,?,?,?,?,?,?,?)' ); - $result = $query->execute( array(OC_User::getUser(),$lockInfo->owner,$lockInfo->timeout,$lockInfo->scope,$lockInfo->depth,$uri,$lockInfo->created,$lockInfo->token)); + $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*locks`' + .' (`userid`,`owner`,`timeout`,`scope`,`depth`,`uri`,`created`,`token`)' + .' VALUES (?,?,?,?,?,?,?,?)' ); + $result = $query->execute( array( + OC_User::getUser(), + $lockInfo->owner, + $lockInfo->timeout, + $lockInfo->scope, + $lockInfo->depth, + $uri, + $lockInfo->created, + $lockInfo->token) + ); } return true; diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php index 52995630211fe2a9c012420ecbef320af8697397..360c3066d05086e2687b139f8a80a705683d1251 100644 --- a/lib/connector/sabre/node.php +++ b/lib/connector/sabre/node.php @@ -84,12 +84,13 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr $newPath = $parentPath . '/' . $newName; $oldPath = $this->path; - \OC\Files\Filesystem::rename($this->path,$newPath); + \OC\Files\Filesystem::rename($this->path, $newPath); $this->path = $newPath; - $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertypath` = ? WHERE `userid` = ? AND `propertypath` = ?' ); - $query->execute( array( $newPath,OC_User::getUser(), $oldPath )); + $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertypath` = ?' + .' WHERE `userid` = ? AND `propertypath` = ?' ); + $query->execute( array( $newPath, OC_User::getUser(), $oldPath )); } @@ -149,7 +150,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr // If it was null, we need to delete the property if (is_null($propertyValue)) { if(array_key_exists( $propertyName, $existing )) { - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*properties` WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = ?' ); + $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*properties`' + .' WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = ?' ); $query->execute( array( OC_User::getUser(), $this->path, $propertyName )); } } @@ -160,10 +162,12 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr $this->touch($propertyValue); } else { if(!array_key_exists( $propertyName, $existing )) { - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*properties` (`userid`,`propertypath`,`propertyname`,`propertyvalue`) VALUES(?,?,?,?)' ); + $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*properties`' + .' (`userid`,`propertypath`,`propertyname`,`propertyvalue`) VALUES(?,?,?,?)' ); $query->execute( array( OC_User::getUser(), $this->path, $propertyName,$propertyValue )); } else { - $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyvalue` = ? WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = ?' ); + $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyvalue` = ?' + .' WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = ?' ); $query->execute( array( $propertyValue,OC_User::getUser(), $this->path, $propertyName )); } } diff --git a/lib/connector/sabre/quotaplugin.php b/lib/connector/sabre/quotaplugin.php index ce9a968eb3ca2eabe17e5fe8d01fec416d739394..c80a33d04b1e80b5625ec7fbf93ac748bdc4fd3c 100644 --- a/lib/connector/sabre/quotaplugin.php +++ b/lib/connector/sabre/quotaplugin.php @@ -50,7 +50,8 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { $uri='/'.$uri; } list($parentUri, $newName) = Sabre_DAV_URLUtil::splitPath($uri); - if ($length > \OC\Files\Filesystem::free_space($parentUri)) { + $freeSpace = \OC\Files\Filesystem::free_space($parentUri); + if ($freeSpace !== \OC\Files\FREE_SPACE_UNKNOWN && $length > $freeSpace) { throw new Sabre_DAV_Exception_InsufficientStorage(); } } diff --git a/lib/connector/sabre/request.php b/lib/connector/sabre/request.php index 97a27996bf364f165b11c69cdd0d4d2947ccb50c..d70c25c4e702b7b512ff2a8b17d63c099baf2e59 100644 --- a/lib/connector/sabre/request.php +++ b/lib/connector/sabre/request.php @@ -40,7 +40,7 @@ class OC_Connector_Sabre_Request extends Sabre_HTTP_Request { * @return string */ public function getRawServerValue($field) { - if($field == 'REQUEST_URI'){ + if($field == 'REQUEST_URI') { return $this->getUri(); } else{ diff --git a/lib/db.php b/lib/db.php index 51f7c7679d4c4777380815be816b1f75dc1ea721..fb2c027cdb9bff024ba8d313520e1b3c0a11905e 100644 --- a/lib/db.php +++ b/lib/db.php @@ -178,6 +178,13 @@ class OC_DB { $dsn = 'oci:dbname=//' . $host . '/' . $name; } break; + case 'mssql': + if ($port) { + $dsn='sqlsrv:Server='.$host.','.$port.';Database='.$name; + } else { + $dsn='sqlsrv:Server='.$host.';Database='.$name; + } + break; default: return false; } @@ -228,11 +235,12 @@ class OC_DB { // Prepare options array $options = array( - 'portability' => MDB2_PORTABILITY_ALL - MDB2_PORTABILITY_FIX_CASE, - 'log_line_break' => '
    ', - 'idxname_format' => '%s', - 'debug' => true, - 'quote_identifier' => true ); + 'portability' => MDB2_PORTABILITY_ALL - MDB2_PORTABILITY_FIX_CASE, + 'log_line_break' => '
    ', + 'idxname_format' => '%s', + 'debug' => true, + 'quote_identifier' => true + ); // Add the dsn according to the database type switch($type) { @@ -277,6 +285,15 @@ class OC_DB { $dsn['database'] = $user; } break; + case 'mssql': + $dsn = array( + 'phptype' => 'sqlsrv', + 'username' => $user, + 'password' => $pass, + 'hostspec' => $host, + 'database' => $name + ); + break; default: return false; } @@ -388,6 +405,13 @@ class OC_DB { $query = self::prepare('SELECT lastval() AS id'); $row = $query->execute()->fetchRow(); return $row['id']; + } + if( $type == 'mssql' ) { + if($table !== null) { + $prefix = OC_Config::getValue( "dbtableprefix", "oc_" ); + $table = str_replace( '*PREFIX*', $prefix, $table ); + } + return self::$connection->lastInsertId($table); }else{ if($table !== null) { $prefix = OC_Config::getValue( "dbtableprefix", "oc_" ); @@ -474,7 +498,8 @@ class OC_DB { * http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions037.htm */ if( $CONFIG_DBTYPE == 'pgsql' ) { //mysql support it too but sqlite doesn't - $content = str_replace( '0000-00-00 00:00:00', 'CURRENT_TIMESTAMP', $content ); + $content = str_replace( '0000-00-00 00:00:00', + 'CURRENT_TIMESTAMP', $content ); } file_put_contents( $file2, $content ); @@ -495,11 +520,15 @@ class OC_DB { $definition['name']=OC_Config::getValue( "dbuser", $oldname ); } + // we should never drop a database + $definition['overwrite'] = false; + $ret=self::$schema->createDatabase( $definition ); // Die in case something went wrong if( $ret instanceof MDB2_Error ) { - OC_Template::printErrorPage( self::$MDB2->getDebugOutput().' '.$ret->getMessage() . ': ' . $ret->getUserInfo() ); + OC_Template::printErrorPage( self::$MDB2->getDebugOutput().' '.$ret->getMessage() . ': ' + . $ret->getUserInfo() ); } return true; @@ -541,7 +570,8 @@ class OC_DB { * http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions037.htm */ if( $CONFIG_DBTYPE == 'pgsql' ) { //mysql support it too but sqlite doesn't - $content = str_replace( '0000-00-00 00:00:00', 'CURRENT_TIMESTAMP', $content ); + $content = str_replace( '0000-00-00 00:00:00', + 'CURRENT_TIMESTAMP', $content ); } file_put_contents( $file2, $content ); $op = self::$schema->updateDatabase($file2, $previousSchema, array(), false); @@ -624,7 +654,7 @@ class OC_DB { } else { return true; } - } elseif( $type == 'pgsql' || $type == 'oci' || $type == 'mysql') { + } elseif( $type == 'pgsql' || $type == 'oci' || $type == 'mysql' || $type == 'mssql') { $query = 'INSERT INTO `' .$table . '` (' . implode(',', array_keys($input)) . ') SELECT \'' . implode('\',\'', array_values($input)) . '\' FROM ' . $table . ' WHERE '; @@ -679,11 +709,20 @@ class OC_DB { $query = str_ireplace( 'UNIX_TIMESTAMP()', 'strftime(\'%s\',\'now\')', $query ); }elseif( $type == 'pgsql' ) { $query = str_replace( '`', '"', $query ); - $query = str_ireplace( 'UNIX_TIMESTAMP()', 'cast(extract(epoch from current_timestamp) as integer)', $query ); + $query = str_ireplace( 'UNIX_TIMESTAMP()', 'cast(extract(epoch from current_timestamp) as integer)', + $query ); }elseif( $type == 'oci' ) { $query = str_replace( '`', '"', $query ); $query = str_ireplace( 'NOW()', 'CURRENT_TIMESTAMP', $query ); - } + }elseif( $type == 'mssql' ) { + $query = preg_replace( "/\`(.*?)`/", "[$1]", $query ); + $query = str_replace( 'NOW()', 'CURRENT_TIMESTAMP', $query ); + $query = str_replace( 'now()', 'CURRENT_TIMESTAMP', $query ); + $query = str_replace( 'LENGTH(', 'LEN(', $query ); + $query = str_replace( 'SUBSTR(', 'SUBSTRING(', $query ); + + $query = self::fixLimitClauseForMSSQL($query); + } // replace table name prefix $query = str_replace( '*PREFIX*', $prefix, $query ); @@ -691,6 +730,60 @@ class OC_DB { return $query; } + private static function fixLimitClauseForMSSQL($query) { + $limitLocation = stripos ($query, "LIMIT"); + + if ( $limitLocation === false ) { + return $query; + } + + // total == 0 means all results - not zero results + // + // First number is either total or offset, locate it by first space + // + $offset = substr ($query, $limitLocation + 5); + $offset = substr ($offset, 0, stripos ($offset, ' ')); + $offset = trim ($offset); + + // check for another parameter + if (stripos ($offset, ',') === false) { + // no more parameters + $offset = 0; + $total = intval ($offset); + } else { + // found another parameter + $offset = intval ($offset); + + $total = substr ($query, $limitLocation + 5); + $total = substr ($total, stripos ($total, ',')); + + $total = substr ($total, 0, stripos ($total, ' ')); + $total = intval ($total); + } + + $query = trim (substr ($query, 0, $limitLocation)); + + if ($offset == 0 && $total !== 0) { + if (strpos($query, "SELECT") === false) { + $query = "TOP {$total} " . $query; + } else { + $query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP '.$total, $query); + } + } else if ($offset > 0) { + $query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP(10000000) ', $query); + $query = 'SELECT * + FROM (SELECT sub2.*, ROW_NUMBER() OVER(ORDER BY sub2.line2) AS line3 + FROM (SELECT 1 AS line2, sub1.* FROM (' . $query . ') AS sub1) as sub2) AS sub3'; + + if ($total > 0) { + $query .= ' WHERE line3 BETWEEN ' . ($offset + 1) . ' AND ' . ($offset + $total); + } else { + $query .= ' WHERE line3 > ' . $offset; + } + } + return $query; + } + /** * @brief drop a table * @param string $tableName the table to drop @@ -842,19 +935,119 @@ class PDOStatementWrapper{ * make execute return the result instead of a bool */ public function execute($input=array()) { - $this->lastArguments=$input; - if(count($input)>0) { + $this->lastArguments = $input; + if (count($input) > 0) { + + if (!isset($type)) { + $type = OC_Config::getValue( "dbtype", "sqlite" ); + } + + if ($type == 'mssql') { + $input = $this->tryFixSubstringLastArgumentDataForMSSQL($input); + } + $result=$this->statement->execute($input); - }else{ + } else { $result=$this->statement->execute(); } - if($result) { + + if ($result) { return $this; - }else{ + } else { return false; } } + private function tryFixSubstringLastArgumentDataForMSSQL($input) { + $query = $this->statement->queryString; + $pos = stripos ($query, 'SUBSTRING'); + + if ( $pos === false) { + return; + } + + try { + $newQuery = ''; + + $cArg = 0; + + $inSubstring = false; + + // Create new query + for ($i = 0; $i < strlen ($query); $i++) { + if ($inSubstring == false) { + // Defines when we should start inserting values + if (substr ($query, $i, 9) == 'SUBSTRING') { + $inSubstring = true; + } + } else { + // Defines when we should stop inserting values + if (substr ($query, $i, 1) == ')') { + $inSubstring = false; + } + } + + if (substr ($query, $i, 1) == '?') { + // We found a question mark + if ($inSubstring) { + $newQuery .= $input[$cArg]; + + // + // Remove from input array + // + array_splice ($input, $cArg, 1); + } else { + $newQuery .= substr ($query, $i, 1); + $cArg++; + } + } else { + $newQuery .= substr ($query, $i, 1); + } + } + + // The global data we need + $name = OC_Config::getValue( "dbname", "owncloud" ); + $host = OC_Config::getValue( "dbhost", "" ); + $user = OC_Config::getValue( "dbuser", "" ); + $pass = OC_Config::getValue( "dbpassword", "" ); + if (strpos($host,':')) { + list($host, $port) = explode(':', $host, 2); + } else { + $port = false; + } + $opts = array(); + + if ($port) { + $dsn = 'sqlsrv:Server='.$host.','.$port.';Database='.$name; + } else { + $dsn = 'sqlsrv:Server='.$host.';Database='.$name; + } + + $PDO = new PDO($dsn, $user, $pass, $opts); + $PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); + $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $this->statement = $PDO->prepare($newQuery); + + $this->lastArguments = $input; + + return $input; + } catch (PDOException $e){ + $entry = 'PDO DB Error: "'.$e->getMessage().'"
    '; + $entry .= 'Offending command was: '.$this->statement->queryString .'
    '; + $entry .= 'Input parameters: ' .print_r($input, true).'
    '; + $entry .= 'Stack trace: ' .$e->getTraceAsString().'
    '; + OC_Log::write('core', $entry, OC_Log::FATAL); + OC_User::setUserId(null); + + // send http status 503 + header('HTTP/1.1 503 Service Temporarily Unavailable'); + header('Status: 503 Service Temporarily Unavailable'); + OC_Template::printErrorPage('Failed to connect to database'); + die ($entry); + } + } + /** * provide numRows */ diff --git a/lib/eventsource.php b/lib/eventsource.php index 1b8033943a19d6d984a48fe43b82c1efb78d1d65..63f197925293d97a6ae5bba8bbc605bb08b6b435 100644 --- a/lib/eventsource.php +++ b/lib/eventsource.php @@ -62,7 +62,8 @@ class OC_EventSource{ $type=null; } if($this->fallback) { - $response=''.PHP_EOL; + $response=''.PHP_EOL; echo $response; }else{ if($type) { diff --git a/lib/filechunking.php b/lib/filechunking.php index d63a0d72c830b88f438ba85e9f399aab795fa6ff..e6d69273a44a6e08e4ad1bcf728c6cea78808ea2 100644 --- a/lib/filechunking.php +++ b/lib/filechunking.php @@ -97,7 +97,8 @@ class OC_FileChunking { $absolutePath = \OC\Files\Filesystem::normalizePath(\OC\Files\Filesystem::getView()->getAbsolutePath($path)); $data = ''; // use file_put_contents as method because that best matches what this function does - if (OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && \OC\Files\Filesystem::isValidPath($path)) { + if (OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) + && \OC\Files\Filesystem::isValidPath($path)) { $path = \OC\Files\Filesystem::getView()->getRelativePath($absolutePath); $exists = \OC\Files\Filesystem::file_exists($path); $run = true; diff --git a/lib/fileproxy/fileoperations.php b/lib/fileproxy/fileoperations.php index 47ccd8f8c26241a51df49fec4af2c0da41c0babe..b2ff2e7e5e99b605a52f0baf2bfb10d5851e7f0c 100644 --- a/lib/fileproxy/fileoperations.php +++ b/lib/fileproxy/fileoperations.php @@ -28,7 +28,7 @@ class OC_FileProxy_FileOperations extends OC_FileProxy{ static $rootView; public function premkdir($path) { - if(!self::$rootView){ + if(!self::$rootView) { self::$rootView = new \OC\Files\View(''); } return !self::$rootView->file_exists($path); diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php index 7e0f631c8fb1724ffbef157e36f2fa6f2fab5236..3dac3264fbec6f27db03836410907a8b6d0bad9b 100644 --- a/lib/fileproxy/quota.php +++ b/lib/fileproxy/quota.php @@ -62,21 +62,21 @@ class OC_FileProxy_Quota extends OC_FileProxy{ * @var string $internalPath */ list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path); - $owner=$storage->getOwner($internalPath); + $owner = $storage->getOwner($internalPath); if (!$owner) { return -1; } - $totalSpace=$this->getQuota($owner); - if($totalSpace==-1) { + $totalSpace = $this->getQuota($owner); + if($totalSpace == -1) { return -1; } $view = new \OC\Files\View("/".$owner."/files"); - $rootInfo=$view->getFileInfo('/'); - $usedSpace=isset($rootInfo['size'])?$rootInfo['size']:0; - return $totalSpace-$usedSpace; + $rootInfo = $view->getFileInfo('/'); + $usedSpace = isset($rootInfo['size'])?$rootInfo['size']:0; + return $totalSpace - $usedSpace; } public function postFree_space($path, $space) { @@ -84,6 +84,9 @@ class OC_FileProxy_Quota extends OC_FileProxy{ if($free==-1) { return $space; } + if ($space < 0){ + return $free; + } return min($free, $space); } @@ -95,7 +98,7 @@ class OC_FileProxy_Quota extends OC_FileProxy{ } public function preCopy($path1, $path2) { - if(!self::$rootView){ + if(!self::$rootView) { self::$rootView = new \OC\Files\View(''); } return (self::$rootView->filesize($path1)<$this->getFreeSpace($path2) or $this->getFreeSpace($path2)==-1); diff --git a/lib/files.php b/lib/files.php index e3245653f99ea7c28f8d51fe1759b04af643978d..b594b78c4b768d7225368859535a76eb07b62ddd 100644 --- a/lib/files.php +++ b/lib/files.php @@ -200,7 +200,8 @@ class OC_Files { $errors = array( array( 'error' => $l->t('ZIP download is turned off.'), - 'hint' => $l->t('Files need to be downloaded one by one.') . '
    ' . $l->t('Back to Files') . '', + 'hint' => $l->t('Files need to be downloaded one by one.') + . '
    ' . $l->t('Back to Files') . '', ) ); $tmpl->assign('errors', $errors); @@ -225,7 +226,9 @@ class OC_Files { $errors = array( array( 'error' => $l->t('Selected files too large to generate zip file.'), - 'hint' => 'Download the files in smaller chunks, seperately or kindly ask your administrator.
    ' . $l->t('Back to Files') . '', + 'hint' => 'Download the files in smaller chunks, seperately' + .' or kindly ask your administrator.
    ' + . $l->t('Back to Files') . '', ) ); $tmpl->assign('errors', $errors); @@ -287,7 +290,9 @@ class OC_Files { file_put_contents(OC::$SERVERROOT . '/.htaccess', $htaccess); return OC_Helper::computerFileSize($size); } else { - OC_Log::write('files', 'Can\'t write upload limit to ' . OC::$SERVERROOT . '/.htaccess. Please check the file permissions', OC_Log::WARN); + OC_Log::write('files', + 'Can\'t write upload limit to ' . OC::$SERVERROOT . '/.htaccess. Please check the file permissions', + OC_Log::WARN); } return false; } diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php index dcb6e8fd39ac7fd8441027356a150772d294bb6c..01e6e7882633376e44c0d08728f1aa5827141c77 100644 --- a/lib/files/cache/cache.php +++ b/lib/files/cache/cache.php @@ -48,6 +48,9 @@ class Cache { } else { $this->storageId = $storage; } + if (strlen($this->storageId) > 64) { + $this->storageId = md5($this->storageId); + } $query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?'); $result = $query->execute(array($this->storageId)); @@ -56,7 +59,7 @@ class Cache { } else { $query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)'); $query->execute(array($this->storageId)); - $this->numericId = \OC_DB::insertid('*PREFIX*filecache'); + $this->numericId = \OC_DB::insertid('*PREFIX*storages'); } } @@ -198,7 +201,8 @@ class Cache { $params[] = $this->numericId; $valuesPlaceholder = array_fill(0, count($queryParts), '?'); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ') VALUES(' . implode(', ', $valuesPlaceholder) . ')'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ')' + . ' VALUES(' . implode(', ', $valuesPlaceholder) . ')'); $query->execute($params); return (int)\OC_DB::insertid('*PREFIX*filecache'); @@ -215,7 +219,8 @@ class Cache { list($queryParts, $params) = $this->buildParts($data); $params[] = $id; - $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=? WHERE fileid = ?'); + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=?' + . ' WHERE fileid = ?'); $query->execute($params); } @@ -332,7 +337,8 @@ class Cache { $query->execute(array($targetPath, md5($targetPath), $child['fileid'])); } - $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `parent` =? WHERE `fileid` = ?'); + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `parent` =?' + . ' WHERE `fileid` = ?'); $query->execute(array($target, md5($target), $newParentId, $sourceId)); } @@ -492,9 +498,10 @@ class Cache { * @return string|bool the path of the folder or false when no folder matched */ public function getIncomplete() { - $query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1'); - $query->execute(array($this->numericId)); - if ($row = $query->fetchRow()) { + $query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`' + . ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1'); + $result = $query->execute(array($this->numericId)); + if ($row = $result->fetchRow()) { return $row['path']; } else { return false; diff --git a/lib/files/cache/legacy.php b/lib/files/cache/legacy.php index 33d4b8e7c9f037a717d8e64f61e4b7dcabab1fb2..2b8689fcbda3671735d60243c5cb19f280989cbe 100644 --- a/lib/files/cache/legacy.php +++ b/lib/files/cache/legacy.php @@ -51,6 +51,12 @@ class Legacy { $this->cacheHasItems = false; return false; } + + if ($result === false || property_exists($result, 'error_message_prefix')) { + $this->cacheHasItems = false; + return false; + } + $this->cacheHasItems = (bool)$result->fetchRow(); return $this->cacheHasItems; } diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php index d0968337f02cd62f02d175f3c4265ca58531e811..e1735831b9447773d250eeb4386ad1769257452a 100644 --- a/lib/files/cache/permissions.php +++ b/lib/files/cache/permissions.php @@ -18,7 +18,7 @@ class Permissions { * @param \OC\Files\Storage\Storage|string $storage */ public function __construct($storage){ - if($storage instanceof \OC\Files\Storage\Storage){ + if($storage instanceof \OC\Files\Storage\Storage) { $this->storageId = $storage->getId(); }else{ $this->storageId = $storage; @@ -51,9 +51,11 @@ class Permissions { */ public function set($fileId, $user, $permissions) { if (self::get($fileId, $user) !== -1) { - $query = \OC_DB::prepare('UPDATE `*PREFIX*permissions` SET `permissions` = ? WHERE `user` = ? AND `fileid` = ?'); + $query = \OC_DB::prepare('UPDATE `*PREFIX*permissions` SET `permissions` = ?' + .' WHERE `user` = ? AND `fileid` = ?'); } else { - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*permissions`(`permissions`, `user`, `fileid`) VALUES(?, ?,? )'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*permissions`(`permissions`, `user`, `fileid`)' + .' VALUES(?, ?,? )'); } $query->execute(array($permissions, $user, $fileId)); } @@ -73,7 +75,8 @@ class Permissions { $params[] = $user; $inPart = implode(', ', array_fill(0, count($fileIds), '?')); - $query = \OC_DB::prepare('SELECT `fileid`, `permissions` FROM `*PREFIX*permissions` WHERE `fileid` IN (' . $inPart . ') AND `user` = ?'); + $query = \OC_DB::prepare('SELECT `fileid`, `permissions` FROM `*PREFIX*permissions`' + .' WHERE `fileid` IN (' . $inPart . ') AND `user` = ?'); $result = $query->execute($params); $filePermissions = array(); while ($row = $result->fetchRow()) { diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php index 8d504af6163caf4d30642efce8f0ca531cbd60b4..88f208547f6162c6c4a5e279c3ebc6288cd65cf6 100644 --- a/lib/files/cache/scanner.php +++ b/lib/files/cache/scanner.php @@ -58,9 +58,10 @@ class Scanner { * scan a single file and store it in the cache * * @param string $file + * @param bool $checkExisting check existing folder sizes in the cache instead of always using -1 for folder size * @return array with metadata of the scanned file */ - public function scanFile($file) { + public function scanFile($file, $checkExisting = false) { \OC_Hook::emit('\OC\Files\Cache\Scanner', 'scan_file', array('path' => $file, 'storage' => $this->storageId)); $data = $this->getData($file); if ($data) { @@ -73,7 +74,15 @@ class Scanner { $this->scanFile($parent); } } - $id = $this->cache->put($file, $data); + if ($checkExisting and $cacheData = $this->cache->get($file)) { + if ($data['size'] === -1) { + $data['size'] = $cacheData['size']; + } + if ($data['mtime'] === $cacheData['mtime']) { + $data['etag'] = $cacheData['etag']; + } + } + $this->cache->put($file, $data); } return $data; } @@ -97,22 +106,20 @@ class Scanner { if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) { \OC_DB::beginTransaction(); while ($file = readdir($dh)) { - if ($file !== '.' and $file !== '..') { + if (!$this->isIgnoredFile($file)) { $child = ($path) ? $path . '/' . $file : $file; - $data = $this->scanFile($child); + $data = $this->scanFile($child, $recursive === self::SCAN_SHALLOW); if ($data) { - if ($data['mimetype'] === 'httpd/unix-directory') { + if ($data['size'] === -1) { if ($recursive === self::SCAN_RECURSIVE) { $childQueue[] = $child; $data['size'] = 0; } else { - $data['size'] = -1; + $size = -1; } - } else { } - if ($data['size'] === -1) { - $size = -1; - } elseif ($size !== -1) { + + if ($size !== -1) { $size += $data['size']; } } @@ -134,11 +141,27 @@ class Scanner { return $size; } + /** + * @brief check if the file should be ignored when scanning + * NOTE: files with a '.part' extension are ignored as well! + * prevents unfinished put requests to be scanned + * @param String $file + * @return boolean + */ + private function isIgnoredFile($file) { + if ($file === '.' || $file === '..' + || pathinfo($file, PATHINFO_EXTENSION) === 'part' + ) { + return true; + } + return false; + } + /** * walk over any folders that are not fully scanned yet and scan them */ public function backgroundScan() { - while ($path = $this->cache->getIncomplete()) { + while (($path = $this->cache->getIncomplete()) !== false) { $this->scan($path); $this->cache->correctFolderSize($path); } diff --git a/lib/files/cache/upgrade.php b/lib/files/cache/upgrade.php index eb8c7297c3e6938b7f0f229697318c9777283546..1fe4c5846867b20b5f1bb15803a0000038a6b0eb 100644 --- a/lib/files/cache/upgrade.php +++ b/lib/files/cache/upgrade.php @@ -69,7 +69,8 @@ class Upgrade { ( `fileid`, `storage`, `path`, `path_hash`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); - $insertQuery->execute(array($data['id'], $data['storage'], $data['path'], $data['path_hash'], $data['parent'], $data['name'], + $insertQuery->execute(array($data['id'], $data['storage'], + $data['path'], $data['path_hash'], $data['parent'], $data['name'], $data['mimetype'], $data['mimepart'], $data['size'], $data['mtime'], $data['encrypted'])); } } diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php index 71bf3d8708d2f5e6cb9c9489050d4b3972077048..0bbd7550d74dce4638cc3f5e74f559f59f680513 100644 --- a/lib/files/filesystem.php +++ b/lib/files/filesystem.php @@ -29,6 +29,8 @@ namespace OC\Files; +const FREE_SPACE_UNKNOWN = -2; + class Filesystem { public static $loaded = false; /** @@ -135,7 +137,9 @@ class Filesystem { /** * get the mountpoint of the storage object for a path - ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + * ( note: because a storage is not always mounted inside the fakeroot, the + * returned mountpoint is relative to the absolute root of the filesystem + * and doesn't take the chroot into account ) * * @param string $path * @return string @@ -190,14 +194,14 @@ class Filesystem { } } - static public function init($root) { + static public function init($user, $root) { if (self::$defaultInstance) { return false; } self::$defaultInstance = new View($root); //load custom mount config - self::initMountPoints(); + self::initMountPoints($user); self::$loaded = true; @@ -213,9 +217,18 @@ class Filesystem { if ($user == '') { $user = \OC_User::getUser(); } + $parser = new \OC\ArrayParser(); + + $root = \OC_User::getHome($user); + self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); + // Load system mount points - if (is_file(\OC::$SERVERROOT . '/config/mount.php')) { - $mountConfig = include 'config/mount.php'; + if (is_file(\OC::$SERVERROOT . '/config/mount.php') or is_file(\OC::$SERVERROOT . '/config/mount.json')) { + if (is_file(\OC::$SERVERROOT . '/config/mount.json')) { + $mountConfig = json_decode(file_get_contents(\OC::$SERVERROOT . '/config/mount.json'), true); + } elseif (is_file(\OC::$SERVERROOT . '/config/mount.php')) { + $mountConfig = $parser->parsePHP(file_get_contents(\OC::$SERVERROOT . '/config/mount.php')); + } if (isset($mountConfig['global'])) { foreach ($mountConfig['global'] as $mountPoint => $options) { self::mount($options['class'], $options['options'], $mountPoint); @@ -249,10 +262,12 @@ class Filesystem { } } // Load personal mount points - $root = \OC_User::getHome($user); - self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); - if (is_file($root . '/mount.php')) { - $mountConfig = include $root . '/mount.php'; + if (is_file($root . '/mount.php') or is_file($root . '/mount.json')) { + if (is_file($root . '/mount.json')) { + $mountConfig = json_decode(file_get_contents($root . '/mount.json'), true); + } elseif (is_file($root . '/mount.php')) { + $mountConfig = $parser->parsePHP(file_get_contents($root . '/mount.php')); + } if (isset($mountConfig['user'][$user])) { foreach ($mountConfig['user'][$user] as $mountPoint => $options) { self::mount($options['class'], $options['options'], $mountPoint); @@ -318,7 +333,8 @@ class Filesystem { /** * return the path to a local version of the file - * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * we need this because we can't know if a file is stored local or not from + * outside the filestorage and for some purposes a local file is needed * * @param string $path * @return string @@ -374,20 +390,28 @@ class Filesystem { * @param array $data from hook */ static public function isBlacklisted($data) { - $blacklist = \OC_Config::getValue('blacklisted_files', array('.htaccess')); if (isset($data['path'])) { $path = $data['path']; } else if (isset($data['newpath'])) { $path = $data['newpath']; } if (isset($path)) { - $filename = strtolower(basename($path)); - if (in_array($filename, $blacklist)) { + if (self::isFileBlacklisted($path)) { $data['run'] = false; } } } + /** + * @param string $filename + * @return bool + */ + static public function isFileBlacklisted($filename) { + $blacklist = \OC_Config::getValue('blacklisted_files', array('.htaccess')); + $filename = strtolower(basename($filename)); + return (in_array($filename, $blacklist)); + } + /** * following functions are equivalent to their php builtin equivalents for arguments/return values. */ @@ -610,11 +634,11 @@ class Filesystem { } /** - * Get the owner for a file or folder - * - * @param string $path - * @return string - */ + * Get the owner for a file or folder + * + * @param string $path + * @return string + */ public static function getOwner($path) { return self::$defaultInstance->getOwner($path); } diff --git a/lib/files/mapper.php b/lib/files/mapper.php new file mode 100644 index 0000000000000000000000000000000000000000..520fadbd8c634389d45e122e6a1aeba1f18c787b --- /dev/null +++ b/lib/files/mapper.php @@ -0,0 +1,230 @@ +unchangedPhysicalRoot = $rootDir; + } + + /** + * @param string $logicPath + * @param bool $create indicates if the generated physical name shall be stored in the database or not + * @return string the physical path + */ + public function logicToPhysical($logicPath, $create) { + $physicalPath = $this->resolveLogicPath($logicPath); + if ($physicalPath !== null) { + return $physicalPath; + } + + return $this->create($logicPath, $create); + } + + /** + * @param string $physicalPath + * @return string + */ + public function physicalToLogic($physicalPath) { + $logicPath = $this->resolvePhysicalPath($physicalPath); + if ($logicPath !== null) { + return $logicPath; + } + + $this->insert($physicalPath, $physicalPath); + return $physicalPath; + } + + /** + * @param string $path + * @param bool $isLogicPath indicates if $path is logical or physical + * @param $recursive + * @return void + */ + public function removePath($path, $isLogicPath, $recursive) { + if ($recursive) { + $path=$path.'%'; + } + + if ($isLogicPath) { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?'); + $query->execute(array($path)); + } else { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*file_map` WHERE `physic_path` LIKE ?'); + $query->execute(array($path)); + } + } + + /** + * @param $path1 + * @param $path2 + * @throws \Exception + */ + public function copy($path1, $path2) + { + $path1 = $this->stripLast($path1); + $path2 = $this->stripLast($path2); + $physicPath1 = $this->logicToPhysical($path1, true); + $physicPath2 = $this->logicToPhysical($path2, true); + + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?'); + $result = $query->execute(array($path1.'%')); + $updateQuery = \OC_DB::prepare('UPDATE `*PREFIX*file_map`' + .' SET `logic_path` = ?' + .' AND `physic_path` = ?' + .' WHERE `logic_path` = ?'); + while( $row = $result->fetchRow()) { + $currentLogic = $row['logic_path']; + $currentPhysic = $row['physic_path']; + $newLogic = $path2.$this->stripRootFolder($currentLogic, $path1); + $newPhysic = $physicPath2.$this->stripRootFolder($currentPhysic, $physicPath1); + if ($path1 !== $currentLogic) { + try { + $updateQuery->execute(array($newLogic, $newPhysic, $currentLogic)); + } catch (\Exception $e) { + error_log('Mapper::Copy failed '.$currentLogic.' -> '.$newLogic.'\n'.$e); + throw $e; + } + } + } + } + + /** + * @param $path + * @param $root + * @return bool|string + */ + public function stripRootFolder($path, $root) { + if (strpos($path, $root) !== 0) { + // throw exception ??? + return false; + } + if (strlen($path) > strlen($root)) { + return substr($path, strlen($root)); + } + + return ''; + } + + private function stripLast($path) { + if (substr($path, -1) == '/') { + $path = substr_replace($path, '', -1); + } + return $path; + } + + private function resolveLogicPath($logicPath) { + $logicPath = $this->stripLast($logicPath); + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path_hash` = ?'); + $result = $query->execute(array(md5($logicPath))); + $result = $result->fetchRow(); + if ($result === false) { + return null; + } + + return $result['physic_path']; + } + + private function resolvePhysicalPath($physicalPath) { + $physicalPath = $this->stripLast($physicalPath); + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path_hash` = ?'); + $result = $query->execute(array(md5($physicalPath))); + $result = $result->fetchRow(); + + return $result['logic_path']; + } + + private function create($logicPath, $store) { + $logicPath = $this->stripLast($logicPath); + $index = 0; + + // create the slugified path + $physicalPath = $this->slugifyPath($logicPath); + + // detect duplicates + while ($this->resolvePhysicalPath($physicalPath) !== null) { + $physicalPath = $this->slugifyPath($physicalPath, $index++); + } + + // insert the new path mapping if requested + if ($store) { + $this->insert($logicPath, $physicalPath); + } + + return $physicalPath; + } + + private function insert($logicPath, $physicalPath) { + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`, `physic_path`, `logic_path_hash`, `physic_path_hash`) VALUES(?, ?, ?, ?)'); + $query->execute(array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath))); + } + + private function slugifyPath($path, $index=null) { + $path = $this->stripRootFolder($path, $this->unchangedPhysicalRoot); + + $pathElements = explode('/', $path); + $sluggedElements = array(); + + foreach ($pathElements as $pathElement) { + // remove empty elements + if (empty($pathElement)) { + continue; + } + + // TODO: remove file ext before slugify on last element + $sluggedElements[] = self::slugify($pathElement); + } + + // + // TODO: add the index before the file extension + // + if ($index !== null) { + $last= end($sluggedElements); + array_pop($sluggedElements); + array_push($sluggedElements, $last.'-'.$index); + } + + $sluggedPath = $this->unchangedPhysicalRoot.implode(DIRECTORY_SEPARATOR, $sluggedElements); + return $this->stripLast($sluggedPath); + } + + /** + * Modifies a string to remove all non ASCII characters and spaces. + * + * @param string $text + * @return string + */ + private function slugify($text) + { + // replace non letter or digits by - + $text = preg_replace('~[^\\pL\d]+~u', '-', $text); + + // trim + $text = trim($text, '-'); + + // transliterate + if (function_exists('iconv')) { + $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); + } + + // lowercase + $text = strtolower($text); + + // remove unwanted characters + $text = preg_replace('~[^-\w]+~', '', $text); + + if (empty($text)) + { + // TODO: we better generate a guid in this case + return 'n-a'; + } + + return $text; + } +} diff --git a/lib/files/mount.php b/lib/files/mount.php index 74ee483b1bef928306907e914ce81a2db12d3a6d..6e99d8eabb49f000305b0a77386963c991bcb9c4 100644 --- a/lib/files/mount.php +++ b/lib/files/mount.php @@ -93,6 +93,9 @@ class Mount { $this->storage = $this->createStorage(); } $this->storageId = $this->storage->getId(); + if (strlen($this->storageId) > 64) { + $this->storageId = md5($this->storageId); + } } return $this->storageId; } @@ -177,6 +180,9 @@ class Mount { * @return \OC\Files\Storage\Storage[] */ public static function findById($id) { + if (strlen($id) > 64) { + $id = md5($id); + } $result = array(); foreach (self::$mounts as $mount) { if ($mount->getStorageId() === $id) { diff --git a/lib/files/storage/common.php b/lib/files/storage/common.php index 591803f0440988895b1aed1daf1e1475396d70bd..8aa227ec0b72deb06bdd553b04d46e1a0c6fc565 100644 --- a/lib/files/storage/common.php +++ b/lib/files/storage/common.php @@ -22,83 +22,104 @@ namespace OC\Files\Storage; abstract class Common implements \OC\Files\Storage\Storage { - public function __construct($parameters) {} + public function __construct($parameters) { + } + public function is_dir($path) { - return $this->filetype($path)=='dir'; + return $this->filetype($path) == 'dir'; } + public function is_file($path) { - return $this->filetype($path)=='file'; + return $this->filetype($path) == 'file'; } + public function filesize($path) { - if($this->is_dir($path)) { - return 0;//by definition - }else{ + if ($this->is_dir($path)) { + return 0; //by definition + } else { $stat = $this->stat($path); - return $stat['size']; + if (isset($stat['size'])) { + return $stat['size']; + } else { + return 0; + } } } + public function isCreatable($path) { if ($this->is_dir($path) && $this->isUpdatable($path)) { return true; } return false; } + public function isDeletable($path) { return $this->isUpdatable($path); } + public function isSharable($path) { return $this->isReadable($path); } - public function getPermissions($path){ + + public function getPermissions($path) { $permissions = 0; - if($this->isCreatable($path)){ + if ($this->isCreatable($path)) { $permissions |= \OCP\PERMISSION_CREATE; } - if($this->isReadable($path)){ + if ($this->isReadable($path)) { $permissions |= \OCP\PERMISSION_READ; } - if($this->isUpdatable($path)){ + if ($this->isUpdatable($path)) { $permissions |= \OCP\PERMISSION_UPDATE; } - if($this->isDeletable($path)){ + if ($this->isDeletable($path)) { $permissions |= \OCP\PERMISSION_DELETE; } - if($this->isSharable($path)){ + if ($this->isSharable($path)) { $permissions |= \OCP\PERMISSION_SHARE; } return $permissions; } + public function filemtime($path) { $stat = $this->stat($path); - return $stat['mtime']; + if (isset($stat['mtime'])) { + return $stat['mtime']; + } else { + return 0; + } } + public function file_get_contents($path) { $handle = $this->fopen($path, "r"); - if(!$handle) { + if (!$handle) { return false; } - $size=$this->filesize($path); - if($size==0) { + $size = $this->filesize($path); + if ($size == 0) { return ''; } return fread($handle, $size); } - public function file_put_contents($path,$data) { + + public function file_put_contents($path, $data) { $handle = $this->fopen($path, "w"); return fwrite($handle, $data); } - public function rename($path1,$path2) { - if($this->copy($path1,$path2)) { + + public function rename($path1, $path2) { + if ($this->copy($path1, $path2)) { return $this->unlink($path1); - }else{ + } else { return false; } } - public function copy($path1,$path2) { - $source=$this->fopen($path1,'r'); - $target=$this->fopen($path2,'w'); - $count=\OC_Helper::streamCopy($source,$target); - return $count>0; + + public function copy($path1, $path2) { + $source = $this->fopen($path1, 'r'); + $target = $this->fopen($path2, 'w'); + list($count, $result) = \OC_Helper::streamCopy($source, $target); + return $result; } /** @@ -110,117 +131,126 @@ abstract class Common implements \OC\Files\Storage\Storage { * @note By default the directory specified by $directory will be * deleted together with its contents. To avoid this set $empty to true */ - public function deleteAll( $directory, $empty = false ) { - $directory = trim($directory,'/'); + public function deleteAll($directory, $empty = false) { + $directory = trim($directory, '/'); - if ( !$this->file_exists( \OCP\USER::getUser() . '/' . $directory ) || !$this->is_dir( \OCP\USER::getUser() . '/' . $directory ) ) { + if (!$this->file_exists(\OCP\USER::getUser() . '/' . $directory) + || !$this->is_dir(\OCP\USER::getUser() . '/' . $directory) + ) { return false; - } elseif( !$this->isReadable( \OCP\USER::getUser() . '/' . $directory ) ) { + } elseif (!$this->isReadable(\OCP\USER::getUser() . '/' . $directory)) { return false; } else { - $directoryHandle = $this->opendir( \OCP\USER::getUser() . '/' . $directory ); - while ( $contents = readdir( $directoryHandle ) ) { - if ( $contents != '.' && $contents != '..') { + $directoryHandle = $this->opendir(\OCP\USER::getUser() . '/' . $directory); + while ($contents = readdir($directoryHandle)) { + if ($contents != '.' && $contents != '..') { $path = $directory . "/" . $contents; - if ( $this->is_dir( $path ) ) { - $this->deleteAll( $path ); + if ($this->is_dir($path)) { + $this->deleteAll($path); } else { - $this->unlink( \OCP\USER::getUser() .'/' . $path ); // TODO: make unlink use same system path as is_dir + $this->unlink(\OCP\USER::getUser() . '/' . $path); // TODO: make unlink use same system path as is_dir } } } //$this->closedir( $directoryHandle ); // TODO: implement closedir in OC_FSV - if ( $empty == false ) { - if ( !$this->rmdir( $directory ) ) { - return false; + if ($empty == false) { + if (!$this->rmdir($directory)) { + return false; } } return true; } } + public function getMimeType($path) { - if(!$this->file_exists($path)) { + if (!$this->file_exists($path)) { return false; } - if($this->is_dir($path)) { + if ($this->is_dir($path)) { return 'httpd/unix-directory'; } - $source=$this->fopen($path,'r'); - if(!$source) { + $source = $this->fopen($path, 'r'); + if (!$source) { return false; } - $head=fread($source,8192);//8kb should suffice to determine a mimetype - if($pos=strrpos($path,'.')) { - $extension=substr($path,$pos); - }else{ - $extension=''; + $head = fread($source, 8192); //8kb should suffice to determine a mimetype + if ($pos = strrpos($path, '.')) { + $extension = substr($path, $pos); + } else { + $extension = ''; } - $tmpFile=\OC_Helper::tmpFile($extension); - file_put_contents($tmpFile,$head); - $mime=\OC_Helper::getMimeType($tmpFile); + $tmpFile = \OC_Helper::tmpFile($extension); + file_put_contents($tmpFile, $head); + $mime = \OC_Helper::getMimeType($tmpFile); unlink($tmpFile); return $mime; } - public function hash($type,$path,$raw = false) { - $tmpFile=$this->getLocalFile($path); - $hash=hash($type,$tmpFile,$raw); + + public function hash($type, $path, $raw = false) { + $tmpFile = $this->getLocalFile($path); + $hash = hash($type, $tmpFile, $raw); unlink($tmpFile); return $hash; } + public function search($query) { return $this->searchInDir($query); } + public function getLocalFile($path) { return $this->toTmpFile($path); } - private function toTmpFile($path) {//no longer in the storage api, still useful here - $source=$this->fopen($path,'r'); - if(!$source) { + + private function toTmpFile($path) { //no longer in the storage api, still useful here + $source = $this->fopen($path, 'r'); + if (!$source) { return false; } - if($pos=strrpos($path,'.')) { - $extension=substr($path,$pos); - }else{ - $extension=''; + if ($pos = strrpos($path, '.')) { + $extension = substr($path, $pos); + } else { + $extension = ''; } - $tmpFile=\OC_Helper::tmpFile($extension); - $target=fopen($tmpFile,'w'); - \OC_Helper::streamCopy($source,$target); + $tmpFile = \OC_Helper::tmpFile($extension); + $target = fopen($tmpFile, 'w'); + \OC_Helper::streamCopy($source, $target); return $tmpFile; } + public function getLocalFolder($path) { - $baseDir=\OC_Helper::tmpFolder(); - $this->addLocalFolder($path,$baseDir); + $baseDir = \OC_Helper::tmpFolder(); + $this->addLocalFolder($path, $baseDir); return $baseDir; } - private function addLocalFolder($path,$target) { - if($dh=$this->opendir($path)) { - while($file=readdir($dh)) { - if($file!=='.' and $file!=='..') { - if($this->is_dir($path.'/'.$file)) { - mkdir($target.'/'.$file); - $this->addLocalFolder($path.'/'.$file,$target.'/'.$file); - }else{ - $tmp=$this->toTmpFile($path.'/'.$file); - rename($tmp,$target.'/'.$file); + + private function addLocalFolder($path, $target) { + if ($dh = $this->opendir($path)) { + while ($file = readdir($dh)) { + if ($file !== '.' and $file !== '..') { + if ($this->is_dir($path . '/' . $file)) { + mkdir($target . '/' . $file); + $this->addLocalFolder($path . '/' . $file, $target . '/' . $file); + } else { + $tmp = $this->toTmpFile($path . '/' . $file); + rename($tmp, $target . '/' . $file); } } } } } - protected function searchInDir($query,$dir='') { - $files=array(); - $dh=$this->opendir($dir); - if($dh) { - while($item=readdir($dh)) { + protected function searchInDir($query, $dir = '') { + $files = array(); + $dh = $this->opendir($dir); + if ($dh) { + while ($item = readdir($dh)) { if ($item == '.' || $item == '..') continue; - if(strstr(strtolower($item), strtolower($query))!==false) { - $files[]=$dir.'/'.$item; + if (strstr(strtolower($item), strtolower($query)) !== false) { + $files[] = $dir . '/' . $item; } - if($this->is_dir($dir.'/'.$item)) { - $files=array_merge($files,$this->searchInDir($query,$dir.'/'.$item)); + if ($this->is_dir($dir . '/' . $item)) { + $files = array_merge($files, $this->searchInDir($query, $dir . '/' . $item)); } } } @@ -229,32 +259,34 @@ abstract class Common implements \OC\Files\Storage\Storage { /** * check if a file or folder has been updated since $time + * * @param string $path * @param int $time * @return bool */ - public function hasUpdated($path,$time) { - return $this->filemtime($path)>$time; + public function hasUpdated($path, $time) { + return $this->filemtime($path) > $time; } - public function getCache($path=''){ + public function getCache($path = '') { return new \OC\Files\Cache\Cache($this); } - public function getScanner($path=''){ + public function getScanner($path = '') { return new \OC\Files\Cache\Scanner($this); } - public function getPermissionsCache($path=''){ + public function getPermissionsCache($path = '') { return new \OC\Files\Cache\Permissions($this); } - public function getWatcher($path=''){ + public function getWatcher($path = '') { return new \OC\Files\Cache\Watcher($this); } /** * get the owner of a path + * * @param string $path The path to get the owner * @return string uid or false */ @@ -268,13 +300,54 @@ abstract class Common implements \OC\Files\Storage\Storage { * @param string $path * @return string */ - public function getETag($path){ + public function getETag($path) { $ETagFunction = \OC_Connector_Sabre_Node::$ETagFunction; - if($ETagFunction) { + if ($ETagFunction) { $hash = call_user_func($ETagFunction, $path); return $hash; - }else{ + } else { return uniqid(); } } + + /** + * clean a path, i.e. remove all redundant '.' and '..' + * making sure that it can't point to higher than '/' + * + * @param $path The path to clean + * @return string cleaned path + */ + public function cleanPath($path) { + if (strlen($path) == 0 or $path[0] != '/') { + $path = '/' . $path; + } + + $output = array(); + foreach (explode('/', $path) as $chunk) { + if ($chunk == '..') { + array_pop($output); + } else if ($chunk == '.') { + } else { + $output[] = $chunk; + } + } + return implode('/', $output); + } + + public function test() { + if ($this->stat('')) { + return true; + } + return false; + } + + /** + * get the free space in the storage + * + * @param $path + * return int + */ + public function free_space($path) { + return \OC\Files\FREE_SPACE_UNKNOWN; + } } diff --git a/lib/files/storage/local.php b/lib/files/storage/local.php index a5db4ba91947bb2961f491f1ed47c1164911873f..da6597c805772d8b5e6c26cc8976f7cd30aedb0a 100644 --- a/lib/files/storage/local.php +++ b/lib/files/storage/local.php @@ -8,6 +8,12 @@ namespace OC\Files\Storage; +if (\OC_Util::runningOnWindows()) { + class Local extends MappedLocal { + + } +} else { + /** * for local filestore, we only have to map the paths */ @@ -19,6 +25,8 @@ class Local extends \OC\Files\Storage\Common{ $this->datadir.='/'; } } + public function __destruct() { + } public function getId(){ return 'local::'.$this->datadir; } @@ -32,7 +40,7 @@ class Local extends \OC\Files\Storage\Common{ return opendir($this->datadir.$path); } public function is_dir($path) { - if(substr($path,-1)=='/') { + if(substr($path, -1)=='/') { $path=substr($path, 0, -1); } return is_dir($this->datadir.$path); @@ -109,11 +117,11 @@ class Local extends \OC\Files\Storage\Common{ } public function rename($path1, $path2) { if (!$this->isUpdatable($path1)) { - \OC_Log::write('core','unable to rename, file is not writable : '.$path1,\OC_Log::ERROR); + \OC_Log::write('core', 'unable to rename, file is not writable : '.$path1, \OC_Log::ERROR); return false; } if(! $this->file_exists($path1)) { - \OC_Log::write('core','unable to rename, file does not exists : '.$path1,\OC_Log::ERROR); + \OC_Log::write('core', 'unable to rename, file does not exists : '.$path1, \OC_Log::ERROR); return false; } @@ -197,7 +205,9 @@ class Local extends \OC\Files\Storage\Common{ return (float)exec('stat -c %s ' . escapeshellarg($fullPath)); } } else { - \OC_Log::write('core', 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name, \OC_Log::ERROR); + \OC_Log::write('core', + 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name, + \OC_Log::ERROR); } return 0; @@ -245,3 +255,4 @@ class Local extends \OC\Files\Storage\Common{ return $this->filemtime($path)>$time; } } +} diff --git a/lib/files/storage/mappedlocal.php b/lib/files/storage/mappedlocal.php new file mode 100644 index 0000000000000000000000000000000000000000..434c10bcbf7ae192cf8f631c100a9b74cf344aca --- /dev/null +++ b/lib/files/storage/mappedlocal.php @@ -0,0 +1,340 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace OC\Files\Storage; + +/** + * for local filestore, we only have to map the paths + */ +class MappedLocal extends \OC\Files\Storage\Common{ + protected $datadir; + private $mapper; + + public function __construct($arguments) { + $this->datadir=$arguments['datadir']; + if(substr($this->datadir, -1)!=='/') { + $this->datadir.='/'; + } + + $this->mapper= new \OC\Files\Mapper($this->datadir); + } + public function __destruct() { + if (defined('PHPUNIT_RUN')) { + $this->mapper->removePath($this->datadir, true, true); + } + } + public function getId(){ + return 'local::'.$this->datadir; + } + public function mkdir($path) { + return @mkdir($this->buildPath($path)); + } + public function rmdir($path) { + if ($result = @rmdir($this->buildPath($path))) { + $this->cleanMapper($path); + } + return $result; + } + public function opendir($path) { + $files = array('.', '..'); + $physicalPath= $this->buildPath($path); + + $logicalPath = $this->mapper->physicalToLogic($physicalPath); + $dh = opendir($physicalPath); + while ($file = readdir($dh)) { + if ($file === '.' or $file === '..') { + continue; + } + + $logicalFilePath = $this->mapper->physicalToLogic($physicalPath.DIRECTORY_SEPARATOR.$file); + + $file= $this->mapper->stripRootFolder($logicalFilePath, $logicalPath); + $file = $this->stripLeading($file); + $files[]= $file; + } + + \OC\Files\Stream\Dir::register('local-win32'.$path, $files); + return opendir('fakedir://local-win32'.$path); + } + public function is_dir($path) { + if(substr($path, -1)=='/') { + $path=substr($path, 0, -1); + } + return is_dir($this->buildPath($path)); + } + public function is_file($path) { + return is_file($this->buildPath($path)); + } + public function stat($path) { + $fullPath = $this->buildPath($path); + $statResult = stat($fullPath); + + if ($statResult['size'] < 0) { + $size = self::getFileSizeFromOS($fullPath); + $statResult['size'] = $size; + $statResult[7] = $size; + } + return $statResult; + } + public function filetype($path) { + $filetype=filetype($this->buildPath($path)); + if($filetype=='link') { + $filetype=filetype(realpath($this->buildPath($path))); + } + return $filetype; + } + public function filesize($path) { + if($this->is_dir($path)) { + return 0; + }else{ + $fullPath = $this->buildPath($path); + $fileSize = filesize($fullPath); + if ($fileSize < 0) { + return self::getFileSizeFromOS($fullPath); + } + + return $fileSize; + } + } + public function isReadable($path) { + return is_readable($this->buildPath($path)); + } + public function isUpdatable($path) { + return is_writable($this->buildPath($path)); + } + public function file_exists($path) { + return file_exists($this->buildPath($path)); + } + public function filemtime($path) { + return filemtime($this->buildPath($path)); + } + public function touch($path, $mtime=null) { + // sets the modification time of the file to the given value. + // If mtime is nil the current time is set. + // note that the access time of the file always changes to the current time. + if(!is_null($mtime)) { + $result=touch( $this->buildPath($path), $mtime ); + }else{ + $result=touch( $this->buildPath($path)); + } + if( $result ) { + clearstatcache( true, $this->buildPath($path) ); + } + + return $result; + } + public function file_get_contents($path) { + return file_get_contents($this->buildPath($path)); + } + public function file_put_contents($path, $data) {//trigger_error("$path = ".var_export($path, 1)); + return file_put_contents($this->buildPath($path), $data); + } + public function unlink($path) { + return $this->delTree($path); + } + public function rename($path1, $path2) { + if (!$this->isUpdatable($path1)) { + \OC_Log::write('core', 'unable to rename, file is not writable : '.$path1, \OC_Log::ERROR); + return false; + } + if(! $this->file_exists($path1)) { + \OC_Log::write('core', 'unable to rename, file does not exists : '.$path1, \OC_Log::ERROR); + return false; + } + + $physicPath1 = $this->buildPath($path1); + $physicPath2 = $this->buildPath($path2); + if($return=rename($physicPath1, $physicPath2)) { + // mapper needs to create copies or all children + $this->copyMapping($path1, $path2); + $this->cleanMapper($physicPath1, false, true); + } + return $return; + } + public function copy($path1, $path2) { + if($this->is_dir($path2)) { + if(!$this->file_exists($path2)) { + $this->mkdir($path2); + } + $source=substr($path1, strrpos($path1, '/')+1); + $path2.=$source; + } + if($return=copy($this->buildPath($path1), $this->buildPath($path2))) { + // mapper needs to create copies or all children + $this->copyMapping($path1, $path2); + } + return $return; + } + public function fopen($path, $mode) { + if($return=fopen($this->buildPath($path), $mode)) { + switch($mode) { + case 'r': + break; + case 'r+': + case 'w+': + case 'x+': + case 'a+': + break; + case 'w': + case 'x': + case 'a': + break; + } + } + return $return; + } + + public function getMimeType($path) { + if($this->isReadable($path)) { + return \OC_Helper::getMimeType($this->buildPath($path)); + }else{ + return false; + } + } + + private function delTree($dir, $isLogicPath=true) { + $dirRelative=$dir; + if ($isLogicPath) { + $dir=$this->buildPath($dir); + } + if (!file_exists($dir)) { + return true; + } + if (!is_dir($dir) || is_link($dir)) { + if($return=unlink($dir)) { + $this->cleanMapper($dir, false); + return $return; + } + } + foreach (scandir($dir) as $item) { + if ($item == '.' || $item == '..') { + continue; + } + if(is_file($dir.'/'.$item)) { + if(unlink($dir.'/'.$item)) { + $this->cleanMapper($dir.'/'.$item, false); + } + }elseif(is_dir($dir.'/'.$item)) { + if (!$this->delTree($dir. "/" . $item, false)) { + return false; + }; + } + } + if($return=rmdir($dir)) { + $this->cleanMapper($dir, false); + } + return $return; + } + + private static function getFileSizeFromOS($fullPath) { + $name = strtolower(php_uname('s')); + // Windows OS: we use COM to access the filesystem + if (strpos($name, 'win') !== false) { + if (class_exists('COM')) { + $fsobj = new \COM("Scripting.FileSystemObject"); + $f = $fsobj->GetFile($fullPath); + return $f->Size; + } + } else if (strpos($name, 'bsd') !== false) { + if (\OC_Helper::is_function_enabled('exec')) { + return (float)exec('stat -f %z ' . escapeshellarg($fullPath)); + } + } else if (strpos($name, 'linux') !== false) { + if (\OC_Helper::is_function_enabled('exec')) { + return (float)exec('stat -c %s ' . escapeshellarg($fullPath)); + } + } else { + \OC_Log::write('core', + 'Unable to determine file size of "'.$fullPath.'". Unknown OS: '.$name, + \OC_Log::ERROR); + } + + return 0; + } + + public function hash($path, $type, $raw=false) { + return hash_file($type, $this->buildPath($path), $raw); + } + + public function free_space($path) { + return @disk_free_space($this->buildPath($path)); + } + + public function search($query) { + return $this->searchInDir($query); + } + public function getLocalFile($path) { + return $this->buildPath($path); + } + public function getLocalFolder($path) { + return $this->buildPath($path); + } + + protected function searchInDir($query, $dir='') { + $files=array(); + $physicalDir = $this->buildPath($dir); + foreach (scandir($physicalDir) as $item) { + if ($item == '.' || $item == '..') + continue; + $physicalItem = $this->mapper->physicalToLogic($physicalDir.DIRECTORY_SEPARATOR.$item); + $item = substr($physicalItem, strlen($physicalDir)+1); + + if(strstr(strtolower($item), strtolower($query)) !== false) { + $files[]=$dir.'/'.$item; + } + if(is_dir($physicalItem)) { + $files=array_merge($files, $this->searchInDir($query, $dir.'/'.$item)); + } + } + return $files; + } + + /** + * check if a file or folder has been updated since $time + * @param string $path + * @param int $time + * @return bool + */ + public function hasUpdated($path, $time) { + return $this->filemtime($path)>$time; + } + + private function buildPath($path, $create=true) { + $path = $this->stripLeading($path); + $fullPath = $this->datadir.$path; + return $this->mapper->logicToPhysical($fullPath, $create); + } + + private function cleanMapper($path, $isLogicPath=true, $recursive=true) { + $fullPath = $path; + if ($isLogicPath) { + $fullPath = $this->datadir.$path; + } + $this->mapper->removePath($fullPath, $isLogicPath, $recursive); + } + + private function copyMapping($path1, $path2) { + $path1 = $this->stripLeading($path1); + $path2 = $this->stripLeading($path2); + + $fullPath1 = $this->datadir.$path1; + $fullPath2 = $this->datadir.$path2; + + $this->mapper->copy($fullPath1, $fullPath2); + } + + private function stripLeading($path) { + if(strpos($path, '/') === 0) { + $path = substr($path, 1); + } + if ($path === false) { + return ''; + } + + return $path; + } +} diff --git a/lib/files/storage/temporary.php b/lib/files/storage/temporary.php index 542d2cd9f48ad466da6abe4a5346ac1edfa1afbd..d84dbda2e39dd844e68ddf0c9bad7cfb2206fe3c 100644 --- a/lib/files/storage/temporary.php +++ b/lib/files/storage/temporary.php @@ -21,6 +21,7 @@ class Temporary extends Local{ } public function __destruct() { + parent::__destruct(); $this->cleanUp(); } } diff --git a/lib/files/view.php b/lib/files/view.php index dfcb770328bd4dd6161708ee64d47b00095bec53..f48d0c8b225153b2039421e515bf0dfa184122c8 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -92,7 +92,9 @@ class View { /** * get the mountpoint of the storage object for a path - ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + * ( note: because a storage is not always mounted inside the fakeroot, the + * returned mountpoint is relative to the absolute root of the filesystem + * and doesn't take the chroot into account ) * * @param string $path * @return string @@ -113,7 +115,8 @@ class View { /** * return the path to a local version of the file - * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * we need this because we can't know if a file is stored local or not from + * outside the filestorage and for some purposes a local file is needed * * @param string $path * @return string @@ -252,7 +255,8 @@ class View { public function file_put_contents($path, $data) { if (is_resource($data)) { //not having to deal with streams in file_put_contents makes life easier $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); - if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) && Filesystem::isValidPath($path)) { + if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) + && Filesystem::isValidPath($path)) { $path = $this->getRelativePath($absolutePath); $exists = $this->file_exists($path); $run = true; @@ -281,7 +285,7 @@ class View { } $target = $this->fopen($path, 'w'); if ($target) { - $count = \OC_Helper::streamCopy($data, $target); + list ($count, $result) = \OC_Helper::streamCopy($data, $target); fclose($target); fclose($data); if ($this->fakeRoot == Filesystem::getRoot()) { @@ -299,7 +303,7 @@ class View { ); } \OC_FileProxy::runPostProxies('file_put_contents', $absolutePath, $count); - return $count > 0; + return $result; } else { return false; } @@ -324,7 +328,8 @@ class View { $postFix2 = (substr($path2, -1, 1) === '/') ? '/' : ''; $absolutePath1 = Filesystem::normalizePath($this->getAbsolutePath($path1)); $absolutePath2 = Filesystem::normalizePath($this->getAbsolutePath($path2)); - if (\OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2)) { + if (\OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2) + and Filesystem::isValidPath($path2)) { $path1 = $this->getRelativePath($absolutePath1); $path2 = $this->getRelativePath($absolutePath2); @@ -356,10 +361,9 @@ class View { } else { $source = $this->fopen($path1 . $postFix1, 'r'); $target = $this->fopen($path2 . $postFix2, 'w'); - $count = \OC_Helper::streamCopy($source, $target); + list($count, $result) = \OC_Helper::streamCopy($source, $target); list($storage1, $internalPath1) = Filesystem::resolvePath($absolutePath1 . $postFix1); $storage1->unlink($internalPath1); - $result = $count > 0; } if ($this->fakeRoot == Filesystem::getRoot()) { \OC_Hook::emit( @@ -439,7 +443,7 @@ class View { } else { $source = $this->fopen($path1 . $postFix1, 'r'); $target = $this->fopen($path2 . $postFix2, 'w'); - $result = \OC_Helper::streamCopy($source, $target); + list($count, $result) = \OC_Helper::streamCopy($source, $target); } if ($this->fakeRoot == Filesystem::getRoot()) { \OC_Hook::emit( @@ -509,11 +513,7 @@ class View { if (Filesystem::isValidPath($path)) { $source = $this->fopen($path, 'r'); if ($source) { - $extension = ''; - $extOffset = strpos($path, '.'); - if ($extOffset !== false) { - $extension = substr($path, strrpos($path, '.')); - } + $extension = pathinfo($path, PATHINFO_EXTENSION); $tmpFile = \OC_Helper::tmpFile($extension); file_put_contents($tmpFile, $source); return $tmpFile; @@ -780,7 +780,8 @@ class View { $rootEntry = $subCache->get(''); if ($rootEntry) { $relativePath = trim(substr($mountPoint, $dirLength), '/'); - if ($pos = strpos($relativePath, '/')) { //mountpoint inside subfolder add size to the correct folder + if ($pos = strpos($relativePath, '/')) { + //mountpoint inside subfolder add size to the correct folder $entryName = substr($relativePath, 0, $pos); foreach ($files as &$entry) { if ($entry['name'] === $entryName) { diff --git a/lib/filesystem.php b/lib/filesystem.php index 57cca9023031fcb3171b98075d852e9a4b797b6f..34f92b357ca51d95c480b8aceecce8c28e040550 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -34,7 +34,9 @@ class OC_Filesystem { /** * get the mountpoint of the storage object for a path - ( note: because a storage is not always mounted inside the fakeroot, the returned mountpoint is relative to the absolute root of the filesystem and doesn't take the chroot into account + * ( note: because a storage is not always mounted inside the fakeroot, the + * returned mountpoint is relative to the absolute root of the filesystem + * and doesn't take the chroot into account ) * * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem * @param string $path @@ -58,8 +60,8 @@ class OC_Filesystem { /** * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem */ - static public function init($root) { - return \OC\Files\Filesystem::init($root); + static public function init($user, $root) { + return \OC\Files\Filesystem::init($user, $root); } /** @@ -115,7 +117,8 @@ class OC_Filesystem { /** * return the path to a local version of the file - * we need this because we can't know if a file is stored local or not from outside the filestorage and for some purposes a local file is needed + * we need this because we can't know if a file is stored local or not from + * outside the filestorage and for some purposes a local file is needed * * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem * @param string $path diff --git a/lib/group.php b/lib/group.php index 5afef7693610ac4018945afdf52718b0ab24bee0..88f0a2a032ccb60f98aa0980275459db538c1b03 100644 --- a/lib/group.php +++ b/lib/group.php @@ -286,33 +286,39 @@ class OC_Group { } return $users; } - - /** - * @brief get a list of all display names in a group - * @returns array with display names (value) and user ids(key) - */ - public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { - $displayNames=array(); - foreach(self::$_usedBackends as $backend) { - $displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames); - } - return $displayNames; + + /** + * @brief get a list of all display names in a group + * @returns array with display names (value) and user ids(key) + */ + public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { + $displayNames=array(); + foreach(self::$_usedBackends as $backend) { + $displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames); + } + return $displayNames; } - - /** - * @brief get a list of all display names in several groups - * @param array $gids - * @param string $search - * @param int $limit - * @param int $offset - * @return array with display names (Key) user ids (value) - */ - public static function displayNamesInGroups($gids, $search = '', $limit = -1, $offset = 0) { - $displayNames = array(); - foreach ($gids as $gid) { - // TODO Need to apply limits to groups as total - $displayNames = array_merge(array_diff(self::displayNamesInGroup($gid, $search, $limit, $offset), $displayNames), $displayNames); - } - return $displayNames; + + /** + * @brief get a list of all display names in several groups + * @param array $gids + * @param string $search + * @param int $limit + * @param int $offset + * @return array with display names (Key) user ids (value) + */ + public static function displayNamesInGroups($gids, $search = '', $limit = -1, $offset = 0) { + $displayNames = array(); + foreach ($gids as $gid) { + // TODO Need to apply limits to groups as total + $diff = array_diff( + self::displayNamesInGroup($gid, $search, $limit, $offset), + $displayNames + ); + if ($diff) { + $displayNames = array_merge($diff, $displayNames); + } + } + return $displayNames; } } diff --git a/lib/group/backend.php b/lib/group/backend.php index 4f6570c3be31b36f40ec6071f884537ebd5d4096..e7b7b21d95774721809b2899e769165d83aaae67 100644 --- a/lib/group/backend.php +++ b/lib/group/backend.php @@ -133,23 +133,23 @@ abstract class OC_Group_Backend implements OC_Group_Interface { public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) { return array(); } - - /** - * @brief get a list of all display names in a group - * @param string $gid - * @param string $search - * @param int $limit - * @param int $offset - * @return array with display names (value) and user ids (key) - */ - public function DisplayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { - $displayNames = ''; - $users = $this->usersInGroup($gid, $search, $limit, $offset); - foreach ( $users as $user ) { - $DisplayNames[$user] = $user; - } - - return $DisplayNames; + + /** + * @brief get a list of all display names in a group + * @param string $gid + * @param string $search + * @param int $limit + * @param int $offset + * @return array with display names (value) and user ids (key) + */ + public function DisplayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { + $displayNames = ''; + $users = $this->usersInGroup($gid, $search, $limit, $offset); + foreach ( $users as $user ) { + $DisplayNames[$user] = $user; + } + + return $DisplayNames; } } diff --git a/lib/group/database.php b/lib/group/database.php index 1e2328f4c08f32c59c6e87bea2fba82ef1fbcd3b..40e9b0d4147e48bbbadc86936cf2e5b739312ddf 100644 --- a/lib/group/database.php +++ b/lib/group/database.php @@ -200,7 +200,9 @@ class OC_Group_Database extends OC_Group_Backend { * @return array with user ids */ public function usersInGroup($gid, $search = '', $limit = null, $offset = null) { - $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?', $limit, $offset); + $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?', + $limit, + $offset); $result = $stmt->execute(array($gid, $search.'%')); $users = array(); while ($row = $result->fetchRow()) { @@ -208,25 +210,30 @@ class OC_Group_Database extends OC_Group_Backend { } return $users; } - - /** - * @brief get a list of all display names in a group - * @param string $gid - * @param string $search - * @param int $limit - * @param int $offset - * @return array with display names (value) and user ids (key) - */ - public function DisplayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { + + /** + * @brief get a list of all display names in a group + * @param string $gid + * @param string $search + * @param int $limit + * @param int $offset + * @return array with display names (value) and user ids (key) + */ + public function DisplayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) { $displayNames = ''; - $stmt = OC_DB::prepare('SELECT `*PREFIX*users`.`uid`, `*PREFIX*users`.`displayname` FROM `*PREFIX*users` INNER JOIN `*PREFIX*group_user` ON `*PREFIX*group_user`.`uid` = `*PREFIX*users`.`uid` WHERE `gid` = ? AND `*PREFIX*group_user.uid` LIKE ?', $limit, $offset); - $result = $stmt->execute(array($gid, $search.'%')); - $users = array(); + $stmt = OC_DB::prepare('SELECT `*PREFIX*users`.`uid`, `*PREFIX*users`.`displayname`' + .' FROM `*PREFIX*users`' + .' INNER JOIN `*PREFIX*group_user` ON `*PREFIX*group_user`.`uid` = `*PREFIX*users`.`uid`' + .' WHERE `gid` = ? AND `*PREFIX*group_user`.`uid` LIKE ?', + $limit, + $offset); + $result = $stmt->execute(array($gid, $search.'%')); + $users = array(); while ($row = $result->fetchRow()) { - $displayName = trim($row['displayname'], ' '); - $displayNames[$row['uid']] = empty($displayName) ? $row['uid'] : $displayName; - } - return $displayNames; + $displayName = trim($row['displayname'], ' '); + $displayNames[$row['uid']] = empty($displayName) ? $row['uid'] : $displayName; + } + return $displayNames; } } diff --git a/lib/helper.php b/lib/helper.php index a0fbdd10394f3e904d71fe0d24b62d76cb22aa05..41985ca57a71478889bfaef774858578746b725d 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -132,7 +132,8 @@ class OC_Helper { * Returns a absolute url to the given service. */ public static function linkToRemote( $service, $add_slash = true ) { - return self::makeURLAbsolute(self::linkToRemoteBase($service)) . (($add_slash && $service[strlen($service)-1]!='/')?'/':''); + return self::makeURLAbsolute(self::linkToRemoteBase($service)) + . (($add_slash && $service[strlen($service)-1]!='/')?'/':''); } /** @@ -144,7 +145,8 @@ class OC_Helper { * Returns a absolute url to the given service. */ public static function linkToPublic($service, $add_slash = false) { - return self::linkToAbsolute( '', 'public.php') . '?service=' . $service . (($add_slash && $service[strlen($service)-1]!='/')?'/':''); + return self::linkToAbsolute( '', 'public.php') . '?service=' . $service + . (($add_slash && $service[strlen($service)-1]!='/')?'/':''); } /** @@ -379,7 +381,8 @@ class OC_Helper { $mimeType='application/octet-stream'; } - if($mimeType=='application/octet-stream' and function_exists('finfo_open') and function_exists('finfo_file') and $finfo=finfo_open(FILEINFO_MIME)) { + if($mimeType=='application/octet-stream' and function_exists('finfo_open') + and function_exists('finfo_file') and $finfo=finfo_open(FILEINFO_MIME)) { $info = @strtolower(finfo_file($finfo, $path)); if($info) { $mimeType=substr($info, 0, strpos($info, ';')); @@ -436,14 +439,16 @@ class OC_Helper { //FIXME: should also check for value validation (i.e. the email is an email). public static function init_var($s, $d="") { $r = $d; - if(isset($_REQUEST[$s]) && !empty($_REQUEST[$s])) - $r = stripslashes(htmlspecialchars($_REQUEST[$s])); + if(isset($_REQUEST[$s]) && !empty($_REQUEST[$s])) { + $r = OC_Util::sanitizeHTML($_REQUEST[$s]); + } return $r; } /** - * returns "checked"-attribute if request contains selected radio element OR if radio element is the default one -- maybe? + * returns "checked"-attribute if request contains selected radio element + * OR if radio element is the default one -- maybe? * @param string $s Name of radio-button element name * @param string $v Value of current radio-button element * @param string $d Value of default radio-button element @@ -508,11 +513,16 @@ class OC_Helper { if(!$source or !$target) { return false; } - $count=0; + $result = true; + $count = 0; while(!feof($source)) { - $count+=fwrite($target, fread($source, 8192)); + if ( ( $c = fwrite($target, fread($source, 8192)) ) === false) { + $result = false; + } else { + $count += $c; + } } - return $count; + return array($count, $result); } /** @@ -757,9 +767,13 @@ class OC_Helper { $maxUploadFilesize = min($upload_max_filesize, $post_max_size); $freeSpace = \OC\Files\Filesystem::free_space($dir); - $freeSpace = max($freeSpace, 0); + if($freeSpace !== \OC\Files\FREE_SPACE_UNKNOWN){ + $freeSpace = max($freeSpace, 0); - return min($maxUploadFilesize, $freeSpace); + return min($maxUploadFilesize, $freeSpace); + } else { + return $maxUploadFilesize; + } } /** diff --git a/lib/hook.php b/lib/hook.php index e30aefb5e1814efcda7f25306767edf0f55cf9fd..8516cf0dcff40b6b04ca8c616e77821dfb32dc3e 100644 --- a/lib/hook.php +++ b/lib/hook.php @@ -20,22 +20,23 @@ class OC_Hook{ * TODO: write example */ static public function connect( $signalclass, $signalname, $slotclass, $slotname ) { - // If we're trying to connect to an emitting class that isn't + // If we're trying to connect to an emitting class that isn't // yet registered, register it if( !array_key_exists( $signalclass, self::$registered )) { self::$registered[$signalclass] = array(); } - // If we're trying to connect to an emitting method that isn't + // If we're trying to connect to an emitting method that isn't // yet registered, register it with the emitting class - if( !array_key_exists( $signalname, self::$registered[$signalclass] )) { + if( !array_key_exists( $signalname, self::$registered[$signalclass] )) { self::$registered[$signalclass][$signalname] = array(); } - + // Connect the hook handler to the requested emitter self::$registered[$signalclass][$signalname][] = array( - "class" => $slotclass, - "name" => $slotname ); - + "class" => $slotclass, + "name" => $slotname + ); + // No chance for failure ;-) return true; } @@ -52,25 +53,27 @@ class OC_Hook{ * TODO: write example */ static public function emit( $signalclass, $signalname, $params = array()) { - + // Return false if no hook handlers are listening to this // emitting class if( !array_key_exists( $signalclass, self::$registered )) { return false; } - + // Return false if no hook handlers are listening to this // emitting method if( !array_key_exists( $signalname, self::$registered[$signalclass] )) { return false; } - + // Call all slots foreach( self::$registered[$signalclass][$signalname] as $i ) { try { call_user_func( array( $i["class"], $i["name"] ), $params ); } catch (Exception $e){ - OC_Log::write('hook', 'error while running hook (' . $i["class"] . '::' . $i["name"] . '): '.$e->getMessage(), OC_Log::ERROR); + OC_Log::write('hook', + 'error while running hook (' . $i["class"] . '::' . $i["name"] . '): '.$e->getMessage(), + OC_Log::ERROR); } } diff --git a/lib/image.php b/lib/image.php index eaa35350bcb562c5bad2e9fb3a7dd72c005fcc15..97b0231047b1ce3f15b7c6cb9ddf05ea240f6265 100644 --- a/lib/image.php +++ b/lib/image.php @@ -169,7 +169,9 @@ class OC_Image { if (!file_exists(dirname($filepath))) mkdir(dirname($filepath), 0777, true); if(!is_writable(dirname($filepath))) { - OC_Log::write('core', __METHOD__.'(): Directory \''.dirname($filepath).'\' is not writable.', OC_Log::ERROR); + OC_Log::write('core', + __METHOD__.'(): Directory \''.dirname($filepath).'\' is not writable.', + OC_Log::ERROR); return false; } elseif(is_writable(dirname($filepath)) && file_exists($filepath) && !is_writable($filepath)) { OC_Log::write('core', __METHOD__.'(): File \''.$filepath.'\' is not writable.', OC_Log::ERROR); @@ -394,35 +396,45 @@ class OC_Image { if (imagetypes() & IMG_GIF) { $this->resource = imagecreatefromgif($imagepath); } else { - OC_Log::write('core', 'OC_Image->loadFromFile, GIF images not supported: '.$imagepath, OC_Log::DEBUG); + OC_Log::write('core', + 'OC_Image->loadFromFile, GIF images not supported: '.$imagepath, + OC_Log::DEBUG); } break; case IMAGETYPE_JPEG: if (imagetypes() & IMG_JPG) { $this->resource = imagecreatefromjpeg($imagepath); } else { - OC_Log::write('core', 'OC_Image->loadFromFile, JPG images not supported: '.$imagepath, OC_Log::DEBUG); + OC_Log::write('core', + 'OC_Image->loadFromFile, JPG images not supported: '.$imagepath, + OC_Log::DEBUG); } break; case IMAGETYPE_PNG: if (imagetypes() & IMG_PNG) { $this->resource = imagecreatefrompng($imagepath); } else { - OC_Log::write('core', 'OC_Image->loadFromFile, PNG images not supported: '.$imagepath, OC_Log::DEBUG); + OC_Log::write('core', + 'OC_Image->loadFromFile, PNG images not supported: '.$imagepath, + OC_Log::DEBUG); } break; case IMAGETYPE_XBM: if (imagetypes() & IMG_XPM) { $this->resource = imagecreatefromxbm($imagepath); } else { - OC_Log::write('core', 'OC_Image->loadFromFile, XBM/XPM images not supported: '.$imagepath, OC_Log::DEBUG); + OC_Log::write('core', + 'OC_Image->loadFromFile, XBM/XPM images not supported: '.$imagepath, + OC_Log::DEBUG); } break; case IMAGETYPE_WBMP: if (imagetypes() & IMG_WBMP) { $this->resource = imagecreatefromwbmp($imagepath); } else { - OC_Log::write('core', 'OC_Image->loadFromFile, WBMP images not supported: '.$imagepath, OC_Log::DEBUG); + OC_Log::write('core', + 'OC_Image->loadFromFile, WBMP images not supported: '.$imagepath, + OC_Log::DEBUG); } break; case IMAGETYPE_BMP: @@ -633,7 +645,9 @@ class OC_Image { $color[1] = $palette[ $color[1] + 1 ]; break; default: - trigger_error('imagecreatefrombmp: ' . $filename . ' has ' . $meta['bits'] . ' bits and this is not supported!', E_USER_WARNING); + trigger_error('imagecreatefrombmp: ' + . $filename . ' has ' . $meta['bits'] . ' bits and this is not supported!', + E_USER_WARNING); return false; } imagesetpixel($im, $x, $y, $color[1]); @@ -688,6 +702,13 @@ class OC_Image { return false; } + // preserve transparency + if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) { + imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127)); + imagealphablending($process, false); + imagesavealpha($process, true); + } + imagecopyresampled($process, $this->resource, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); if ($process == false) { OC_Log::write('core', __METHOD__.'(): Error resampling process image '.$width.'x'.$height, OC_Log::ERROR); @@ -737,9 +758,19 @@ class OC_Image { imagedestroy($process); return false; } + + // preserve transparency + if($this->imagetype == IMAGETYPE_GIF or $this->imagetype == IMAGETYPE_PNG) { + imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127)); + imagealphablending($process, false); + imagesavealpha($process, true); + } + imagecopyresampled($process, $this->resource, 0, 0, $x, $y, $targetWidth, $targetHeight, $width, $height); if ($process == false) { - OC_Log::write('core', 'OC_Image->centerCrop. Error resampling process image '.$width.'x'.$height, OC_Log::ERROR); + OC_Log::write('core', + 'OC_Image->centerCrop. Error resampling process image '.$width.'x'.$height, + OC_Log::ERROR); imagedestroy($process); return false; } diff --git a/lib/installer.php b/lib/installer.php index c86f801b5fcf68cdb59045c59a284879021bdaba..251d115b76c9ae297cf089cf832ef90f70c6e796 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -136,21 +136,29 @@ class OC_Installer{ // check if the app is compatible with this version of ownCloud $version=OC_Util::getVersion(); if(!isset($info['require']) or ($version[0]>$info['require'])) { - OC_Log::write('core', 'App can\'t be installed because it is not compatible with this version of ownCloud', OC_Log::ERROR); + OC_Log::write('core', + 'App can\'t be installed because it is not compatible with this version of ownCloud', + OC_Log::ERROR); OC_Helper::rmdirr($extractDir); return false; } // check if shipped tag is set which is only allowed for apps that are shipped with ownCloud if(isset($info['shipped']) and ($info['shipped']=='true')) { - OC_Log::write('core', 'App can\'t be installed because it contains the true tag which is not allowed for non shipped apps', OC_Log::ERROR); + OC_Log::write('core', + 'App can\'t be installed because it contains the true' + .' tag which is not allowed for non shipped apps', + OC_Log::ERROR); OC_Helper::rmdirr($extractDir); return false; } // check if the ocs version is the same as the version in info.xml/version if(!isset($info['version']) or ($info['version']<>$data['appdata']['version'])) { - OC_Log::write('core', 'App can\'t be installed because the version in info.xml/version is not the same as the version reported from the app store', OC_Log::ERROR); + OC_Log::write('core', + 'App can\'t be installed because the version in info.xml/version is not the same' + .' as the version reported from the app store', + OC_Log::ERROR); OC_Helper::rmdirr($extractDir); return false; } @@ -251,7 +259,8 @@ class OC_Installer{ * -# including appinfo/upgrade.php * -# setting the installed version * - * upgrade.php can determine the current installed version of the app using "OC_Appconfig::getValue($appid, 'installed_version')" + * upgrade.php can determine the current installed version of the app using + * "OC_Appconfig::getValue($appid, 'installed_version')" */ public static function updateApp( $app ) { $ocsid=OC_Appconfig::getValue( $app, 'ocsid'); @@ -270,12 +279,12 @@ class OC_Installer{ public static function isUpdateAvailable( $app ) { $ocsid=OC_Appconfig::getValue( $app, 'ocsid', ''); - if($ocsid<>''){ + if($ocsid<>'') { $ocsdata=OC_OCSClient::getApplication($ocsid); $ocsversion= (string) $ocsdata['version']; $currentversion=OC_App::getAppVersion($app); - if($ocsversion<>$currentversion){ + if($ocsversion<>$currentversion) { return($ocsversion); }else{ @@ -326,22 +335,22 @@ class OC_Installer{ */ public static function removeApp( $name, $options = array()) { - if(isset($options['keeppreferences']) and $options['keeppreferences']==false ){ + if(isset($options['keeppreferences']) and $options['keeppreferences']==false ) { // todo // remove preferences } - if(isset($options['keepappconfig']) and $options['keepappconfig']==false ){ + if(isset($options['keepappconfig']) and $options['keepappconfig']==false ) { // todo // remove app config } - if(isset($options['keeptables']) and $options['keeptables']==false ){ + if(isset($options['keeptables']) and $options['keeptables']==false ) { // todo // remove app database tables } - if(isset($options['keepfiles']) and $options['keepfiles']==false ){ + if(isset($options['keepfiles']) and $options['keepfiles']==false ) { // todo // remove user files } @@ -437,7 +446,9 @@ class OC_Installer{ // check if grep is installed $grep = exec('which grep'); if($grep=='') { - OC_Log::write('core', 'grep not installed. So checking the code of the app "'.$appname.'" was not possible', OC_Log::ERROR); + OC_Log::write('core', + 'grep not installed. So checking the code of the app "'.$appname.'" was not possible', + OC_Log::ERROR); return true; } @@ -447,7 +458,9 @@ class OC_Installer{ $result = exec($cmd); // bad pattern found if($result<>'') { - OC_Log::write('core', 'App "'.$appname.'" is using a not allowed call "'.$bl.'". Installation refused.', OC_Log::ERROR); + OC_Log::write('core', + 'App "'.$appname.'" is using a not allowed call "'.$bl.'". Installation refused.', + OC_Log::ERROR); return false; } } diff --git a/lib/l10n.php b/lib/l10n.php index ee8790092655d40dc3b2acc3fde8172e6bd73b78..1e07a9b9557c1063dbeb229c450998ee3869c419 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -97,7 +97,7 @@ class OC_L10N{ if ($this->app === true) { return; } - $app = $this->app; + $app = OC_App::cleanAppId($this->app); $lang = $this->lang; $this->app = true; // Find the right language @@ -343,7 +343,7 @@ class OC_L10N{ if(is_dir($dir)) { $files=scandir($dir); foreach($files as $file) { - if(substr($file, -4, 4) == '.php') { + if(substr($file, -4, 4) === '.php' && substr($file, 0, 4) !== 'l10n') { $i = substr($file, 0, -4); $available[] = $i; } diff --git a/lib/l10n/bg_BG.php b/lib/l10n/bg_BG.php index 31f37458b8124d6b764aac7a58f4b40585bf071e..d80e03608a2ac253f54992da25a8cc0fe13f8f9e 100644 --- a/lib/l10n/bg_BG.php +++ b/lib/l10n/bg_BG.php @@ -9,12 +9,18 @@ "Files need to be downloaded one by one." => "Файловете трябва да се изтеглят един по един.", "Back to Files" => "Назад към файловете", "Selected files too large to generate zip file." => "Избраните файлове са прекалено големи за генерирането на ZIP архив.", +"couldn't be determined" => "не може да се определи", "Application is not enabled" => "Приложението не е включено.", "Authentication error" => "Възникна проблем с идентификацията", "Token expired. Please reload page." => "Ключът е изтекъл, моля презаредете страницата", "Files" => "Файлове", "Text" => "Текст", "Images" => "Снимки", +"Set an admin username." => "Въведете потребителско име за администратор.", +"Set an admin password." => "Въведете парола за администратор.", +"Specify a data folder." => "Укажете папка за данни", +"%s enter the database username." => "%s въведете потребителско име за базата с данни.", +"%s enter the database name." => "%s въведете име на базата с данни.", "seconds ago" => "преди секунди", "1 minute ago" => "преди 1 минута", "%d minutes ago" => "преди %d минути", diff --git a/lib/l10n/ca.php b/lib/l10n/ca.php index f6401fa39b6061907862d857f6c9a5b1dae54b07..3e3938aa6cb20737075ad2e4f526a23d98a80e77 100644 --- a/lib/l10n/ca.php +++ b/lib/l10n/ca.php @@ -16,6 +16,26 @@ "Files" => "Fitxers", "Text" => "Text", "Images" => "Imatges", +"Set an admin username." => "Establiu un nom d'usuari per l'administrador.", +"Set an admin password." => "Establiu una contrasenya per l'administrador.", +"Specify a data folder." => "Especifiqueu una carpeta de dades.", +"%s enter the database username." => "%s escriviu el nom d'usuari de la base de dades.", +"%s enter the database name." => "%s escriviu el nom de la base de dades.", +"%s you may not use dots in the database name" => "%s no podeu usar punts en el nom de la base de dades", +"%s set the database host." => "%s establiu l'ordinador central de la base de dades.", +"PostgreSQL username and/or password not valid" => "Nom d'usuari i/o contrasenya PostgreSQL no vàlids", +"You need to enter either an existing account or the administrator." => "Heu d'escriure un compte existent o el d'administrador.", +"Oracle username and/or password not valid" => "Nom d'usuari i/o contrasenya Oracle no vàlids", +"MySQL username and/or password not valid" => "Nom d'usuari i/o contrasenya MySQL no vàlids", +"DB Error: \"%s\"" => "Error DB: \"%s\"", +"Offending command was: \"%s\"" => "L'ordre en conflicte és: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "L'usuari MySQL '%s'@'localhost' ja existeix.", +"Drop this user from MySQL" => "Elimina aquest usuari de MySQL", +"MySQL user '%s'@'%%' already exists" => "L'usuari MySQL '%s'@'%%' ja existeix", +"Drop this user from MySQL." => "Elimina aquest usuari de MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.", +"Please double check the installation guides." => "Comproveu les guies d'instal·lació.", "seconds ago" => "segons enrere", "1 minute ago" => "fa 1 minut", "%d minutes ago" => "fa %d minuts", diff --git a/lib/l10n/cs_CZ.php b/lib/l10n/cs_CZ.php index 2c823194b9612cd7c234fc4879b9193493ab3028..d99f259cb0ffddfef1667f4d6100d4e924892b0f 100644 --- a/lib/l10n/cs_CZ.php +++ b/lib/l10n/cs_CZ.php @@ -16,6 +16,26 @@ "Files" => "Soubory", "Text" => "Text", "Images" => "Obrázky", +"Set an admin username." => "Zadejte uživatelské jméno správce.", +"Set an admin password." => "Zadejte heslo správce.", +"Specify a data folder." => "Určete složku dat.", +"%s enter the database username." => "Zadejte uživatelské jméno %s databáze.", +"%s enter the database name." => "Zadejte název databáze pro %s databáze.", +"%s you may not use dots in the database name" => "V názvu databáze %s nesmíte používat tečky.", +"%s set the database host." => "Zadejte název počítače s databází %s.", +"PostgreSQL username and/or password not valid" => "Uživatelské jméno, či heslo PostgreSQL není platné", +"You need to enter either an existing account or the administrator." => "Musíte zadat existující účet, či správce.", +"Oracle username and/or password not valid" => "Uživatelské jméno, či heslo Oracle není platné", +"MySQL username and/or password not valid" => "Uživatelské jméno, či heslo MySQL není platné", +"DB Error: \"%s\"" => "Chyba DB: \"%s\"", +"Offending command was: \"%s\"" => "Podezřelý příkaz byl: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Uživatel '%s'@'localhost' již v MySQL existuje.", +"Drop this user from MySQL" => "Zahodit uživatele z MySQL", +"MySQL user '%s'@'%%' already exists" => "Uživatel '%s'@'%%' již v MySQL existuje", +"Drop this user from MySQL." => "Zahodit uživatele z MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Podezřelý příkaz byl: \"%s\", jméno: %s, heslo: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Váš webový server není správně nastaven pro umožnění synchronizace, protože rozhraní WebDAV je rozbité.", +"Please double check the installation guides." => "Zkonzultujte, prosím, průvodce instalací.", "seconds ago" => "před vteřinami", "1 minute ago" => "před 1 minutou", "%d minutes ago" => "před %d minutami", diff --git a/lib/l10n/da.php b/lib/l10n/da.php index 8f22be5e8237da5485126d0ece3a3f988efc998d..e61fba30ff3808e12ff4fea8fbef5da7a33cf4a8 100644 --- a/lib/l10n/da.php +++ b/lib/l10n/da.php @@ -16,6 +16,26 @@ "Files" => "Filer", "Text" => "SMS", "Images" => "Billeder", +"Set an admin username." => "Angiv et admin brugernavn.", +"Set an admin password." => "Angiv et admin kodeord.", +"Specify a data folder." => "Specificer en data mappe.", +"%s enter the database username." => "%s indtast database brugernavnet.", +"%s enter the database name." => "%s indtast database navnet.", +"%s you may not use dots in the database name" => "%s du må ikke bruge punktummer i databasenavnet.", +"%s set the database host." => "%s sæt database værten.", +"PostgreSQL username and/or password not valid" => "PostgreSQL brugernavn og/eller kodeord er ikke gyldigt.", +"You need to enter either an existing account or the administrator." => "Du bliver nødt til at indtaste en eksisterende bruger eller en administrator.", +"Oracle username and/or password not valid" => "Oracle brugernavn og/eller kodeord er ikke gyldigt.", +"MySQL username and/or password not valid" => "MySQL brugernavn og/eller kodeord er ikke gyldigt.", +"DB Error: \"%s\"" => "Databasefejl: \"%s\"", +"Offending command was: \"%s\"" => "Fejlende kommando var: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL brugeren '%s'@'localhost' eksisterer allerede.", +"Drop this user from MySQL" => "Slet denne bruger fra MySQL", +"MySQL user '%s'@'%%' already exists" => "MySQL brugeren '%s'@'%%' eksisterer allerede.", +"Drop this user from MySQL." => "Slet denne bruger fra MySQL", +"Offending command was: \"%s\", name: %s, password: %s" => "Fejlende kommando var: \"%s\", navn: %s, password: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Din webserver er endnu ikke sat op til at tillade fil synkronisering fordi WebDAV grænsefladen virker ødelagt.", +"Please double check the installation guides." => "Dobbelttjek venligst installations vejledningerne.", "seconds ago" => "sekunder siden", "1 minute ago" => "1 minut siden", "%d minutes ago" => "%d minutter siden", diff --git a/lib/l10n/de.php b/lib/l10n/de.php index c285a07f63aeb69fa432ad0f8fe3886e4af9f2cf..87b0b29469cc87237ae56f0dd710415445004d40 100644 --- a/lib/l10n/de.php +++ b/lib/l10n/de.php @@ -9,13 +9,33 @@ "Files need to be downloaded one by one." => "Die Dateien müssen einzeln heruntergeladen werden.", "Back to Files" => "Zurück zu \"Dateien\"", "Selected files too large to generate zip file." => "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen.", -"couldn't be determined" => "Konnte nicht festgestellt werden", +"couldn't be determined" => "konnte nicht festgestellt werden", "Application is not enabled" => "Die Anwendung ist nicht aktiviert", "Authentication error" => "Authentifizierungs-Fehler", "Token expired. Please reload page." => "Token abgelaufen. Bitte lade die Seite neu.", "Files" => "Dateien", "Text" => "Text", "Images" => "Bilder", +"Set an admin username." => "Setze Administrator Benutzername.", +"Set an admin password." => "Setze Administrator Passwort", +"Specify a data folder." => "Datei-Verzeichnis angeben.", +"%s enter the database username." => "%s gib den Datenbank-Benutzernamen an.", +"%s enter the database name." => "%s gib den Datenbank-Namen an.", +"%s you may not use dots in the database name" => "%s Der Datenbank-Name darf keine Punkte enthalten", +"%s set the database host." => "%s setze den Datenbank-Host", +"PostgreSQL username and/or password not valid" => "PostgreSQL Benutzername und/oder Passwort ungültig", +"You need to enter either an existing account or the administrator." => "Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.", +"Oracle username and/or password not valid" => "Oracle Benutzername und/oder Passwort ungültig", +"MySQL username and/or password not valid" => "MySQL Benutzername und/oder Passwort ungültig", +"DB Error: \"%s\"" => "DB Fehler: \"%s\"", +"Offending command was: \"%s\"" => "Fehlerhafter Befehl war: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL Benutzer '%s'@'localhost' existiert bereits.", +"Drop this user from MySQL" => "Lösche diesen Benutzer von MySQL", +"MySQL user '%s'@'%%' already exists" => "MySQL Benutzer '%s'@'%%' existiert bereits", +"Drop this user from MySQL." => "Lösche diesen Benutzer aus MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.", +"Please double check the installation guides." => "Bitte prüfe die Instalationsanleitungen.", "seconds ago" => "Gerade eben", "1 minute ago" => "Vor einer Minute", "%d minutes ago" => "Vor %d Minuten", diff --git a/lib/l10n/de_DE.php b/lib/l10n/de_DE.php index 625ba2ecf2076c6be4a018e80c7bb8a1dd60cda8..d04c691f7ec78d8ac9264c82e2a0f3e84af4430a 100644 --- a/lib/l10n/de_DE.php +++ b/lib/l10n/de_DE.php @@ -16,6 +16,26 @@ "Files" => "Dateien", "Text" => "Text", "Images" => "Bilder", +"Set an admin username." => "Setze Administrator Benutzername.", +"Set an admin password." => "Setze Administrator Passwort", +"Specify a data folder." => "Datei-Verzeichnis angeben", +"%s enter the database username." => "%s geben Sie den Datenbank-Benutzernamen an.", +"%s enter the database name." => "%s geben Sie den Datenbank-Namen an.", +"%s you may not use dots in the database name" => "%s Der Datenbank-Name darf keine Punkte enthalten", +"%s set the database host." => "%s setze den Datenbank-Host", +"PostgreSQL username and/or password not valid" => "PostgreSQL Benutzername und/oder Passwort ungültig", +"You need to enter either an existing account or the administrator." => "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.", +"Oracle username and/or password not valid" => "Oracle Benutzername und/oder Passwort ungültig", +"MySQL username and/or password not valid" => "MySQL Benutzername und/oder Passwort ungültig", +"DB Error: \"%s\"" => "DB Fehler: \"%s\"", +"Offending command was: \"%s\"" => "Fehlerhafter Befehl war: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL Benutzer '%s'@'localhost' existiert bereits.", +"Drop this user from MySQL" => "Lösche diesen Benutzer aus MySQL", +"MySQL user '%s'@'%%' already exists" => "MySQL Benutzer '%s'@'%%' existiert bereits", +"Drop this user from MySQL." => "Lösche diesen Benutzer aus MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ihr Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.", +"Please double check the installation guides." => "Bitte prüfen Sie die Instalationsanleitungen.", "seconds ago" => "Gerade eben", "1 minute ago" => "Vor einer Minute", "%d minutes ago" => "Vor %d Minuten", diff --git a/lib/l10n/el.php b/lib/l10n/el.php index cf0be24b432415cd14a582ded61882725204df81..c17a33dfee1439060ebab42ee5e05cf2641499f1 100644 --- a/lib/l10n/el.php +++ b/lib/l10n/el.php @@ -16,6 +16,23 @@ "Files" => "Αρχεία", "Text" => "Κείμενο", "Images" => "Εικόνες", +"Set an admin username." => "Εισάγετε όνομα χρήστη διαχειριστή.", +"Set an admin password." => "Εισάγετε συνθηματικό διαχειριστή.", +"Specify a data folder." => "Καθορίστε τον φάκελο δεδομένων.", +"%s enter the database username." => "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.", +"%s enter the database name." => "%s εισάγετε το όνομα της βάσης δεδομένων.", +"%s you may not use dots in the database name" => "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων", +"PostgreSQL username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL", +"You need to enter either an existing account or the administrator." => "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.", +"Oracle username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle", +"MySQL username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της MySQL", +"DB Error: \"%s\"" => "Σφάλμα Βάσης Δεδομένων: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL.", +"Drop this user from MySQL" => "Απόρριψη αυτού του χρήστη από την MySQL", +"MySQL user '%s'@'%%' already exists" => "Ο χρήστης '%s'@'%%' της MySQL υπάρχει ήδη", +"Drop this user from MySQL." => "Απόρριψη αυτού του χρήστη από την MySQL", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ο διακομιστής σας δεν έχει ρυθμιστεί κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων γιατί η διεπαφή WebDAV πιθανόν να είναι κατεστραμμένη.", +"Please double check the installation guides." => "Ελέγξτε ξανά τις οδηγίες εγκατάστασης.", "seconds ago" => "δευτερόλεπτα πριν", "1 minute ago" => "1 λεπτό πριν", "%d minutes ago" => "%d λεπτά πριν", @@ -28,7 +45,7 @@ "%d months ago" => "%d μήνες πριν", "last year" => "τον προηγούμενο χρόνο", "years ago" => "χρόνια πριν", -"%s is available. Get more information" => "%s είναι διαθέσιμα. Δείτε περισσότερες πληροφορίες", +"%s is available. Get more information" => "%s είναι διαθέσιμο. Δείτε περισσότερες πληροφορίες", "up to date" => "ενημερωμένο", "updates check is disabled" => "ο έλεγχος ενημερώσεων είναι απενεργοποιημένος", "Could not find category \"%s\"" => "Αδυναμία εύρεσης κατηγορίας \"%s\"" diff --git a/lib/l10n/es.php b/lib/l10n/es.php index 8bbc8a8f7b40946c4b29e6b89b15fc71fce0420b..3ee3ce2811b241090fd5ae66dab55c4e49443351 100644 --- a/lib/l10n/es.php +++ b/lib/l10n/es.php @@ -16,6 +16,26 @@ "Files" => "Archivos", "Text" => "Texto", "Images" => "Imágenes", +"Set an admin username." => "Configurar un nombre de usuario del administrador", +"Set an admin password." => "Configurar la contraseña del administrador.", +"Specify a data folder." => "Especificar la carpeta de datos.", +"%s enter the database username." => "%s ingresar el usuario de la base de datos.", +"%s enter the database name." => "%s ingresar el nombre de la base de datos", +"%s you may not use dots in the database name" => "%s no se puede utilizar puntos en el nombre de la base de datos", +"%s set the database host." => "%s ingresar el host de la base de datos.", +"PostgreSQL username and/or password not valid" => "Usuario y/o contraseña de PostgreSQL no válidos", +"You need to enter either an existing account or the administrator." => "Tiene que ingresar una cuenta existente o la del administrador.", +"Oracle username and/or password not valid" => "Usuario y/o contraseña de Oracle no válidos", +"MySQL username and/or password not valid" => "Usuario y/o contraseña de MySQL no válidos", +"DB Error: \"%s\"" => "Error BD: \"%s\"", +"Offending command was: \"%s\"" => "Comando infractor: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Usuario MySQL '%s'@'localhost' ya existe.", +"Drop this user from MySQL" => "Eliminar este usuario de MySQL", +"MySQL user '%s'@'%%' already exists" => "Usuario MySQL '%s'@'%%' ya existe", +"Drop this user from MySQL." => "Eliminar este usuario de MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Comando infractor: \"%s\", nombre: %s, contraseña: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Su servidor web aún no está configurado adecuadamente para permitir sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.", +"Please double check the installation guides." => "Por favor, vuelva a comprobar las guías de instalación.", "seconds ago" => "hace segundos", "1 minute ago" => "hace 1 minuto", "%d minutes ago" => "hace %d minutos", diff --git a/lib/l10n/es_AR.php b/lib/l10n/es_AR.php index c32017a10f8261517cccf5aaa5dffeb95752bbcd..cfe90f6bc1bbdc3eb3dbbe19800877f0b2e0dcd2 100644 --- a/lib/l10n/es_AR.php +++ b/lib/l10n/es_AR.php @@ -16,6 +16,26 @@ "Files" => "Archivos", "Text" => "Texto", "Images" => "Imágenes", +"Set an admin username." => "Configurar un nombre de administrador", +"Set an admin password." => "Configurar una palabra clave de administrador", +"Specify a data folder." => "Especificar un directorio de datos", +"%s enter the database username." => "%s Entre el Usuario de la Base de Datos", +"%s enter the database name." => "%s Entre el Nombre de la Base de Datos", +"%s you may not use dots in the database name" => "%s no puede usar puntos en el nombre de la Base de Datos", +"%s set the database host." => "%s Especifique la dirección de la Base de Datos", +"PostgreSQL username and/or password not valid" => "Nombre de usuario o contraseña de PostgradeSQL no válido.", +"You need to enter either an existing account or the administrator." => "Debe ingresar una cuenta existente o el administrador", +"Oracle username and/or password not valid" => "El nombre de usuario y contraseña no son válidos", +"MySQL username and/or password not valid" => "Usuario y/o contraseña MySQL no válido", +"DB Error: \"%s\"" => "Error DB: \"%s\"", +"Offending command was: \"%s\"" => "El comando no comprendido es: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Usuario MySQL '%s'@'localhost' ya existente", +"Drop this user from MySQL" => "Borrar este usuario de MySQL", +"MySQL user '%s'@'%%' already exists" => "Usuario MySQL '%s'@'%%' ya existente", +"Drop this user from MySQL." => "Borrar este usuario de MySQL", +"Offending command was: \"%s\", name: %s, password: %s" => "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\"", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tu servidor web no está configurado todavía para permitir sincronización de archivos porque la interfaz WebDAV parece no funcionar.", +"Please double check the installation guides." => "Por favor, comprobá nuevamente la guía de instalación.", "seconds ago" => "hace unos segundos", "1 minute ago" => "hace 1 minuto", "%d minutes ago" => "hace %d minutos", diff --git a/lib/l10n/et_EE.php b/lib/l10n/et_EE.php index 906abf9430a9fe6351834abf33b8c036fc5f6f77..cdcf762d9a66dd2bdc8421cac438fb487e129f82 100644 --- a/lib/l10n/et_EE.php +++ b/lib/l10n/et_EE.php @@ -15,13 +15,22 @@ "Files" => "Failid", "Text" => "Tekst", "Images" => "Pildid", +"Set an admin username." => "Määra admin kasutajanimi.", +"Set an admin password." => "Määra admini parool.", +"Specify a data folder." => "Määra andmete kaust.", +"DB Error: \"%s\"" => "Andmebaasi viga: \"%s\"", +"Drop this user from MySQL" => "Kustuta see kasutaja MySQL-ist", +"Drop this user from MySQL." => "Kustuta see kasutaja MySQL-ist.", "seconds ago" => "sekundit tagasi", "1 minute ago" => "1 minut tagasi", "%d minutes ago" => "%d minutit tagasi", +"1 hour ago" => "1 tund tagasi", +"%d hours ago" => "%d tundi tagasi", "today" => "täna", "yesterday" => "eile", "%d days ago" => "%d päeva tagasi", "last month" => "eelmisel kuul", +"%d months ago" => "%d kuud tagasi", "last year" => "eelmisel aastal", "years ago" => "aastat tagasi", "%s is available. Get more information" => "%s on saadaval. Vaata lisainfot", diff --git a/lib/l10n/eu.php b/lib/l10n/eu.php index 1941551b1760246b0adf0924d4a3aecee296d7a9..97eb6511198b1084d85e06d1f716dbd4d04c1157 100644 --- a/lib/l10n/eu.php +++ b/lib/l10n/eu.php @@ -16,6 +16,26 @@ "Files" => "Fitxategiak", "Text" => "Testua", "Images" => "Irudiak", +"Set an admin username." => "Ezarri administraziorako erabiltzaile izena.", +"Set an admin password." => "Ezarri administraziorako pasahitza.", +"Specify a data folder." => "Zehaztu data karpeta.", +"%s enter the database username." => "%s sartu datu basearen erabiltzaile izena.", +"%s enter the database name." => "%s sartu datu basearen izena.", +"%s you may not use dots in the database name" => "%s ezin duzu punturik erabili datu basearen izenean.", +"%s set the database host." => "%s sartu datu basearen hostalaria.", +"PostgreSQL username and/or password not valid" => "PostgreSQL erabiltzaile edota pasahitza ez dira egokiak.", +"You need to enter either an existing account or the administrator." => "Existitzen den kontu bat edo administradorearena jarri behar duzu.", +"Oracle username and/or password not valid" => "Oracle erabiltzaile edota pasahitza ez dira egokiak.", +"MySQL username and/or password not valid" => "MySQL erabiltzaile edota pasahitza ez dira egokiak.", +"DB Error: \"%s\"" => "DB errorea: \"%s\"", +"Offending command was: \"%s\"" => "Errorea komando honek sortu du: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL '%s'@'localhost' erabiltzailea dagoeneko existitzen da.", +"Drop this user from MySQL" => "Ezabatu erabiltzaile hau MySQLtik", +"MySQL user '%s'@'%%' already exists" => "MySQL '%s'@'%%' erabiltzailea dagoeneko existitzen da", +"Drop this user from MySQL." => "Ezabatu erabiltzaile hau MySQLtik.", +"Offending command was: \"%s\", name: %s, password: %s" => "Errorea komando honek sortu du: \"%s\", izena: %s, pasahitza: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Zure web zerbitzaria ez dago oraindik ongi konfiguratuta fitxategien sinkronizazioa egiteko, WebDAV interfazea ongi ez dagoela dirudi.", +"Please double check the installation guides." => "Mesedez begiratu instalazio gidak.", "seconds ago" => "orain dela segundu batzuk", "1 minute ago" => "orain dela minutu 1", "%d minutes ago" => "orain dela %d minutu", diff --git a/lib/l10n/fi_FI.php b/lib/l10n/fi_FI.php index b8d4b137431cb08e0dc1764d2099333cb476494d..c3ff3e9a2bf64b7e9eda6586744b93a917d8c594 100644 --- a/lib/l10n/fi_FI.php +++ b/lib/l10n/fi_FI.php @@ -16,6 +16,16 @@ "Files" => "Tiedostot", "Text" => "Teksti", "Images" => "Kuvat", +"Set an admin username." => "Aseta ylläpitäjän käyttäjätunnus.", +"Set an admin password." => "Aseta ylläpitäjän salasana.", +"Specify a data folder." => "Määritä datakansio.", +"PostgreSQL username and/or password not valid" => "PostgreSQL:n käyttäjätunnus ja/tai salasana on väärin", +"Oracle username and/or password not valid" => "Oraclen käyttäjätunnus ja/tai salasana on väärin", +"MySQL username and/or password not valid" => "MySQL:n käyttäjätunnus ja/tai salasana on väärin", +"DB Error: \"%s\"" => "Tietokantavirhe: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL-käyttäjä '%s'@'localhost' on jo olemassa.", +"MySQL user '%s'@'%%' already exists" => "MySQL-käyttäjä '%s'@'%%' on jo olemassa", +"Please double check the installation guides." => "Lue tarkasti asennusohjeet.", "seconds ago" => "sekuntia sitten", "1 minute ago" => "1 minuutti sitten", "%d minutes ago" => "%d minuuttia sitten", diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php index c6bf8f7f9c34b9e0e8e49feaea2ef8941af8f1d4..fc44f9760840adc25a148c27a2925634b1bfbdda 100644 --- a/lib/l10n/fr.php +++ b/lib/l10n/fr.php @@ -16,6 +16,26 @@ "Files" => "Fichiers", "Text" => "Texte", "Images" => "Images", +"Set an admin username." => "Spécifiez un nom d'utilisateur pour l'administrateur.", +"Set an admin password." => "Spécifiez un mot de passe administrateur.", +"Specify a data folder." => "Spécifiez un répertoire pour les données.", +"%s enter the database username." => "%s entrez le nom d'utilisateur de la base de données.", +"%s enter the database name." => "%s entrez le nom de la base de données.", +"%s you may not use dots in the database name" => "%s vous nez pouvez pas utiliser de points dans le nom de la base de données", +"%s set the database host." => "%s spécifiez l'hôte de la base de données.", +"PostgreSQL username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL invalide", +"You need to enter either an existing account or the administrator." => "Vous devez spécifier soit le nom d'un compte existant, soit celui de l'administrateur.", +"Oracle username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe de la base Oracle invalide", +"MySQL username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe de la base MySQL invalide", +"DB Error: \"%s\"" => "Erreur de la base de données : \"%s\"", +"Offending command was: \"%s\"" => "La requête en cause est : \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "L'utilisateur MySQL '%s'@'localhost' existe déjà.", +"Drop this user from MySQL" => "Retirer cet utilisateur de la base MySQL", +"MySQL user '%s'@'%%' already exists" => "L'utilisateur MySQL '%s'@'%%' existe déjà", +"Drop this user from MySQL." => "Retirer cet utilisateur de la base MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "La requête en cause est : \"%s\", nom : %s, mot de passe : %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.", +"Please double check the installation guides." => "Veuillez vous référer au guide d'installation.", "seconds ago" => "à l'instant", "1 minute ago" => "il y a 1 minute", "%d minutes ago" => "il y a %d minutes", diff --git a/lib/l10n/gl.php b/lib/l10n/gl.php index 532b3443b44718048063549bc4be94955c20936a..9673bb65fc1cb6cbbee15760817f19c06eff2915 100644 --- a/lib/l10n/gl.php +++ b/lib/l10n/gl.php @@ -5,18 +5,38 @@ "Users" => "Usuarios", "Apps" => "Aplicativos", "Admin" => "Administración", -"ZIP download is turned off." => "As descargas ZIP están desactivadas", -"Files need to be downloaded one by one." => "Os ficheiros necesitan seren descargados de un en un.", +"ZIP download is turned off." => "As descargas ZIP están desactivadas.", +"Files need to be downloaded one by one." => "Os ficheiros necesitan seren descargados dun en un.", "Back to Files" => "Volver aos ficheiros", "Selected files too large to generate zip file." => "Os ficheiros seleccionados son demasiado grandes como para xerar un ficheiro zip.", -"couldn't be determined" => "non puido ser determinado", +"couldn't be determined" => "non foi posíbel determinalo", "Application is not enabled" => "O aplicativo non está activado", "Authentication error" => "Produciuse un erro na autenticación", "Token expired. Please reload page." => "Testemuña caducada. Recargue a páxina.", "Files" => "Ficheiros", "Text" => "Texto", "Images" => "Imaxes", -"seconds ago" => "hai segundos", +"Set an admin username." => "Estabeleza un nome de usuario administrador", +"Set an admin password." => "Estabeleza un contrasinal de administrador", +"Specify a data folder." => "Especifique un cartafol de datos.", +"%s enter the database username." => "%s introduza o nome de usuario da base de datos", +"%s enter the database name." => "%s introduza o nome da base de datos", +"%s you may not use dots in the database name" => "%s non se poden empregar puntos na base de datos", +"%s set the database host." => "%s estabeleza o servidor da base de datos", +"PostgreSQL username and/or password not valid" => "Nome de usuario e/ou contrasinal PostgreSQL incorrecto", +"You need to enter either an existing account or the administrator." => "Deberá introducir unha conta existente ou o administrador.", +"Oracle username and/or password not valid" => "Nome de usuario e/ou contrasinal Oracle incorrecto", +"MySQL username and/or password not valid" => "Nome de usuario e/ou contrasinal MySQL incorrecto", +"DB Error: \"%s\"" => "Produciuse un erro na base de datos: «%s»", +"Offending command was: \"%s\"" => "A orde ofensiva foi: «%s»", +"MySQL user '%s'@'localhost' exists already." => "O usuario MySQL '%s'@'localhost' xa existe.", +"Drop this user from MySQL" => "Omitir este usuario de MySQL", +"MySQL user '%s'@'%%' already exists" => "O usuario MySQL «%s»@«%%» xa existe.", +"Drop this user from MySQL." => "Omitir este usuario de MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "A orde ofensiva foi: «%s», nome: %s, contrasinal: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "O seu servidor web non está aínda configurado adecuadamente para permitir a sincronización de ficheiros xa que semella que a interface WebDAV non está a funcionar.", +"Please double check the installation guides." => "Volva comprobar as guías de instalación", +"seconds ago" => "segundos atrás", "1 minute ago" => "hai 1 minuto", "%d minutes ago" => "hai %d minutos", "1 hour ago" => "Vai 1 hora", @@ -29,7 +49,7 @@ "last year" => "último ano", "years ago" => "anos atrás", "%s is available. Get more information" => "%s está dispoñíbel. Obtéña máis información", -"up to date" => "ao día", +"up to date" => "actualizado", "updates check is disabled" => "a comprobación de actualizacións está desactivada", "Could not find category \"%s\"" => "Non foi posíbel atopar a categoría «%s»" ); diff --git a/lib/l10n/hi.php b/lib/l10n/hi.php new file mode 100644 index 0000000000000000000000000000000000000000..f507993f494c76d4035c2df996be026801af2130 --- /dev/null +++ b/lib/l10n/hi.php @@ -0,0 +1,7 @@ + "सहयोग", +"Personal" => "यक्तिगत", +"Settings" => "सेटिंग्स", +"Users" => "उपयोगकर्ता", +"Apps" => "Apps" +); diff --git a/lib/l10n/hu_HU.php b/lib/l10n/hu_HU.php index e25de3e1ed6af6aa9eadfe32420c97d1a03feb07..d1aeb621e2308a5a2d11a5bc69054a3634e07d26 100644 --- a/lib/l10n/hu_HU.php +++ b/lib/l10n/hu_HU.php @@ -4,9 +4,9 @@ "Settings" => "Beállítások", "Users" => "Felhasználók", "Apps" => "Alkalmazások", -"Admin" => "Admin", +"Admin" => "Adminsztráció", "ZIP download is turned off." => "A ZIP-letöltés nincs engedélyezve.", -"Files need to be downloaded one by one." => "A fájlokat egyenként kell letölteni", +"Files need to be downloaded one by one." => "A fájlokat egyenként kell letölteni.", "Back to Files" => "Vissza a Fájlokhoz", "Selected files too large to generate zip file." => "A kiválasztott fájlok túl nagyok a zip tömörítéshez.", "couldn't be determined" => "nem határozható meg", @@ -16,6 +16,26 @@ "Files" => "Fájlok", "Text" => "Szöveg", "Images" => "Képek", +"Set an admin username." => "Állítson be egy felhasználói nevet az adminisztrációhoz.", +"Set an admin password." => "Állítson be egy jelszót az adminisztrációhoz.", +"Specify a data folder." => "Adja meg az adatokat tartalmazó könyvtár nevét.", +"%s enter the database username." => "%s adja meg az adatbázist elérő felhasználó login nevét.", +"%s enter the database name." => "%s adja meg az adatbázis nevét.", +"%s you may not use dots in the database name" => "%s az adatbázis neve nem tartalmazhat pontot", +"%s set the database host." => "%s adja meg az adatbázist szolgáltató számítógép nevét.", +"PostgreSQL username and/or password not valid" => "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", +"You need to enter either an existing account or the administrator." => "Vagy egy létező felhasználó vagy az adminisztrátor bejelentkezési nevét kell megadnia", +"Oracle username and/or password not valid" => "Az Oracle felhasználói név és/vagy jelszó érvénytelen", +"MySQL username and/or password not valid" => "A MySQL felhasználói név és/vagy jelszó érvénytelen", +"DB Error: \"%s\"" => "Adatbázis hiba: \"%s\"", +"Offending command was: \"%s\"" => "A hibát ez a parancs okozta: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "A '%s'@'localhost' MySQL felhasználó már létezik.", +"Drop this user from MySQL" => "Törölje ezt a felhasználót a MySQL-ből", +"MySQL user '%s'@'%%' already exists" => "A '%s'@'%%' MySQL felhasználó már létezik", +"Drop this user from MySQL." => "Törölje ezt a felhasználót a MySQL-ből.", +"Offending command was: \"%s\", name: %s, password: %s" => "A hibát okozó parancs ez volt: \"%s\", login név: %s, jelszó: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Az Ön webkiszolgálója nincs megfelelően beállítva az állományok szinkronizálásához, mert a WebDAV-elérés úgy tűnik, nem működik.", +"Please double check the installation guides." => "Kérjük tüzetesen tanulmányozza át a telepítési útmutatót.", "seconds ago" => "másodperce", "1 minute ago" => "1 perce", "%d minutes ago" => "%d perce", diff --git a/lib/l10n/it.php b/lib/l10n/it.php index eb404db7fb55c09b47c72d1d90337a4a9eac31f7..fa4bac8ec4697d27db712e5ae8c09c14ad082b39 100644 --- a/lib/l10n/it.php +++ b/lib/l10n/it.php @@ -16,6 +16,26 @@ "Files" => "File", "Text" => "Testo", "Images" => "Immagini", +"Set an admin username." => "Imposta un nome utente di amministrazione.", +"Set an admin password." => "Imposta una password di amministrazione.", +"Specify a data folder." => "Specifica una cartella dei dati.", +"%s enter the database username." => "%s digita il nome utente del database.", +"%s enter the database name." => "%s digita il nome del database.", +"%s you may not use dots in the database name" => "%s non dovresti utilizzare punti nel nome del database", +"%s set the database host." => "%s imposta l'host del database.", +"PostgreSQL username and/or password not valid" => "Nome utente e/o password di PostgreSQL non validi", +"You need to enter either an existing account or the administrator." => "È necessario inserire un account esistente o l'amministratore.", +"Oracle username and/or password not valid" => "Nome utente e/o password di Oracle non validi", +"MySQL username and/or password not valid" => "Nome utente e/o password di MySQL non validi", +"DB Error: \"%s\"" => "Errore DB: \"%s\"", +"Offending command was: \"%s\"" => "Il comando non consentito era: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "L'utente MySQL '%s'@'localhost' esiste già.", +"Drop this user from MySQL" => "Elimina questo utente da MySQL", +"MySQL user '%s'@'%%' already exists" => "L'utente MySQL '%s'@'%%' esiste già", +"Drop this user from MySQL." => "Elimina questo utente da MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Il comando non consentito era: \"%s\", nome: %s, password: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Il tuo server web non è configurato correttamente per consentire la sincronizzazione dei file poiché l'interfaccia WebDAV sembra essere danneggiata.", +"Please double check the installation guides." => "Leggi attentamente le guide d'installazione.", "seconds ago" => "secondi fa", "1 minute ago" => "1 minuto fa", "%d minutes ago" => "%d minuti fa", diff --git a/lib/l10n/ja_JP.php b/lib/l10n/ja_JP.php index 11cefe900c266d4c26b3cffe068f77e256cbd35f..51b5b40940a3908ee053e47262124756c63c71b0 100644 --- a/lib/l10n/ja_JP.php +++ b/lib/l10n/ja_JP.php @@ -16,6 +16,26 @@ "Files" => "ファイル", "Text" => "TTY TDD", "Images" => "画像", +"Set an admin username." => "管理者のユーザ名を設定。", +"Set an admin password." => "管理者のパスワードを設定。", +"Specify a data folder." => "データフォルダを指定。", +"%s enter the database username." => "%s のデータベースのユーザ名を入力してください。", +"%s enter the database name." => "%s のデータベース名を入力してください。", +"%s you may not use dots in the database name" => "%s ではデータベース名にドットを利用できないかもしれません。", +"%s set the database host." => "%s にデータベースホストを設定します。", +"PostgreSQL username and/or password not valid" => "PostgreSQLのユーザ名もしくはパスワードは有効ではありません", +"You need to enter either an existing account or the administrator." => "既存のアカウントもしくは管理者のどちらかを入力する必要があります。", +"Oracle username and/or password not valid" => "Oracleのユーザ名もしくはパスワードは有効ではありません", +"MySQL username and/or password not valid" => "MySQLのユーザ名もしくはパスワードは有効ではありません", +"DB Error: \"%s\"" => "DBエラー: \"%s\"", +"Offending command was: \"%s\"" => "違反コマンド: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQLのユーザ '%s'@'localhost' はすでに存在します。", +"Drop this user from MySQL" => "MySQLからこのユーザを削除", +"MySQL user '%s'@'%%' already exists" => "MySQLのユーザ '%s'@'%%' はすでに存在します。", +"Drop this user from MySQL." => "MySQLからこのユーザを削除する。", +"Offending command was: \"%s\", name: %s, password: %s" => "違反コマンド: \"%s\"、名前: %s、パスワード: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。", +"Please double check the installation guides." => "インストールガイドをよく確認してください。", "seconds ago" => "秒前", "1 minute ago" => "1分前", "%d minutes ago" => "%d 分前", diff --git a/lib/l10n/ka.php b/lib/l10n/ka.php new file mode 100644 index 0000000000000000000000000000000000000000..e5a3e6596684f6dc2dbeb860d626c135ec61e103 --- /dev/null +++ b/lib/l10n/ka.php @@ -0,0 +1,15 @@ + "შველა", +"Personal" => "პერსონა", +"Users" => "მომხმარებლები", +"Admin" => "ადმინისტრატორი", +"ZIP download is turned off." => "ZIP გადმოწერა გამორთულია", +"Files" => "ფაილები", +"seconds ago" => "წამის წინ", +"1 minute ago" => "1 წუთის წინ", +"%d minutes ago" => "%d წუთის წინ", +"1 hour ago" => "1 საათის წინ", +"today" => "დღეს", +"yesterday" => "გუშინ", +"%d days ago" => "%d დღის წინ" +); diff --git a/lib/l10n/lv.php b/lib/l10n/lv.php index 9f2a0dea7494e9c07a8788a95d0b8962d00f73d7..5ec9ddd969348abd92dd6843334e5ca79f15366d 100644 --- a/lib/l10n/lv.php +++ b/lib/l10n/lv.php @@ -16,6 +16,26 @@ "Files" => "Datnes", "Text" => "Teksts", "Images" => "Attēli", +"Set an admin username." => "Iestatiet administratora lietotājvārdu.", +"Set an admin password." => "Iestatiet administratora paroli.", +"Specify a data folder." => "Norādiet datu mapi.", +"%s enter the database username." => "%s ievadiet datubāzes lietotājvārdu.", +"%s enter the database name." => "%s ievadiet datubāzes nosaukumu.", +"%s you may not use dots in the database name" => "%s datubāžu nosaukumos nedrīkst izmantot punktus", +"%s set the database host." => "%s iestatiet datubāžu serveri.", +"PostgreSQL username and/or password not valid" => "Nav derīga PostgreSQL parole un/vai lietotājvārds", +"You need to enter either an existing account or the administrator." => "Jums jāievada vai nu esošs vai administratora konts.", +"Oracle username and/or password not valid" => "Nav derīga Oracle parole un/vai lietotājvārds", +"MySQL username and/or password not valid" => "Nav derīga MySQL parole un/vai lietotājvārds", +"DB Error: \"%s\"" => "DB kļūda — “%s”", +"Offending command was: \"%s\"" => "Vainīgā komanda bija “%s”", +"MySQL user '%s'@'localhost' exists already." => "MySQL lietotājs %s'@'localhost' jau eksistē.", +"Drop this user from MySQL" => "Izmest šo lietotāju no MySQL", +"MySQL user '%s'@'%%' already exists" => "MySQL lietotājs '%s'@'%%' jau eksistē", +"Drop this user from MySQL." => "Izmest šo lietotāju no MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Vainīgā komanda bija \"%s\", vārds: %s, parole: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Jūsu serveris vēl nav pareizi iestatīts, lai ļautu sinhronizēt datnes, jo izskatās, ka WebDAV saskarne ir salauzta.", +"Please double check the installation guides." => "Lūdzu, vēlreiz pārbaudiet instalēšanas palīdzību.", "seconds ago" => "sekundes atpakaļ", "1 minute ago" => "pirms 1 minūtes", "%d minutes ago" => "pirms %d minūtēm", diff --git a/lib/l10n/my_MM.php b/lib/l10n/my_MM.php new file mode 100644 index 0000000000000000000000000000000000000000..d725a06a3a99bb97c945a2ce7f884f999b1381be --- /dev/null +++ b/lib/l10n/my_MM.php @@ -0,0 +1,31 @@ + "အကူအညီ", +"Users" => "သုံးစွဲသူ", +"Apps" => "Apps", +"Admin" => "အက်ဒမင်", +"ZIP download is turned off." => "ZIP ဒေါင်းလုတ်ကိုပိတ်ထားသည်", +"Files need to be downloaded one by one." => "ဖိုင်များသည် တစ်ခုပြီး တစ်ခုဒေါင်းလုတ်ချရန်လိုအပ်သည်", +"Back to Files" => "ဖိုင်သို့ပြန်သွားမည်", +"Selected files too large to generate zip file." => "zip ဖိုင်အဖြစ်ပြုလုပ်ရန် ရွေးချယ်ထားသောဖိုင်များသည် အရမ်းကြီးလွန်းသည်", +"couldn't be determined" => "မဆုံးဖြတ်နိုင်ပါ။", +"Authentication error" => "ခွင့်ပြုချက်မအောင်မြင်", +"Files" => "ဖိုင်များ", +"Text" => "စာသား", +"Images" => "ပုံရိပ်များ", +"seconds ago" => "စက္ကန့်အနည်းငယ်က", +"1 minute ago" => "၁ မိနစ်အရင်က", +"%d minutes ago" => "%d မိနစ်အရင်က", +"1 hour ago" => "၁ နာရီ အရင်က", +"%d hours ago" => "%d နာရီအရင်က", +"today" => "ယနေ့", +"yesterday" => "မနေ့က", +"%d days ago" => "%d ရက် အရင်က", +"last month" => "ပြီးခဲ့သောလ", +"%d months ago" => "%d လအရင်က", +"last year" => "မနှစ်က", +"years ago" => "နှစ် အရင်က", +"%s is available. Get more information" => "%s ကိုရရှိနိုင်ပါပြီ။ နောက်ထပ်အချက်အလက်များရယူပါ။", +"up to date" => "နောက်ဆုံးပေါ်", +"updates check is disabled" => "နောက်ဆုံးပေါ်စစ်ဆေးခြင်းကိုပိတ်ထားသည်", +"Could not find category \"%s\"" => "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ" +); diff --git a/lib/l10n/nl.php b/lib/l10n/nl.php index 7ce134e362155e404999087c292d8fcc86324cd4..4a357889fdcfd210c23922a435447a9657fe9c28 100644 --- a/lib/l10n/nl.php +++ b/lib/l10n/nl.php @@ -16,6 +16,26 @@ "Files" => "Bestanden", "Text" => "Tekst", "Images" => "Afbeeldingen", +"Set an admin username." => "Stel de gebruikersnaam van de beheerder in.", +"Set an admin password." => "Stel een beheerderswachtwoord in.", +"Specify a data folder." => "Geef een datamap op.", +"%s enter the database username." => "%s opgeven database gebruikersnaam.", +"%s enter the database name." => "%s opgeven databasenaam.", +"%s you may not use dots in the database name" => "%s er mogen geen puntjes in de databasenaam voorkomen", +"%s set the database host." => "%s instellen databaseservernaam.", +"PostgreSQL username and/or password not valid" => "PostgreSQL gebruikersnaam en/of wachtwoord ongeldig", +"You need to enter either an existing account or the administrator." => "Geef of een bestaand account op of het beheerdersaccount.", +"Oracle username and/or password not valid" => "Oracle gebruikersnaam en/of wachtwoord ongeldig", +"MySQL username and/or password not valid" => "MySQL gebruikersnaam en/of wachtwoord ongeldig", +"DB Error: \"%s\"" => "DB Fout: \"%s\"", +"Offending command was: \"%s\"" => "Onjuiste commande was: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "MySQL gebruiker '%s'@'localhost' bestaat al.", +"Drop this user from MySQL" => "Verwijder deze gebruiker uit MySQL", +"MySQL user '%s'@'%%' already exists" => "MySQL gebruiker '%s'@'%%' bestaat al", +"Drop this user from MySQL." => "Verwijder deze gebruiker uit MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Onjuiste commando was: \"%s\", naam: %s, wachtwoord: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Uw webserver is nog niet goed ingesteld voor bestandssynchronisatie omdat de WebDAV interface verbroken lijkt.", +"Please double check the installation guides." => "Conntroleer de installatie handleiding goed.", "seconds ago" => "seconden geleden", "1 minute ago" => "1 minuut geleden", "%d minutes ago" => "%d minuten geleden", diff --git a/lib/l10n/pl.php b/lib/l10n/pl.php index 6ec35445bc2bdbfb383f40677b9e504d3d914940..da924cf4d12e2969d0692b337694cfae039adfc2 100644 --- a/lib/l10n/pl.php +++ b/lib/l10n/pl.php @@ -16,6 +16,26 @@ "Files" => "Pliki", "Text" => "Połączenie tekstowe", "Images" => "Obrazy", +"Set an admin username." => "Ustaw nazwę administratora.", +"Set an admin password." => "Ustaw hasło administratora.", +"Specify a data folder." => "Określ folder danych.", +"%s enter the database username." => "%s wpisz nazwę użytkownika do bazy", +"%s enter the database name." => "%s wpisz nazwę bazy.", +"%s you may not use dots in the database name" => "%s nie można używać kropki w nazwie bazy danych", +"%s set the database host." => "%s ustaw hosta bazy danych.", +"PostgreSQL username and/or password not valid" => "PostgreSQL: Nazwa użytkownika i/lub hasło jest niepoprawne", +"You need to enter either an existing account or the administrator." => "Należy wprowadzić istniejące konto użytkownika lub administratora.", +"Oracle username and/or password not valid" => "Oracle: Nazwa użytkownika i/lub hasło jest niepoprawne", +"MySQL username and/or password not valid" => "MySQL: Nazwa użytkownika i/lub hasło jest niepoprawne", +"DB Error: \"%s\"" => "Błąd DB: \"%s\"", +"Offending command was: \"%s\"" => "Niepoprawna komenda: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Użytkownik MySQL '%s'@'localhost' już istnieje", +"Drop this user from MySQL" => "Usuń tego użytkownika z MySQL", +"MySQL user '%s'@'%%' already exists" => "Użytkownik MySQL '%s'@'%%t' już istnieje", +"Drop this user from MySQL." => "Usuń tego użytkownika z MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Serwer www nie jest jeszcze poprawnie ustawiony, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony. Sprawdź ustawienia serwera.", +"Please double check the installation guides." => "Proszę sprawdź ponownie przewodnik instalacji.", "seconds ago" => "sekund temu", "1 minute ago" => "1 minutę temu", "%d minutes ago" => "%d minut temu", diff --git a/lib/l10n/pt_BR.php b/lib/l10n/pt_BR.php index fb7087d35d779e765c631b3fb98bb9be013b10a9..25645b1dcd93f757d1bc0a37af5fdbdc77b881fc 100644 --- a/lib/l10n/pt_BR.php +++ b/lib/l10n/pt_BR.php @@ -9,12 +9,33 @@ "Files need to be downloaded one by one." => "Arquivos precisam ser baixados um de cada vez.", "Back to Files" => "Voltar para Arquivos", "Selected files too large to generate zip file." => "Arquivos selecionados são muito grandes para gerar arquivo zip.", +"couldn't be determined" => "não pôde ser determinado", "Application is not enabled" => "Aplicação não está habilitada", "Authentication error" => "Erro de autenticação", "Token expired. Please reload page." => "Token expirou. Por favor recarregue a página.", "Files" => "Arquivos", "Text" => "Texto", "Images" => "Imagens", +"Set an admin username." => "Defina um nome de usuário de administrador.", +"Set an admin password." => "Defina uma senha de administrador.", +"Specify a data folder." => "Especifique uma pasta de dados.", +"%s enter the database username." => "%s insira o nome de usuário do banco de dados.", +"%s enter the database name." => "%s insira o nome do banco de dados.", +"%s you may not use dots in the database name" => "%s você não pode usar pontos no nome do banco de dados", +"%s set the database host." => "%s defina o host do banco de dados.", +"PostgreSQL username and/or password not valid" => "Nome de usuário e/ou senha PostgreSQL inválido(s)", +"You need to enter either an existing account or the administrator." => "Você precisa inserir uma conta existente ou o administrador.", +"Oracle username and/or password not valid" => "Nome de usuário e/ou senha Oracle inválido(s)", +"MySQL username and/or password not valid" => "Nome de usuário e/ou senha MySQL inválido(s)", +"DB Error: \"%s\"" => "Erro no BD: \"%s\"", +"Offending command was: \"%s\"" => "Comando ofensivo era: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "O usuário MySQL '%s'@'localhost' já existe.", +"Drop this user from MySQL" => "Derrubar este usuário do MySQL", +"MySQL user '%s'@'%%' already exists" => "Usuário MySQL '%s'@'%%' já existe", +"Drop this user from MySQL." => "Derrube este usuário do MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Comando ofensivo era: \"%s\", nome: %s, senha: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Seu servidor web não está configurado corretamente para permitir sincronização de arquivos porque a interface WebDAV parece estar quebrada.", +"Please double check the installation guides." => "Por favor, confira os guias de instalação.", "seconds ago" => "segundos atrás", "1 minute ago" => "1 minuto atrás", "%d minutes ago" => "%d minutos atrás", diff --git a/lib/l10n/pt_PT.php b/lib/l10n/pt_PT.php index e35bb489c49f300eb5ec102ca4dc23faeecbfc47..9bdcfcc9ceda1cd9e20bac07555613b8bbe11efe 100644 --- a/lib/l10n/pt_PT.php +++ b/lib/l10n/pt_PT.php @@ -16,6 +16,26 @@ "Files" => "Ficheiros", "Text" => "Texto", "Images" => "Imagens", +"Set an admin username." => "Definir um nome de utilizador de administrador", +"Set an admin password." => "Definiar uma password de administrador", +"Specify a data folder." => "Especificar a pasta para os dados.", +"%s enter the database username." => "%s introduza o nome de utilizador da base de dados", +"%s enter the database name." => "%s introduza o nome da base de dados", +"%s you may not use dots in the database name" => "%s não é permitido utilizar pontos (.) no nome da base de dados", +"%s set the database host." => "%s defina o servidor da base de dados (geralmente localhost)", +"PostgreSQL username and/or password not valid" => "Nome de utilizador/password do PostgreSQL inválido", +"You need to enter either an existing account or the administrator." => "Precisa de introduzir uma conta existente ou de administrador", +"Oracle username and/or password not valid" => "Nome de utilizador/password do Oracle inválida", +"MySQL username and/or password not valid" => "Nome de utilizador/password do MySQL inválida", +"DB Error: \"%s\"" => "Erro na BD: \"%s\"", +"Offending command was: \"%s\"" => "O comando gerador de erro foi: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "O utilizador '%s'@'localhost' do MySQL já existe.", +"Drop this user from MySQL" => "Eliminar este utilizador do MySQL", +"MySQL user '%s'@'%%' already exists" => "O utilizador '%s'@'%%' do MySQL já existe", +"Drop this user from MySQL." => "Eliminar este utilizador do MySQL", +"Offending command was: \"%s\", name: %s, password: %s" => "O comando gerador de erro foi: \"%s\", nome: %s, password: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "O seu servidor web não está configurado correctamente para autorizar sincronização de ficheiros, pois o interface WebDAV parece estar com problemas.", +"Please double check the installation guides." => "Por favor verifique installation guides.", "seconds ago" => "há alguns segundos", "1 minute ago" => "há 1 minuto", "%d minutes ago" => "há %d minutos", diff --git a/lib/l10n/ru.php b/lib/l10n/ru.php index 5ef2cca3be3dbf7ccfda3c95ceb43c2d35ada8a5..7f1111376ef5da2445c8e896a6971083bb96608e 100644 --- a/lib/l10n/ru.php +++ b/lib/l10n/ru.php @@ -16,6 +16,26 @@ "Files" => "Файлы", "Text" => "Текст", "Images" => "Изображения", +"Set an admin username." => "Установить имя пользователя для admin.", +"Set an admin password." => "становит пароль для admin.", +"Specify a data folder." => "Указать папку данных.", +"%s enter the database username." => "%s введите имя пользователя базы данных.", +"%s enter the database name." => "%s введите имя базы данных.", +"%s you may not use dots in the database name" => "%s Вы не можете использовать точки в имени базы данных", +"%s set the database host." => "%s задайте хост базы данных.", +"PostgreSQL username and/or password not valid" => "Неверное имя пользователя и/или пароль PostgreSQL", +"You need to enter either an existing account or the administrator." => "Вы должны войти или в существующий аккаунт или под администратором.", +"Oracle username and/or password not valid" => "Неверное имя пользователя и/или пароль Oracle", +"MySQL username and/or password not valid" => "Неверное имя пользователя и/или пароль MySQL", +"DB Error: \"%s\"" => "Ошибка БД: \"%s\"", +"Offending command was: \"%s\"" => "Вызываемая команда была: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Пользователь MySQL '%s'@'localhost' уже существует.", +"Drop this user from MySQL" => "Удалить этого пользователя из MySQL", +"MySQL user '%s'@'%%' already exists" => "Пользователь MySQL '%s'@'%%' уже существует", +"Drop this user from MySQL." => "Удалить этого пользователя из MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Вызываемая команда была: \"%s\", имя: %s, пароль: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш веб сервер до сих пор не настроен правильно для возможности синхронизации файлов, похоже что проблема в неисправности интерфейса WebDAV.", +"Please double check the installation guides." => "Пожалуйста, дважды просмотрите инструкции по установке.", "seconds ago" => "менее минуты", "1 minute ago" => "1 минуту назад", "%d minutes ago" => "%d минут назад", diff --git a/lib/l10n/ru_RU.php b/lib/l10n/ru_RU.php index 03da09236ea4812dc8c5887c9751bafd7d31aad5..de77056366233fbd8f6f98a5c2dceda804822893 100644 --- a/lib/l10n/ru_RU.php +++ b/lib/l10n/ru_RU.php @@ -16,6 +16,8 @@ "Files" => "Файлы", "Text" => "Текст", "Images" => "Изображения", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш веб сервер ещё не достаточно точно настроен для возможности синхронизации, т.к. похоже, что интерфейс WebDAV сломан.", +"Please double check the installation guides." => "Пожалуйста проверте дважды гиды по установке.", "seconds ago" => "секунд назад", "1 minute ago" => "1 минуту назад", "%d minutes ago" => "%d минут назад", diff --git a/lib/l10n/sk_SK.php b/lib/l10n/sk_SK.php index 81f23ffdc50b44cc4756eb6593f84c8f6fdfec42..97a4999407fe400f9dcb06d3910f133874ae4b10 100644 --- a/lib/l10n/sk_SK.php +++ b/lib/l10n/sk_SK.php @@ -2,13 +2,13 @@ "Help" => "Pomoc", "Personal" => "Osobné", "Settings" => "Nastavenia", -"Users" => "Užívatelia", +"Users" => "Používatelia", "Apps" => "Aplikácie", -"Admin" => "Správca", +"Admin" => "Administrátor", "ZIP download is turned off." => "Sťahovanie súborov ZIP je vypnuté.", "Files need to be downloaded one by one." => "Súbory musia byť nahrávané jeden za druhým.", "Back to Files" => "Späť na súbory", -"Selected files too large to generate zip file." => "Zvolené súbory sú príliž veľké na vygenerovanie zip súboru.", +"Selected files too large to generate zip file." => "Zvolené súbory sú príliš veľké na vygenerovanie zip súboru.", "couldn't be determined" => "nedá sa zistiť", "Application is not enabled" => "Aplikácia nie je zapnutá", "Authentication error" => "Chyba autentifikácie", @@ -16,6 +16,26 @@ "Files" => "Súbory", "Text" => "Text", "Images" => "Obrázky", +"Set an admin username." => "Zadajte používateľské meno administrátora.", +"Set an admin password." => "Zadajte heslo administrátora.", +"Specify a data folder." => "Zadajte priečinok pre dáta.", +"%s enter the database username." => "Zadajte používateľské meno %s databázy..", +"%s enter the database name." => "Zadajte názov databázy pre %s databázy.", +"%s you may not use dots in the database name" => "V názve databázy %s nemôžete používať bodky", +"%s set the database host." => "Zadajte názov počítača s databázou %s.", +"PostgreSQL username and/or password not valid" => "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné", +"You need to enter either an existing account or the administrator." => "Musíte zadať jestvujúci účet alebo administrátora.", +"Oracle username and/or password not valid" => "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné", +"MySQL username and/or password not valid" => "Používateľské meno a/alebo heslo pre MySQL databázu je neplatné", +"DB Error: \"%s\"" => "Chyba DB: \"%s\"", +"Offending command was: \"%s\"" => "Podozrivý príkaz bol: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Používateľ '%s'@'localhost' už v MySQL existuje.", +"Drop this user from MySQL" => "Zahodiť používateľa z MySQL.", +"MySQL user '%s'@'%%' already exists" => "Používateľ '%s'@'%%' už v MySQL existuje", +"Drop this user from MySQL." => "Zahodiť používateľa z MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Váš webový server nie je správne nastavený na synchronizáciu, pretože rozhranie WebDAV je poškodené.", +"Please double check the installation guides." => "Prosím skontrolujte inštalačnú príručku.", "seconds ago" => "pred sekundami", "1 minute ago" => "pred 1 minútou", "%d minutes ago" => "pred %d minútami", @@ -28,7 +48,7 @@ "%d months ago" => "Pred %d mesiacmi.", "last year" => "minulý rok", "years ago" => "pred rokmi", -"%s is available. Get more information" => "%s je dostupné. Získať viac informácií", +"%s is available. Get more information" => "%s je dostupné. Získať pre viac informácií", "up to date" => "aktuálny", "updates check is disabled" => "sledovanie aktualizácií je vypnuté", "Could not find category \"%s\"" => "Nemožno nájsť danú kategóriu \"%s\"" diff --git a/lib/l10n/sv.php b/lib/l10n/sv.php index 36f00636b2be0144dc81910582feabd81aba7787..63ca60e89cdee59070e7e97fa44e6f336f04da85 100644 --- a/lib/l10n/sv.php +++ b/lib/l10n/sv.php @@ -16,6 +16,8 @@ "Files" => "Filer", "Text" => "Text", "Images" => "Bilder", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Din webbserver är inte korrekt konfigurerad för att tillåta filsynkronisering eftersom WebDAV inte verkar fungera.", +"Please double check the installation guides." => "Var god kontrollera installationsguiden.", "seconds ago" => "sekunder sedan", "1 minute ago" => "1 minut sedan", "%d minutes ago" => "%d minuter sedan", diff --git a/lib/l10n/uk.php b/lib/l10n/uk.php index 053644ddedec933a637035587a595f4e51c53446..415c0a80c277c36d30495dd9b20813c6710d3348 100644 --- a/lib/l10n/uk.php +++ b/lib/l10n/uk.php @@ -16,6 +16,26 @@ "Files" => "Файли", "Text" => "Текст", "Images" => "Зображення", +"Set an admin username." => "Встановіть ім'я адміністратора.", +"Set an admin password." => "Встановіть пароль адміністратора.", +"Specify a data folder." => "Вкажіть теку для даних.", +"%s enter the database username." => "%s введіть ім'я користувача бази даних.", +"%s enter the database name." => "%s введіть назву бази даних.", +"%s you may not use dots in the database name" => "%s не можна використовувати крапки в назві бази даних", +"%s set the database host." => "%s встановити хост бази даних.", +"PostgreSQL username and/or password not valid" => "PostgreSQL ім'я користувача та/або пароль не дійсні", +"You need to enter either an existing account or the administrator." => "Вам потрібно ввести або існуючий обліковий запис або administrator.", +"Oracle username and/or password not valid" => "Oracle ім'я користувача та/або пароль не дійсні", +"MySQL username and/or password not valid" => "MySQL ім'я користувача та/або пароль не дійсні", +"DB Error: \"%s\"" => "Помилка БД: \"%s\"", +"Offending command was: \"%s\"" => "Команда, що викликала проблему: \"%s\"", +"MySQL user '%s'@'localhost' exists already." => "Користувач MySQL '%s'@'localhost' вже існує.", +"Drop this user from MySQL" => "Видалити цього користувача з MySQL", +"MySQL user '%s'@'%%' already exists" => "Користувач MySQL '%s'@'%%' вже існує", +"Drop this user from MySQL." => "Видалити цього користувача з MySQL.", +"Offending command was: \"%s\", name: %s, password: %s" => "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний.", +"Please double check the installation guides." => "Будь ласка, перевірте інструкції по встановленню.", "seconds ago" => "секунди тому", "1 minute ago" => "1 хвилину тому", "%d minutes ago" => "%d хвилин тому", diff --git a/lib/l10n/ur_PK.php b/lib/l10n/ur_PK.php new file mode 100644 index 0000000000000000000000000000000000000000..7e09d79bc68b64088f6219d61a3d8fd07d8cf010 --- /dev/null +++ b/lib/l10n/ur_PK.php @@ -0,0 +1,8 @@ + "مدد", +"Personal" => "ذاتی", +"Settings" => "سیٹینگز", +"Users" => "یوزرز", +"Apps" => "ایپز", +"Admin" => "ایڈمن" +); diff --git a/lib/l10n/vi.php b/lib/l10n/vi.php index 8b7242ae6111cda61f8394d8d3a4272b1fd256c7..ea9660093aee1e4b6c070b94d0034968dc832791 100644 --- a/lib/l10n/vi.php +++ b/lib/l10n/vi.php @@ -9,6 +9,7 @@ "Files need to be downloaded one by one." => "Tập tin cần phải được tải về từng người một.", "Back to Files" => "Trở lại tập tin", "Selected files too large to generate zip file." => "Tập tin được chọn quá lớn để tạo tập tin ZIP.", +"couldn't be determined" => "không thể phát hiện được", "Application is not enabled" => "Ứng dụng không được BẬT", "Authentication error" => "Lỗi xác thực", "Token expired. Please reload page." => "Mã Token đã hết hạn. Hãy tải lại trang.", diff --git a/lib/l10n/zh_TW.php b/lib/l10n/zh_TW.php index 62ab8fedd52150c8f73a7e9c8442338286809041..91b0329e246be3ae94a149187bbbe8ba216f4f37 100644 --- a/lib/l10n/zh_TW.php +++ b/lib/l10n/zh_TW.php @@ -16,6 +16,8 @@ "Files" => "檔案", "Text" => "文字", "Images" => "圖片", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。", +"Please double check the installation guides." => "請參考安裝指南。", "seconds ago" => "幾秒前", "1 minute ago" => "1 分鐘前", "%d minutes ago" => "%d 分鐘前", diff --git a/lib/log.php b/lib/log.php index e869282e88c013c82a155b63da5d388bb43e0891..3f3334801e5e6a9bb6ff9818f41947ab85a175f5 100644 --- a/lib/log.php +++ b/lib/log.php @@ -53,7 +53,9 @@ class OC_Log { // Uncaught exception handler public static function onException($exception) { - self::write('PHP', $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(), self::FATAL); + self::write('PHP', + $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(), + self::FATAL); } //Recoverable errors handler diff --git a/lib/log/owncloud.php b/lib/log/owncloud.php index e53dd5fefcd129099d6ffc8d1177719379ee5151..20df52c27bb114c7082f982d9931d8a9b838a80f 100644 --- a/lib/log/owncloud.php +++ b/lib/log/owncloud.php @@ -81,7 +81,8 @@ class OC_Log_Owncloud { $ch = fgetc($handle); if ($ch == "\n" || $pos == 0) { if ($line != '') { - // Add the first character if at the start of the file, because it doesn't hit the else in the loop + // Add the first character if at the start of the file, + // because it doesn't hit the else in the loop if ($pos == 0) { $line = $ch.$line; } diff --git a/lib/mail.php b/lib/mail.php index 1bb202ac977e193acecdf01cf1cb4847f6786dcf..22194045a7643c2f3448fae871960b93ef84d9c7 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -32,7 +32,8 @@ class OC_Mail { * @param string $bcc * @throws Exception */ - public static function send($toaddress,$toname,$subject,$mailtext,$fromaddress,$fromname,$html=0,$altbody='',$ccaddress='',$ccname='', $bcc='') { + public static function send($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, + $html=0, $altbody='', $ccaddress='', $ccname='', $bcc='') { $SMTPMODE = OC_Config::getValue( 'mail_smtpmode', 'sendmail' ); $SMTPHOST = OC_Config::getValue( 'mail_smtphost', '127.0.0.1' ); @@ -97,7 +98,9 @@ class OC_Mail { $mailo->Send(); unset($mailo); - OC_Log::write('mail', 'Mail from '.$fromname.' ('.$fromaddress.')'.' to: '.$toname.'('.$toaddress.')'.' subject: '.$subject, OC_Log::DEBUG); + OC_Log::write('mail', + 'Mail from '.$fromname.' ('.$fromaddress.')'.' to: '.$toname.'('.$toaddress.')'.' subject: '.$subject, + OC_Log::DEBUG); } catch (Exception $exception) { OC_Log::write('mail', $exception->getMessage(), OC_Log::ERROR); throw($exception); diff --git a/lib/migrate.php b/lib/migrate.php index 87bdd016fe469f4791954f8f9d0db920b52b68df..a0a329705a396a323973818d2c3bbba8e5465d95 100644 --- a/lib/migrate.php +++ b/lib/migrate.php @@ -167,7 +167,19 @@ class OC_Migrate{ self::$content = new OC_Migration_Content( self::$zip ); // Creates a zip with the owncloud system files self::$content->addDir( OC::$SERVERROOT . '/', false, '/'); - foreach (array(".git", "3rdparty", "apps", "core", "files", "l10n", "lib", "ocs", "search", "settings", "tests") as $dir) { + foreach (array( + ".git", + "3rdparty", + "apps", + "core", + "files", + "l10n", + "lib", + "ocs", + "search", + "settings", + "tests" + ) as $dir) { self::$content->addDir( OC::$SERVERROOT . '/' . $dir, true, "/"); } break; @@ -181,7 +193,7 @@ class OC_Migrate{ return json_encode( array( 'success' => false ) ); } return json_encode( array( 'success' => true, 'data' => self::$zippath ) ); - } + } /** * @brief imports a user, or owncloud instance @@ -245,7 +257,9 @@ class OC_Migrate{ } // Import user app data if(file_exists($extractpath . $json->exporteduser . '/migration.db')) { - if( !$appsimported = self::importAppData( $extractpath . $json->exporteduser . '/migration.db', $json, self::$uid ) ) { + if( !$appsimported = self::importAppData( $extractpath . $json->exporteduser . '/migration.db', + $json, + self::$uid ) ) { return json_encode( array( 'success' => false ) ); } } @@ -553,7 +567,9 @@ class OC_Migrate{ return false; } if ( self::$zip->open( self::$zippath, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE ) !== true ) { - OC_Log::write('migration', 'Failed to create the zip with error: '.self::$zip->getStatusString(), OC_Log::ERROR); + OC_Log::write('migration', + 'Failed to create the zip with error: '.self::$zip->getStatusString(), + OC_Log::ERROR); return false; } else { return true; @@ -610,7 +626,9 @@ class OC_Migrate{ if( isset( $info->apps->$id ) ) { // Is the app installed if( !OC_App::isEnabled( $id ) ) { - OC_Log::write( 'migration', 'App: ' . $id . ' is not installed, can\'t import data.', OC_Log::INFO ); + OC_Log::write( 'migration', + 'App: ' . $id . ' is not installed, can\'t import data.', + OC_Log::INFO ); $appsstatus[$id] = 'notsupported'; } else { // Did it succeed on export? @@ -624,7 +642,9 @@ class OC_Migrate{ // Then do the import if( !$appsstatus[$id] = $provider->import( $info->apps->$id, $importinfo ) ) { // Failed to import app - OC_Log::write( 'migration', 'Failed to import app data for user: ' . self::$uid . ' for app: ' . $id, OC_Log::ERROR ); + OC_Log::write( 'migration', + 'Failed to import app data for user: ' . self::$uid . ' for app: ' . $id, + OC_Log::ERROR ); } } else { // Add to failed list diff --git a/lib/migration/content.php b/lib/migration/content.php index e81c8f217ff2ed784552913fe7fefd13131775d0..400a46a434041c7d9a4799a214eb58beb0294f49 100644 --- a/lib/migration/content.php +++ b/lib/migration/content.php @@ -185,13 +185,13 @@ class OC_Migration_Content{ * @return bool */ public function addDir( $dir, $recursive=true, $internaldir='' ) { - $dirname = basename($dir); - $this->zip->addEmptyDir($internaldir . $dirname); - $internaldir.=$dirname.='/'; + $dirname = basename($dir); + $this->zip->addEmptyDir($internaldir . $dirname); + $internaldir.=$dirname.='/'; if( !file_exists( $dir ) ) { return false; } - if ($dirhandle = opendir($dir)) { + if ($dirhandle = opendir($dir)) { while (false !== ( $file = readdir($dirhandle))) { if (( $file != '.' ) && ( $file != '..' )) { @@ -204,11 +204,11 @@ class OC_Migration_Content{ } } closedir($dirhandle); - } else { + } else { OC_Log::write('admin_export', "Was not able to open directory: " . $dir, OC_Log::ERROR); return false; - } - return true; + } + return true; } /** @@ -236,7 +236,9 @@ class OC_Migration_Content{ */ public function finish() { if( !$this->zip->close() ) { - OC_Log::write( 'migration', 'Failed to write the zip file with error: '.$this->zip->getStatusString(), OC_Log::ERROR ); + OC_Log::write( 'migration', + 'Failed to write the zip file with error: '.$this->zip->getStatusString(), + OC_Log::ERROR ); return false; } $this->cleanup(); diff --git a/lib/mimetypes.list.php b/lib/mimetypes.list.php index fc87d011ecdc13f1489c0a614112dbdb352af402..86ce9c6c237533fe0884d1fd788fdba165c428e0 100644 --- a/lib/mimetypes.list.php +++ b/lib/mimetypes.list.php @@ -97,4 +97,6 @@ return array( 'ai' => 'application/illustrator', 'epub' => 'application/epub+zip', 'mobi' => 'application/x-mobipocket-ebook', + 'exe' => 'application', + 'msi' => 'application' ); diff --git a/lib/ocs.php b/lib/ocs.php index 879aaa7668739be87f3d2e50df6f5358be914872..93e8931ce2eabe9603610d83624f500c05bcb54a 100644 --- a/lib/ocs.php +++ b/lib/ocs.php @@ -87,9 +87,10 @@ class OC_OCS { } $format = self::readData($method, 'format', 'text', ''); - $txt='Invalid query, please check the syntax. API specifications are here: http://www.freedesktop.org/wiki/Specifications/open-collaboration-services. DEBUG OUTPUT:'."\n"; + $txt='Invalid query, please check the syntax. API specifications are here:' + .' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services. DEBUG OUTPUT:'."\n"; $txt.=OC_OCS::getDebugOutput(); - echo(OC_OCS::generateXml($format,'failed',999,$txt)); + echo(OC_OCS::generateXml($format, 'failed', 999, $txt)); } @@ -122,7 +123,8 @@ class OC_OCS { * @param int $itemsperpage * @return string xml/json */ - private static function generateXml($format, $status, $statuscode, $message, $data=array(), $tag='', $tagattribute='', $dimension=-1, $itemscount='', $itemsperpage='') { + private static function generateXml($format, $status, $statuscode, + $message, $data=array(), $tag='', $tagattribute='', $dimension=-1, $itemscount='', $itemsperpage='') { if($format=='json') { $json=array(); $json['status']=$status; @@ -173,7 +175,7 @@ class OC_OCS { } } xmlwriter_end_element($writer); - } + } xmlwriter_end_element($writer); }elseif($dimension=='3') { diff --git a/lib/ocs/cloud.php b/lib/ocs/cloud.php index 179ed8f31077f852ce58612a6cb6c8a8eb47b948..5553ae382151d50b936a4b8ab32ca58323b21a2b 100644 --- a/lib/ocs/cloud.php +++ b/lib/ocs/cloud.php @@ -31,7 +31,7 @@ class OC_OCS_Cloud { foreach($apps as $app) { $info = OC_App::getAppInfo($app); if(isset($info['standalone'])) { - $newValue = array('name'=>$info['name'],'url'=>OC_Helper::linkToAbsolute($app,''),'icon'=>''); + $newValue = array('name'=>$info['name'], 'url'=>OC_Helper::linkToAbsolute($app, ''), 'icon'=>''); $values[] = $newValue; } } @@ -45,7 +45,7 @@ class OC_OCS_Cloud { if(OC_User::userExists($parameters['user'])) { // calculate the disc space $userDir = '/'.$parameters['user'].'/files'; - \OC\Files\Filesystem::init($useDir); + \OC\Files\Filesystem::init($parameters['user'], $userDir); $rootInfo = \OC\Files\Filesystem::getFileInfo(''); $sharedInfo = \OC\Files\Filesystem::getFileInfo('/Shared'); $used = $rootInfo['size'] - $sharedInfo['size']; diff --git a/lib/ocs/privatedata.php b/lib/ocs/privatedata.php index 311b24269dd3087bdf889d0be366977a55024641..4dfd0a6e66e3482edc454319471f644426a41b5b 100644 --- a/lib/ocs/privatedata.php +++ b/lib/ocs/privatedata.php @@ -29,7 +29,7 @@ class OC_OCS_Privatedata { $user = OC_User::getUser(); $app = addslashes(strip_tags($parameters['app'])); $key = addslashes(strip_tags($parameters['key'])); - $result = OC_OCS::getData($user,$app,$key); + $result = OC_OCS::getData($user, $app, $key); $xml = array(); foreach($result as $i=>$log) { $xml[$i]['key']=$log['key']; @@ -46,7 +46,7 @@ class OC_OCS_Privatedata { $app = addslashes(strip_tags($parameters['app'])); $key = addslashes(strip_tags($parameters['key'])); $value = OC_OCS::readData('post', 'value', 'text'); - if(OC_Preferences::setValue($user, $app, $key, $value)){ + if(OC_Preferences::setValue($user, $app, $key, $value)) { return new OC_OCS_Result(null, 100); } } diff --git a/lib/ocsclient.php b/lib/ocsclient.php index 30163c1e403f27ffb5eabd43e3f802f31362b372..bd0302a2a81f97d2061b5d6476dab74949ac4941 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -32,7 +32,8 @@ class OC_OCSClient{ * @brief Get the url of the OCS AppStore server. * @returns string of the AppStore server * - * This function returns the url of the OCS AppStore server. It´s possible to set it in the config file or it will fallback to the default + * This function returns the url of the OCS AppStore server. It´s possible + * to set it in the config file or it will fallback to the default */ private static function getAppStoreURL() { $url = OC_Config::getValue('appstoreurl', 'http://api.apps.owncloud.com/v1'); @@ -42,7 +43,8 @@ class OC_OCSClient{ /** * @brief Get the url of the OCS KB server. * @returns string of the KB server - * This function returns the url of the OCS knowledge base server. It´s possible to set it in the config file or it will fallback to the default + * This function returns the url of the OCS knowledge base server. It´s + * possible to set it in the config file or it will fallback to the default */ private static function getKBURL() { $url = OC_Config::getValue('knowledgebaseurl', 'http://api.apps.owncloud.com/v1'); @@ -109,7 +111,8 @@ class OC_OCSClient{ $version='&version='.implode('x', \OC_Util::getVersion()); $filterurl='&filter='.urlencode($filter); - $url=OC_OCSClient::getAppStoreURL().'/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page='.urlencode($page).'&pagesize=100'.$filterurl.$version; + $url=OC_OCSClient::getAppStoreURL().'/content/data?categories='.urlencode($categoriesstring) + .'&sortmode=new&page='.urlencode($page).'&pagesize=100'.$filterurl.$version; $apps=array(); $xml=OC_OCSClient::getOCSresponse($url); diff --git a/lib/preferences.php b/lib/preferences.php index 6270457834dbebde0b2139b4aaa7c69217ed7f71..5f6434bcf9cd9a12b1ab43d7a8e4dd9fa796acef 100644 --- a/lib/preferences.php +++ b/lib/preferences.php @@ -114,7 +114,8 @@ class OC_Preferences{ */ public static function getValue( $user, $app, $key, $default = null ) { // Try to fetch the value, return default if not exists. - $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); $result = $query->execute( array( $user, $app, $key )); $row = $result->fetchRow(); @@ -138,16 +139,19 @@ class OC_Preferences{ */ public static function setValue( $user, $app, $key, $value ) { // Check if the key does exist - $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); $values=$query->execute(array($user, $app, $key))->fetchAll(); $exists=(count($values)>0); if( !$exists ) { - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*preferences` ( `userid`, `appid`, `configkey`, `configvalue` ) VALUES( ?, ?, ?, ? )' ); + $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*preferences`' + .' ( `userid`, `appid`, `configkey`, `configvalue` ) VALUES( ?, ?, ?, ? )' ); $query->execute( array( $user, $app, $key, $value )); } else{ - $query = OC_DB::prepare( 'UPDATE `*PREFIX*preferences` SET `configvalue` = ? WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'UPDATE `*PREFIX*preferences` SET `configvalue` = ?' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); $query->execute( array( $value, $user, $app, $key )); } return true; @@ -164,7 +168,8 @@ class OC_Preferences{ */ public static function deleteKey( $user, $app, $key ) { // No need for more comments - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); + $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); $query->execute( array( $user, $app, $key )); return true; diff --git a/lib/public/api.php b/lib/public/api.php index 95d333f21658afaa35adfbe7bc5d72b798274c19..d94b68e908a58680373cda50d4335e0821431cee 100644 --- a/lib/public/api.php +++ b/lib/public/api.php @@ -37,7 +37,8 @@ class API { * @param array $defaults * @param array $requirements */ - public static function register($method, $url, $action, $app, $authLevel = OC_API::USER_AUTH, $defaults = array(), $requirements = array()){ + public static function register($method, $url, $action, $app, $authLevel = OC_API::USER_AUTH, + $defaults = array(), $requirements = array()){ \OC_API::register($method, $url, $action, $app, $authLevel, $defaults, $requirements); } diff --git a/lib/public/config.php b/lib/public/config.php index 1f163d52617a46c59d58a506e77e8a584093b285..8076d640b497cc3c751643f161e0f2200ae7745d 100644 --- a/lib/public/config.php +++ b/lib/public/config.php @@ -35,7 +35,8 @@ namespace OCP; /** - * This class provides functions to read and write configuration data. configuration can be on a system, application or user level + * This class provides functions to read and write configuration data. + * configuration can be on a system, application or user level */ class Config { /** diff --git a/lib/public/files.php b/lib/public/files.php index f6b3e0ee38afd887ee9c76304f0c3205899b4710..700bf574537fb6046743b8680c9152a07f8b9c3c 100644 --- a/lib/public/files.php +++ b/lib/public/files.php @@ -31,7 +31,8 @@ namespace OCP; /** - * This class provides access to the internal filesystem abstraction layer. Use this class exlusively if you want to access files + * This class provides access to the internal filesystem abstraction layer. Use + * this class exlusively if you want to access files */ class Files { /** @@ -61,7 +62,8 @@ class Files { * @return int the number of bytes copied */ public static function streamCopy( $source, $target ) { - return(\OC_Helper::streamCopy( $source, $target )); + list($count, $result) = \OC_Helper::streamCopy( $source, $target ); + return $count; } /** diff --git a/lib/public/iaddressbook.php b/lib/public/iaddressbook.php index 14943747f4800fd5d197cfc8c0853274a4860114..77e8750d9da50fa9da03a21f6a884dbadc47eb43 100644 --- a/lib/public/iaddressbook.php +++ b/lib/public/iaddressbook.php @@ -43,22 +43,22 @@ namespace OCP { * @return array of contacts which are arrays of key-value-pairs */ public function search($pattern, $searchProperties, $options); -// // dummy results -// return array( -// array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c', 'GEO' => '37.386013;-122.082932'), -// array('id' => 5, 'FN' => 'Thomas Tanghus', 'EMAIL' => array('d@e.f', 'g@h.i')), -// ); + // // dummy results + // return array( + // array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c', 'GEO' => '37.386013;-122.082932'), + // array('id' => 5, 'FN' => 'Thomas Tanghus', 'EMAIL' => array('d@e.f', 'g@h.i')), + // ); /** * @param array $properties this array if key-value-pairs defines a contact * @return array representing the contact just created or updated */ public function createOrUpdate($properties); -// // dummy -// return array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c', -// 'PHOTO' => 'VALUE=uri:http://www.abc.com/pub/photos/jqpublic.gif', -// 'ADR' => ';;123 Main Street;Any Town;CA;91921-1234' -// ); + // // dummy + // return array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c', + // 'PHOTO' => 'VALUE=uri:http://www.abc.com/pub/photos/jqpublic.gif', + // 'ADR' => ';;123 Main Street;Any Town;CA;91921-1234' + // ); /** * @return mixed diff --git a/lib/public/share.php b/lib/public/share.php index d46bee26dd4bb5a028c46d01d796933efa19a2e8..37cf0838ed1288e9af440f0ee3d1e465f73bdb24 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -37,10 +37,17 @@ class Share { const SHARE_TYPE_REMOTE = 6; /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask - * Construct permissions for share() and setPermissions with Or (|) e.g. Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE - * Check if permission is granted with And (&) e.g. Check if delete is granted: if ($permissions & PERMISSION_DELETE) - * Remove permissions with And (&) and Not (~) e.g. Remove the update permission: $permissions &= ~PERMISSION_UPDATE - * Apps are required to handle permissions on their own, this class only stores and manages the permissions of shares + * Construct permissions for share() and setPermissions with Or (|) e.g. + * Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE + * + * Check if permission is granted with And (&) e.g. Check if delete is + * granted: if ($permissions & PERMISSION_DELETE) + * + * Remove permissions with And (&) and Not (~) e.g. Remove the update + * permission: $permissions &= ~PERMISSION_UPDATE + * + * Apps are required to handle permissions on their own, this class only + * stores and manages the permissions of shares * @see lib/public/constants.php */ @@ -66,14 +73,21 @@ class Share { public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { if (self::isEnabled()) { if (!isset(self::$backendTypes[$itemType])) { - self::$backendTypes[$itemType] = array('class' => $class, 'collectionOf' => $collectionOf, 'supportedFileExtensions' => $supportedFileExtensions); + self::$backendTypes[$itemType] = array( + 'class' => $class, + 'collectionOf' => $collectionOf, + 'supportedFileExtensions' => $supportedFileExtensions + ); if(count(self::$backendTypes) === 1) { \OC_Util::addScript('core', 'share'); \OC_Util::addStyle('core', 'share'); } return true; } - \OC_Log::write('OCP\Share', 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'].' is already registered for '.$itemType, \OC_Log::WARN); + \OC_Log::write('OCP\Share', + 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] + .' is already registered for '.$itemType, + \OC_Log::WARN); } return false; } @@ -99,8 +113,10 @@ class Share { * @param int Number of items to return (optional) Returns all by default * @return Return depends on format */ - public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, $limit, $includeCollections); + public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, + $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, $limit, $includeCollections); } /** @@ -110,8 +126,10 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections); + public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, 1, $includeCollections); } /** @@ -121,8 +139,10 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections, true); + public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, + $parameters, 1, $includeCollections, true); } /** @@ -133,7 +153,8 @@ class Share { * @return Item */ public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { - return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1); + return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, + null, 1); } /** @@ -142,7 +163,7 @@ class Share { * @return Item */ public static function getShareByToken($token) { - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?',1); + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?', 1); $result = $query->execute(array($token)); if (\OC_DB::isError($result)) { \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', token=' . $token, \OC_Log::ERROR); @@ -157,8 +178,10 @@ class Share { * @param int Number of items to return (optional) Returns all by default * @return Return depends on format */ - public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, $parameters, $limit, $includeCollections); + public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, + $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, + $parameters, $limit, $includeCollections); } /** @@ -168,8 +191,10 @@ class Share { * @param int Format (optional) Format type must be defined by the backend * @return Return depends on format */ - public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, $parameters, -1, $includeCollections); + public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, + $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, + $parameters, -1, $includeCollections); } /** @@ -199,14 +224,18 @@ class Share { if ($sharingPolicy == 'groups_only') { $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); if (empty($inGroup)) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; + $message = 'Sharing '.$itemSource.' failed, because the user ' + .$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } } // Check if the item source is already shared with the user, either from the same owner or a different user - if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same owner and is not a user share, this use case is for increasing permissions for a specific user + if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, + $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same + // owner and is not a user share, this use case is for increasing + // permissions for a specific user if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); @@ -220,14 +249,18 @@ class Share { throw new \Exception($message); } if ($sharingPolicy == 'groups_only' && !\OC_Group::inGroup($uidOwner, $shareWith)) { - $message = 'Sharing '.$itemSource.' failed, because '.$uidOwner.' is not a member of the group '.$shareWith; + $message = 'Sharing '.$itemSource.' failed, because ' + .$uidOwner.' is not a member of the group '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } // Check if the item source is already shared with the group, either from the same owner or a different user // The check for each user in the group is done inside the put() function - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same owner and is not a group share, this use case is for increasing permissions for a specific user + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, + null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same + // owner and is not a group share, this use case is for increasing + // permissions for a specific user if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); @@ -242,7 +275,8 @@ class Share { } else if ($shareType === self::SHARE_TYPE_LINK) { if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { // when updating a link share - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1)) { + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, + $uidOwner, self::FORMAT_NONE, null, 1)) { // remember old token $oldToken = $checkExists['token']; //delete the old share @@ -262,7 +296,8 @@ class Share { } else { $token = \OC_Util::generate_random_bytes(self::TOKEN_LENGTH); } - $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, $token); + $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, + null, $token); if ($result) { return $token; } else { @@ -341,14 +376,15 @@ class Share { * @return Returns true on success or false on failure */ public static function unshare($itemType, $itemSource, $shareType, $shareWith) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1)) { + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), + self::FORMAT_NONE, null, 1)) { // Pass all the vars we have for now, they may be useful \OC_Hook::emit('OCP\Share', 'pre_unshare', array( 'itemType' => $itemType, 'itemSource' => $itemSource, 'shareType' => $shareType, 'shareWith' => $shareWith, - )); + )); self::delete($item['id']); return true; } @@ -368,7 +404,7 @@ class Share { 'itemType' => $itemType, 'itemSource' => $itemSource, 'shares' => $shares - )); + )); foreach ($shares as $share) { self::delete($share['id']); } @@ -389,9 +425,16 @@ class Share { public static function unshareFromSelf($itemType, $itemTarget) { if ($item = self::getItemSharedWith($itemType, $itemTarget)) { if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { - // Insert an extra row for the group share and set permission to 0 to prevent it from showing up for the user - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], $item['id'], self::$shareTypeGroupUserUnique, \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], $item['file_target'])); + // Insert an extra row for the group share and set permission + // to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share`' + .' (`item_type`, `item_source`, `item_target`, `parent`, `share_type`,' + .' `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`)' + .' VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], + $item['id'], self::$shareTypeGroupUserUnique, + \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], + $item['file_target'])); \OC_DB::insertid('*PREFIX*share'); // Delete all reshares by this user of the group share self::delete($item['id'], true, \OC_User::getUser()); @@ -418,13 +461,16 @@ class Share { * @return Returns true on success or false on failure */ public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { - // Check if this item is a reshare and verify that the permissions granted don't exceed the parent shared item + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, + \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { + // Check if this item is a reshare and verify that the permissions + // granted don't exceed the parent shared item if (isset($item['parent'])) { $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); $result = $query->execute(array($item['parent']))->fetchRow(); if (~(int)$result['permissions'] & $permissions) { - $message = 'Setting permissions for '.$itemSource.' failed, because the permissions exceed permissions granted to '.\OC_User::getUser(); + $message = 'Setting permissions for '.$itemSource.' failed,' + .' because the permissions exceed permissions granted to '.\OC_User::getUser(); \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } @@ -441,9 +487,11 @@ class Share { $parents = array($item['id']); while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' + .' WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); - // Reset parents array, only go through loop again if items are found that need permissions removed + // Reset parents array, only go through loop again if + // items are found that need permissions removed $parents = array(); while ($item = $result->fetchRow()) { // Check if permissions need to be removed @@ -457,7 +505,8 @@ class Share { // Remove the permissions for all reshares of this item if (!empty($ids)) { $ids = "'".implode("','", $ids)."'"; - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ? WHERE `id` IN ('.$ids.')'); + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ?' + .' WHERE `id` IN ('.$ids.')'); $query->execute(array($permissions)); } } @@ -470,7 +519,8 @@ class Share { } public static function setExpirationDate($itemType, $itemSource, $date) { - if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { + if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), + self::FORMAT_NONE, null, -1, false)) { if (!empty($items)) { if ($date == '') { $date = null; @@ -533,7 +583,8 @@ class Share { if (!self::getBackend($itemType) instanceof Share_Backend_Collection || $itemType != 'folder') { unset($collectionTypes[0]); } - // Return array if collections were found or the item type is a collection itself - collections can be inside collections + // Return array if collections were found or the item type is a + // collection itself - collections can be inside collections if (count($collectionTypes) > 0) { return $collectionTypes; } @@ -556,7 +607,9 @@ class Share { * See public functions getItem(s)... for parameter usage * */ - private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false) { + private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, + $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, + $includeCollections = false, $itemShareWithBySource = false) { if (!self::isEnabled()) { if ($limit == 1 || (isset($uidOwner) && isset($item))) { return false; @@ -565,7 +618,8 @@ class Share { } } $backend = self::getBackend($itemType); - // Get filesystem root to add it to the file target and remove from the file source, match file_source with the file cache + // Get filesystem root to add it to the file target and remove from the + // file source, match file_source with the file cache if ($itemType == 'file' || $itemType == 'folder') { $root = \OC\Files\Filesystem::getRoot(); $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid`'; @@ -668,7 +722,8 @@ class Share { } if ($limit != -1 && !$includeCollections) { if ($shareType == self::$shareTypeUserAndGroups) { - // Make sure the unique user target is returned if it exists, unique targets should follow the group share in the database + // Make sure the unique user target is returned if it exists, + // unique targets should follow the group share in the database // If the limit is not 1, the filtering can be done later $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; } @@ -684,16 +739,20 @@ class Share { // TODO Optimize selects if ($format == self::FORMAT_STATUSES) { if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `file_source`, `path`, `expiration`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`,' + .' `share_type`, `file_source`, `path`, `expiration`'; } else { $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `expiration`'; } } else { if (isset($uidOwner)) { if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`, `expiration`, `token`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`,' + .' `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`,' + .' `expiration`, `token`'; } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`, `stime`, `file_source`, `expiration`, `token`'; + $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`,' + .' `stime`, `file_source`, `expiration`, `token`'; } } else { if ($fileDependent) { @@ -702,11 +761,13 @@ class Share { || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT ) { $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `uid_owner`, ' - .'`share_type`, `share_with`, `file_source`, `path`, `file_target`, ' - .'`permissions`, `expiration`, `storage`, `*PREFIX*filecache`.`parent` as `file_parent`, ' - .'`name` `mtime`, `mimetype`, `mimepart`, `size`, `encrypted`, `etag`'; + .'`share_type`, `share_with`, `file_source`, `path`, `file_target`, ' + .'`permissions`, `expiration`, `storage`, `*PREFIX*filecache`.`parent` as `file_parent`, ' + .'`name`, `mtime`, `mimetype`, `mimepart`, `size`, `encrypted`, `etag`'; } else { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`, `token`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, + `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, + `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`, `token`'; } } else { $select = '*'; @@ -717,7 +778,9 @@ class Share { $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); $result = $query->execute($queryArgs); if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, \OC_Log::ERROR); + \OC_Log::write('OCP\Share', + \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, + \OC_Log::ERROR); } $items = array(); $targets = array(); @@ -735,7 +798,8 @@ class Share { } else if (!isset($uidOwner)) { // Check if the same target already exists if (isset($targets[$row[$column]])) { - // Check if the same owner shared with the user twice through a group and user share - this is allowed + // Check if the same owner shared with the user twice + // through a group and user share - this is allowed $id = $targets[$row[$column]]; if ($items[$id]['uid_owner'] == $row['uid_owner']) { // Switch to group share type to ensure resharing conditions aren't bypassed @@ -743,8 +807,10 @@ class Share { $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; $items[$id]['share_with'] = $row['share_with']; } - // Switch ids if sharing permission is granted on only one share to ensure correct parent is used if resharing - if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE && (int)$row['permissions'] & PERMISSION_SHARE) { + // Switch ids if sharing permission is granted on only + // one share to ensure correct parent is used if resharing + if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE + && (int)$row['permissions'] & PERMISSION_SHARE) { $items[$row['id']] = $items[$id]; $switchedItems[$id] = $row['id']; unset($items[$id]); @@ -782,7 +848,7 @@ class Share { if ( isset($row['uid_owner']) && $row['uid_owner'] != '') { $row['displayname_owner'] = \OCP\User::getDisplayName($row['uid_owner']); } - + $items[$row['id']] = $row; } if (!empty($items)) { @@ -798,7 +864,8 @@ class Share { } // Check if this is a collection of the requested item type if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { - if (($collectionBackend = self::getBackend($row['item_type'])) && $collectionBackend instanceof Share_Backend_Collection) { + if (($collectionBackend = self::getBackend($row['item_type'])) + && $collectionBackend instanceof Share_Backend_Collection) { // Collections can be inside collections, check if the item is a collection if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { $collectionItems[] = $row; @@ -825,7 +892,8 @@ class Share { $meta = \OC\Files\Filesystem::getFileInfo($child['file_path']); $childItem['file_source'] = $meta['fileid']; } - $childItem['file_target'] = \OC\Files\Filesystem::normalizePath($child['file_path']); + $childItem['file_target'] = + \OC\Files\Filesystem::normalizePath($child['file_path']); } if (isset($item)) { if ($childItem[$column] == $item) { @@ -898,7 +966,8 @@ class Share { * @param bool|array Parent folder target (optional) * @return bool Returns true on success or false on failure */ - private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder = null, $token = null) { + private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $permissions, $parentFolder = null, $token = null) { $backend = self::getBackend($itemType); // Check if this is a reshare if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { @@ -911,7 +980,8 @@ class Share { // Check if share permissions is granted if ((int)$checkReshare['permissions'] & PERMISSION_SHARE) { if (~(int)$checkReshare['permissions'] & $permissions) { - $message = 'Sharing '.$itemSource.' failed, because the permissions exceed permissions granted to '.$uidOwner; + $message = 'Sharing '.$itemSource + .' failed, because the permissions exceed permissions granted to '.$uidOwner; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } else { @@ -933,7 +1003,8 @@ class Share { $suggestedItemTarget = null; $suggestedFileTarget = null; if (!$backend->isValidSource($itemSource, $uidOwner)) { - $message = 'Sharing '.$itemSource.' failed, because the sharing backend for '.$itemType.' could not find its source'; + $message = 'Sharing '.$itemSource.' failed, because the sharing backend for ' + .$itemType.' could not find its source'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); throw new \Exception($message); } @@ -956,14 +1027,18 @@ class Share { $fileSource = null; } } - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`, `token`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`,' + .' `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' + .' `file_target`, `token`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); // Share with a group if ($shareType == self::SHARE_TYPE_GROUP) { - $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], $uidOwner, $suggestedItemTarget); + $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], + $uidOwner, $suggestedItemTarget); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, + $shareWith['group'], $uidOwner, $suggestedFileTarget); // Set group default file target for future use $parentFolders[0]['folder'] = $groupFileTarget; } else { @@ -972,21 +1047,25 @@ class Share { $parent = $parentFolder[0]['id']; } } else { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], + $uidOwner, $suggestedFileTarget); } } else { $groupFileTarget = null; } - $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); + $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, + $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); // Save this id, any extra rows for this group share will need to reference it $parent = \OC_DB::insertid('*PREFIX*share'); // Loop through all users of this group in case we need to add an extra row foreach ($shareWith['users'] as $uid) { - $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedItemTarget, $parent); + $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedItemTarget, $parent); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedFileTarget, $parent); if ($fileTarget != $groupFileTarget) { $parentFolders[$uid]['folder'] = $fileTarget; } @@ -995,7 +1074,8 @@ class Share { $parent = $parentFolder[$uid]['id']; } } else { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, + $uid, $uidOwner, $suggestedFileTarget, $parent); } } else { $fileTarget = null; @@ -1016,7 +1096,9 @@ class Share { )); // Insert an extra row for the group share if the item or file target is unique for this user if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), $fileSource, $fileTarget, $token)); + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, + self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), + $fileSource, $fileTarget, $token)); $id = \OC_DB::insertid('*PREFIX*share'); } } @@ -1025,23 +1107,27 @@ class Share { return $parentFolders; } } else { - $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedItemTarget); + $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $suggestedItemTarget); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, + $uidOwner, $suggestedFileTarget); $parentFolders['folder'] = $fileTarget; } else { $fileTarget = $parentFolder['folder'].$itemSource; $parent = $parentFolder['id']; } } else { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, + $suggestedFileTarget); } } else { $fileTarget = null; } - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, $permissions, time(), $fileSource, $fileTarget, $token)); + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, + $permissions, time(), $fileSource, $fileTarget, $token)); $id = \OC_DB::insertid('*PREFIX*share'); \OC_Hook::emit('OCP\Share', 'post_shared', array( 'itemType' => $itemType, @@ -1076,7 +1162,8 @@ class Share { * @param int The id of the parent group share (optional) * @return string Item target */ - private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null) { + private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, + $suggestedTarget = null, $groupParent = null) { $backend = self::getBackend($itemType); if ($shareType == self::SHARE_TYPE_LINK) { if (isset($suggestedTarget)) { @@ -1143,18 +1230,28 @@ class Share { // Find similar targets to improve backend's chances to generate a unqiue target if ($userAndGroups) { if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` IN (\'file\', \'folder\')' + .' AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, + self::$shareTypeGroupUserUnique)); } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` = ? AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, + self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); } } else { if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` = ? AND `share_with` = ?'); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` IN (\'file\', \'folder\')' + .' AND `share_type` = ? AND `share_with` = ?'); $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`' + .' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); } } @@ -1182,21 +1279,33 @@ class Share { $parents = array($parent); while (!empty($parents)) { $parents = "'".implode("','", $parents)."'"; - // Check the owner on the first search of reshares, useful for finding and deleting the reshares by a single user of a group share + // Check the owner on the first search of reshares, useful for + // finding and deleting the reshares by a single user of a group share if (count($ids) == 1 && isset($uidOwner)) { - $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); + $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`' + .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); $result = $query->execute(array($uidOwner)); } else { - $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); + $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`' + .' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); $result = $query->execute(); } // Reset parents array, only go through loop again if items are found $parents = array(); while ($item = $result->fetchRow()) { - // Search for a duplicate parent share, this occurs when an item is shared to the same user through a group and user or the same item is shared by different users + // Search for a duplicate parent share, this occurs when an + // item is shared to the same user through a group and user or the + // same item is shared by different users $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `item_type` = ? AND `item_target` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\') AND `uid_owner` != ? AND `id` != ?'); - $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, $item['uid_owner'], $item['parent']))->fetchRow(); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`' + .' WHERE `item_type` = ?' + .' AND `item_target` = ?' + .' AND `share_type` IN (?,?,?)' + .' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')' + .' AND `uid_owner` != ? AND `id` != ?'); + $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], + self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, + $item['uid_owner'], $item['parent']))->fetchRow(); if ($duplicateParent) { // Change the parent to the other item id if share permission is granted if ($duplicateParent['permissions'] & PERMISSION_SHARE) { @@ -1225,7 +1334,8 @@ class Share { public static function post_deleteUser($arguments) { // Delete any items shared with the deleted user - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`' + .' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); // Delete any items the deleted user shared $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); @@ -1239,21 +1349,27 @@ class Share { // Find the group shares and check if the user needs a unique target $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); while ($item = $result->fetchRow()) { if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { $itemTarget = null; } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); } if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); } else { $fileTarget = null; } // Insert an extra row for the group share if the item or file target is unique for this user if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], $item['stime'], $item['file_source'], $fileTarget)); + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); \OC_DB::insertid('*PREFIX*share'); } } @@ -1261,8 +1377,10 @@ class Share { public static function post_removeFromGroup($arguments) { // TODO Don't call if user deleted? - $query = \OC_DB::prepare('SELECT `id`, `share_type` FROM `*PREFIX*share` WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, $arguments['uid'])); + $query = \OC_DB::prepare('SELECT `id`, `share_type` FROM `*PREFIX*share`' + .' WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, + $arguments['uid'])); while ($item = $result->fetchRow()) { if ($item['share_type'] == self::SHARE_TYPE_GROUP) { // Delete all reshares by this user of the group share @@ -1319,10 +1437,18 @@ interface Share_Backend { * @param int Format * @return ? * - * The items array is a 3-dimensional array with the item_source as the first key and the share id as the second key to an array with the share info. + * The items array is a 3-dimensional array with the item_source as the + * first key and the share id as the second key to an array with the share + * info. + * * The key/value pairs included in the share info depend on the function originally called: - * If called by getItem(s)Shared: id, item_type, item, item_source, share_type, share_with, permissions, stime, file_source - * If called by getItem(s)SharedWith: id, item_type, item, item_source, item_target, share_type, share_with, permissions, stime, file_source, file_target + * If called by getItem(s)Shared: id, item_type, item, item_source, + * share_type, share_with, permissions, stime, file_source + * + * If called by getItem(s)SharedWith: id, item_type, item, item_source, + * item_target, share_type, share_with, permissions, stime, file_source, + * file_target + * * This function allows the backend to control the output of shared items with custom formats. * It is only called through calls to the public getItem(s)Shared(With) functions. */ diff --git a/lib/public/template.php b/lib/public/template.php index 4cda36508668264a966624c4f5307bb92596ab22..ccf19cf052cbefc4a7e52c7a22f82cb898560858 100644 --- a/lib/public/template.php +++ b/lib/public/template.php @@ -99,7 +99,8 @@ function html_select_options($options, $selected, $params=array()) { /** - * This class provides the template system for owncloud. You can use it to load specific templates, add data and generate the html code + * This class provides the template system for owncloud. You can use it to load + * specific templates, add data and generate the html code */ class Template extends \OC_Template { diff --git a/lib/public/user.php b/lib/public/user.php index de52055a4c5cd488992f4bbc0781e193c2e1f120..9edebe0e7cf5ccc822b84f59193867403ba3b6d7 100644 --- a/lib/public/user.php +++ b/lib/public/user.php @@ -31,7 +31,8 @@ namespace OCP; /** - * This class provides access to the user management. You can get information about the currently logged in user and the permissions for example + * This class provides access to the user management. You can get information + * about the currently logged in user and the permissions for example */ class User { /** @@ -51,25 +52,25 @@ class User { public static function getUsers($search = '', $limit = null, $offset = null) { return \OC_USER::getUsers(); } - - /** - * @brief get the user display name of the user currently logged in. - * @return string display name - */ - public static function getDisplayName($user=null) { - return \OC_USER::getDisplayName($user); + + /** + * @brief get the user display name of the user currently logged in. + * @return string display name + */ + public static function getDisplayName($user=null) { + return \OC_USER::getDisplayName($user); } - - /** - * @brief Get a list of all display names - * @returns array with all display names (value) and the correspondig uids (key) - * - * Get a list of all display names and user ids. - */ - public static function getDisplayNames($search = '', $limit = null, $offset = null) { - return \OC_USER::getDisplayNames($search, $limit, $offset); + + /** + * @brief Get a list of all display names + * @returns array with all display names (value) and the correspondig uids (key) + * + * Get a list of all display names and user ids. + */ + public static function getDisplayNames($search = '', $limit = null, $offset = null) { + return \OC_USER::getDisplayNames($search, $limit, $offset); } - + /** * @brief Check if the user is logged in * @returns true/false diff --git a/lib/public/util.php b/lib/public/util.php index 968ca891b4c83cc160e7d836a9fda55eaad04876..13498b260ef88990f4f626f313cb332552d18ce1 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -59,9 +59,11 @@ class Util { * @param string $fromname * @param bool $html */ - public static function sendMail( $toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html = 0, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '') { + public static function sendMail( $toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, + $html = 0, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '') { // call the internal mail class - \OC_MAIL::send($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html, $altbody, $ccaddress, $ccname, $bcc); + \OC_MAIL::send($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, + $html, $altbody, $ccaddress, $ccname, $bcc); } /** @@ -147,6 +149,20 @@ class Util { return \OC_Helper::linkToPublic($service); } + /** + * @brief Creates an url using a defined route + * @param $route + * @param array $parameters + * @return + * @internal param array $args with param=>value, will be appended to the returned url + * @returns the url + * + * Returns a url to the given app and file. + */ + public static function linkToRoute( $route, $parameters = array() ) { + return \OC_Helper::linkToRoute($route, $parameters); + } + /** * @brief Creates an url * @param string $app app @@ -326,7 +342,8 @@ class Util { /** * @brief Used to sanitize HTML * - * This function is used to sanitize HTML and should be applied on any string or array of strings before displaying it on a web page. + * This function is used to sanitize HTML and should be applied on any + * string or array of strings before displaying it on a web page. * * @param string|array of strings * @return array with sanitized strings or a single sinitized string, depends on the input parameter. diff --git a/lib/request.php b/lib/request.php index 1661a1406ca721a53c5407082454d965913499e7..30a25df23ab850e477bd64eac90ab72d99fcea4b 100755 --- a/lib/request.php +++ b/lib/request.php @@ -114,8 +114,8 @@ class OC_Request { switch($encoding) { - case 'ISO-8859-1' : - $path_info = utf8_encode($path_info); + case 'ISO-8859-1' : + $path_info = utf8_encode($path_info); } // end copy @@ -149,4 +149,16 @@ class OC_Request { return 'gzip'; return false; } + + /** + * @brief Check if the requester sent along an mtime + * @returns false or an mtime + */ + static public function hasModificationTime () { + if (isset($_SERVER['HTTP_X_OC_MTIME'])) { + return $_SERVER['HTTP_X_OC_MTIME']; + } else { + return false; + } + } } diff --git a/lib/search.php b/lib/search.php index e5a65f7157df6ec68ddea29bff6308cd8455f573..b9c75dfc33308523ce8afa9c28240105e2abb212 100644 --- a/lib/search.php +++ b/lib/search.php @@ -57,14 +57,14 @@ class OC_Search{ } return $results; } - + /** * remove an existing search provider * @param string $provider class name of a OC_Search_Provider */ public static function removeProvider($provider) { self::$registeredProviders = array_filter( - self::$registeredProviders, + self::$registeredProviders, function ($element) use ($provider) { return ($element['class'] != $provider); } diff --git a/lib/setup.php b/lib/setup.php index 4dd190b99fb159b858c28e79f1b52d6fd8ca2897..8f772e663e2e8f4c9d509f605091b861501fcc64 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -19,40 +19,49 @@ class DatabaseSetupException extends Exception } class OC_Setup { + + public static function getTrans(){ + return OC_L10N::get('lib'); + } + public static function install($options) { + $l = self::getTrans(); + $error = array(); $dbtype = $options['dbtype']; if(empty($options['adminlogin'])) { - $error[] = 'Set an admin username.'; + $error[] = $l->t('Set an admin username.'); } if(empty($options['adminpass'])) { - $error[] = 'Set an admin password.'; + $error[] = $l->t('Set an admin password.'); } if(empty($options['directory'])) { - $error[] = 'Specify a data folder.'; + $error[] = $l->t('Specify a data folder.'); } - if($dbtype=='mysql' or $dbtype == 'pgsql' or $dbtype == 'oci') { //mysql and postgresql needs more config options - if($dbtype=='mysql') + if($dbtype == 'mysql' or $dbtype == 'pgsql' or $dbtype == 'oci' or $dbtype == 'mssql') { //mysql and postgresql needs more config options + if($dbtype == 'mysql') $dbprettyname = 'MySQL'; - else if($dbtype=='pgsql') + else if($dbtype == 'pgsql') $dbprettyname = 'PostgreSQL'; + else if ($dbtype == 'mssql') + $dbprettyname = 'MS SQL Server'; else $dbprettyname = 'Oracle'; if(empty($options['dbuser'])) { - $error[] = "$dbprettyname enter the database username."; + $error[] = $l->t("%s enter the database username.", array($dbprettyname)); } if(empty($options['dbname'])) { - $error[] = "$dbprettyname enter the database name."; + $error[] = $l->t("%s enter the database name.", array($dbprettyname)); } if(substr_count($options['dbname'], '.') >= 1) { - $error[] = "$dbprettyname you may not use dots in the database name"; + $error[] = $l->t("%s you may not use dots in the database name", array($dbprettyname)); } if($dbtype != 'oci' && empty($options['dbhost'])) { - $error[] = "$dbprettyname set the database host."; + $error[] = $l->t("%s set the database host.", array($dbprettyname)); } } @@ -91,7 +100,7 @@ class OC_Setup { $error[] = array( 'error' => $e->getMessage(), 'hint' => $e->getHint() - ); + ); return($error); } catch (Exception $e) { $error[] = array( @@ -116,8 +125,8 @@ class OC_Setup { self::setupPostgreSQLDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $username); } catch (Exception $e) { $error[] = array( - 'error' => 'PostgreSQL username and/or password not valid', - 'hint' => 'You need to enter either an existing account or the administrator.' + 'error' => $l->t('PostgreSQL username and/or password not valid'), + 'hint' => $l->t('You need to enter either an existing account or the administrator.') ); return $error; } @@ -139,7 +148,30 @@ class OC_Setup { self::setupOCIDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $dbtablespace, $username); } catch (Exception $e) { $error[] = array( - 'error' => 'Oracle username and/or password not valid', + 'error' => $l->t('Oracle username and/or password not valid'), + 'hint' => $l->t('You need to enter either an existing account or the administrator.') + ); + return $error; + } + } + elseif ($dbtype == 'mssql') { + $dbuser = $options['dbuser']; + $dbpass = $options['dbpass']; + $dbname = $options['dbname']; + $dbhost = $options['dbhost']; + $dbtableprefix = isset($options['dbtableprefix']) ? $options['dbtableprefix'] : 'oc_'; + + OC_Config::setValue('dbname', $dbname); + OC_Config::setValue('dbhost', $dbhost); + OC_Config::setValue('dbuser', $dbuser); + OC_Config::setValue('dbpassword', $dbpass); + OC_Config::setValue('dbtableprefix', $dbtableprefix); + + try { + self::setupMSSQLDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix); + } catch (Exception $e) { + $error[] = array( + 'error' => 'MS SQL username and/or password not valid', 'hint' => 'You need to enter either an existing account or the administrator.' ); return $error; @@ -167,7 +199,7 @@ class OC_Setup { OC_Appconfig::setValue('core', 'lastupdatedat', microtime(true)); OC_AppConfig::setValue('core', 'remote_core.css', '/core/minimizer.php'); OC_AppConfig::setValue('core', 'remote_core.js', '/core/minimizer.php'); - + OC_Group::createGroup('admin'); OC_Group::addToGroup($username, 'admin'); OC_User::login($username, $password); @@ -190,13 +222,16 @@ class OC_Setup { private static function setupMySQLDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $username) { //check if the database user has admin right + $l = self::getTrans(); $connection = @mysql_connect($dbhost, $dbuser, $dbpass); if(!$connection) { - throw new DatabaseSetupException('MySQL username and/or password not valid','You need to enter either an existing account or the administrator.'); + throw new DatabaseSetupException($l->t('MySQL username and/or password not valid'), + $l->t('You need to enter either an existing account or the administrator.')); } $oldUser=OC_Config::getValue('dbuser', false); - $query="SELECT user FROM mysql.user WHERE user='$dbuser'"; //this should be enough to check for admin rights in mysql + //this should be enough to check for admin rights in mysql + $query="SELECT user FROM mysql.user WHERE user='$dbuser'"; if(mysql_query($query, $connection)) { //use the admin login data for the new database user @@ -226,7 +261,8 @@ class OC_Setup { } //fill the database if needed - $query="select count(*) from information_schema.tables where table_schema='$dbname' AND table_name = '{$dbtableprefix}users';"; + $query='select count(*) from information_schema.tables' + ." where table_schema='$dbname' AND table_name = '{$dbtableprefix}users';"; $result = mysql_query($query, $connection); if($result) { $row=mysql_fetch_row($result); @@ -239,29 +275,35 @@ class OC_Setup { private static function createMySQLDatabase($name, $user, $connection) { //we cant use OC_BD functions here because we need to connect as the administrative user. + $l = self::getTrans(); $query = "CREATE DATABASE IF NOT EXISTS `$name`"; $result = mysql_query($query, $connection); if(!$result) { - $entry='DB Error: "'.mysql_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(mysql_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); } $query="GRANT ALL PRIVILEGES ON `$name` . * TO '$user'"; - $result = mysql_query($query, $connection); //this query will fail if there aren't the right permissons, ignore the error + + //this query will fail if there aren't the right permissions, ignore the error + mysql_query($query, $connection); } private static function createDBUser($name, $password, $connection) { // we need to create 2 accounts, one for global use and one for local user. if we don't specify the local one, // the anonymous user would take precedence when there is one. + $l = self::getTrans(); $query = "CREATE USER '$name'@'localhost' IDENTIFIED BY '$password'"; $result = mysql_query($query, $connection); if (!$result) { - throw new DatabaseSetupException("MySQL user '" . "$name" . "'@'localhost' already exists","Delete this user from MySQL."); + throw new DatabaseSetupException($l->t("MySQL user '%s'@'localhost' exists already.", + array($name)), $l->t("Drop this user from MySQL", array($name))); } $query = "CREATE USER '$name'@'%' IDENTIFIED BY '$password'"; $result = mysql_query($query, $connection); if (!$result) { - throw new DatabaseSetupException("MySQL user '" . "$name" . "'@'%' already exists","Delete this user from MySQL."); + throw new DatabaseSetupException($l->t("MySQL user '%s'@'%%' already exists", array($name)), + $l->t("Drop this user from MySQL.")); } } @@ -269,12 +311,13 @@ class OC_Setup { $e_host = addslashes($dbhost); $e_user = addslashes($dbuser); $e_password = addslashes($dbpass); + $l = self::getTrans(); //check if the database user has admin rights $connection_string = "host='$e_host' dbname=postgres user='$e_user' password='$e_password'"; $connection = @pg_connect($connection_string); if(!$connection) { - throw new Exception('PostgreSQL username and/or password not valid'); + throw new Exception($l->t('PostgreSQL username and/or password not valid')); } $e_user = pg_escape_string($dbuser); //check for roles creation rights in postgresql @@ -319,7 +362,7 @@ class OC_Setup { $connection_string = "host='$e_host' dbname='$e_dbname' user='$e_user' password='$e_password'"; $connection = @pg_connect($connection_string); if(!$connection) { - throw new Exception('PostgreSQL username and/or password not valid'); + throw new Exception($l->t('PostgreSQL username and/or password not valid')); } $query = "select count(*) FROM pg_class WHERE relname='{$dbtableprefix}users' limit 1"; $result = pg_query($connection, $query); @@ -332,41 +375,44 @@ class OC_Setup { } private static function pg_createDatabase($name, $user, $connection) { + //we cant use OC_BD functions here because we need to connect as the administrative user. + $l = self::getTrans(); $e_name = pg_escape_string($name); $e_user = pg_escape_string($user); $query = "select datname from pg_database where datname = '$e_name'"; $result = pg_query($connection, $query); if(!$result) { - $entry='DB Error: "'.pg_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(pg_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.pg', $entry, \OC_Log::WARN); } if(! pg_fetch_row($result)) { //The database does not exists... let's create it $query = "CREATE DATABASE \"$e_name\" OWNER \"$e_user\""; $result = pg_query($connection, $query); if(!$result) { - $entry='DB Error: "'.pg_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(pg_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.pg', $entry, \OC_Log::WARN); } else { $query = "REVOKE ALL PRIVILEGES ON DATABASE \"$e_name\" FROM PUBLIC"; - $result = pg_query($connection, $query); + pg_query($connection, $query); } } } private static function pg_createDBUser($name, $password, $connection) { + $l = self::getTrans(); $e_name = pg_escape_string($name); $e_password = pg_escape_string($password); $query = "select * from pg_roles where rolname='$e_name';"; $result = pg_query($connection, $query); if(!$result) { - $entry='DB Error: "'.pg_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(pg_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.pg', $entry, \OC_Log::WARN); } if(! pg_fetch_row($result)) { @@ -374,23 +420,25 @@ class OC_Setup { $query = "CREATE USER \"$e_name\" CREATEDB PASSWORD '$e_password';"; $result = pg_query($connection, $query); if(!$result) { - $entry='DB Error: "'.pg_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(pg_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.pg', $entry, \OC_Log::WARN); } } else { // change password of the existing role $query = "ALTER ROLE \"$e_name\" WITH PASSWORD '$e_password';"; $result = pg_query($connection, $query); if(!$result) { - $entry='DB Error: "'.pg_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(pg_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.pg', $entry, \OC_Log::WARN); } } } - private static function setupOCIDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $dbtablespace, $username) { + private static function setupOCIDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $dbtablespace, + $username) { + $l = self::getTrans(); $e_host = addslashes($dbhost); $e_dbname = addslashes($dbname); //check if the database user has admin right @@ -402,16 +450,17 @@ class OC_Setup { $connection = @oci_connect($dbuser, $dbpass, $easy_connect_string); if(!$connection) { $e = oci_error(); - throw new Exception('Oracle username and/or password not valid'); + throw new Exception($l->t('Oracle username and/or password not valid')); } //check for roles creation rights in oracle - $query="SELECT count(*) FROM user_role_privs, role_sys_privs WHERE user_role_privs.granted_role = role_sys_privs.role AND privilege = 'CREATE ROLE'"; + $query='SELECT count(*) FROM user_role_privs, role_sys_privs' + ." WHERE user_role_privs.granted_role = role_sys_privs.role AND privilege = 'CREATE ROLE'"; $stmt = oci_parse($connection, $query); if (!$stmt) { - $entry='DB Error: "'.oci_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_last_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } $result = oci_execute($stmt); if($result) { @@ -468,16 +517,16 @@ class OC_Setup { } $connection = @oci_connect($dbuser, $dbpass, $easy_connect_string); if(!$connection) { - throw new Exception('Oracle username and/or password not valid'); + throw new Exception($l->t('Oracle username and/or password not valid')); } $query = "SELECT count(*) FROM user_tables WHERE table_name = :un"; $stmt = oci_parse($connection, $query); $un = $dbtableprefix.'users'; oci_bind_by_name($stmt, ':un', $un); if (!$stmt) { - $entry='DB Error: "'.oci_last_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } $result = oci_execute($stmt); @@ -497,20 +546,20 @@ class OC_Setup { * @param resource $connection */ private static function oci_createDBUser($name, $password, $tablespace, $connection) { - + $l = self::getTrans(); $query = "SELECT * FROM all_users WHERE USERNAME = :un"; $stmt = oci_parse($connection, $query); if (!$stmt) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } oci_bind_by_name($stmt, ':un', $name); $result = oci_execute($stmt); if(!$result) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } if(! oci_fetch_row($stmt)) { @@ -519,50 +568,226 @@ class OC_Setup { $query = 'CREATE USER '.$name.' IDENTIFIED BY "'.$password.'" DEFAULT TABLESPACE '.$tablespace; //TODO set default tablespace $stmt = oci_parse($connection, $query); if (!$stmt) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } //oci_bind_by_name($stmt, ':un', $name); $result = oci_execute($stmt); if(!$result) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.', name:'.$name.', password:'.$password.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s", name: %s, password: %s', + array($query, $name, $password)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } } else { // change password of the existing role $query = "ALTER USER :un IDENTIFIED BY :pw"; $stmt = oci_parse($connection, $query); if (!$stmt) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } oci_bind_by_name($stmt, ':un', $name); oci_bind_by_name($stmt, ':pw', $password); $result = oci_execute($stmt); if(!$result) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } } - // grant neccessary roles + // grant necessary roles $query = 'GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE TRIGGER, UNLIMITED TABLESPACE TO '.$name; $stmt = oci_parse($connection, $query); if (!$stmt) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s"', array($query)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } $result = oci_execute($stmt); if(!$result) { - $entry='DB Error: "'.oci_error($connection).'"
    '; - $entry.='Offending command was: '.$query.', name:'.$name.', password:'.$password.'
    '; - echo($entry); + $entry = $l->t('DB Error: "%s"', array(oci_error($connection))) . '
    '; + $entry .= $l->t('Offending command was: "%s", name: %s, password: %s', + array($query, $name, $password)) . '
    '; + \OC_Log::write('setup.oci', $entry, \OC_Log::WARN); } } + private static function setupMSSQLDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix) { + $l = self::getTrans(); + + //check if the database user has admin right + $masterConnectionInfo = array( "Database" => "master", "UID" => $dbuser, "PWD" => $dbpass); + + $masterConnection = @sqlsrv_connect($dbhost, $masterConnectionInfo); + if(!$masterConnection) { + $entry = null; + if( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + throw new Exception($l->t('MS SQL username and/or password not valid: %s', array($entry))); + } + + OC_Config::setValue('dbuser', $dbuser); + OC_Config::setValue('dbpassword', $dbpass); + + self::mssql_createDBLogin($dbuser, $dbpass, $masterConnection); + + self::mssql_createDatabase($dbname, $masterConnection); + + self::mssql_createDBUser($dbuser, $dbname, $masterConnection); + + sqlsrv_close($masterConnection); + + self::mssql_createDatabaseStructure($dbhost, $dbname, $dbuser, $dbpass, $dbtableprefix); + } + + private static function mssql_createDBLogin($name, $password, $connection) { + $query = "SELECT * FROM master.sys.server_principals WHERE name = '".$name."';"; + $result = sqlsrv_query($connection, $query); + if ($result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + $row = sqlsrv_fetch_array($result); + + if ($row === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + if ($row == null) { + $query = "CREATE LOGIN [".$name."] WITH PASSWORD = '".$password."';"; + $result = sqlsrv_query($connection, $query); + if (!$result or $result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } + } + } + } + } + + private static function mssql_createDBUser($name, $dbname, $connection) { + $query = "SELECT * FROM [".$dbname."].sys.database_principals WHERE name = '".$name."';"; + $result = sqlsrv_query($connection, $query); + if ($result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + $row = sqlsrv_fetch_array($result); + + if ($row === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + if ($row == null) { + $query = "USE [".$dbname."]; CREATE USER [".$name."] FOR LOGIN [".$name."];"; + $result = sqlsrv_query($connection, $query); + if (!$result || $result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry = 'DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } + } + + $query = "USE [".$dbname."]; EXEC sp_addrolemember 'db_owner', '".$name."';"; + $result = sqlsrv_query($connection, $query); + if (!$result || $result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } + } + } + } + + private static function mssql_createDatabase($dbname, $connection) { + $query = "CREATE DATABASE [".$dbname."];"; + $result = sqlsrv_query($connection, $query); + if (!$result || $result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } + } + + private static function mssql_createDatabaseStructure($dbhost, $dbname, $dbuser, $dbpass, $dbtableprefix) { + $connectionInfo = array( "Database" => $dbname, "UID" => $dbuser, "PWD" => $dbpass); + + $connection = @sqlsrv_connect($dbhost, $connectionInfo); + + //fill the database if needed + $query = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{$dbname}' AND TABLE_NAME = '{$dbtableprefix}users'"; + $result = sqlsrv_query($connection, $query); + if ($result === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + $row = sqlsrv_fetch_array($result); + + if ($row === false) { + if ( ($errors = sqlsrv_errors() ) != null) { + $entry='DB Error: "'.print_r(sqlsrv_errors()).'"
    '; + } else { + $entry = ''; + } + $entry.='Offending command was: '.$query.'
    '; + \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); + } else { + if ($row == null) { + OC_DB::createDbFromStructure('db_structure.xml'); + } + } + } + + sqlsrv_close($connection); + } + /** * create .htaccess files for apache hosts */ @@ -610,4 +835,25 @@ class OC_Setup { file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content); file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/index.html', ''); } + + /** + * @brief Post installation checks + */ + public static function postSetupCheck($params) { + // setup was successful -> webdav testing now + $l = self::getTrans(); + if (OC_Util::isWebDAVWorking()) { + header("Location: ".OC::$WEBROOT.'/'); + } else { + + $error = $l->t('Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.'); + $hint = $l->t('Please double check the installation guides.', + 'http://doc.owncloud.org/server/5.0/admin_manual/installation.html'); + + $tmpl = new OC_Template('', 'error', 'guest'); + $tmpl->assign('errors', array(1 => array('error' => $error, 'hint' => $hint)), false); + $tmpl->printPage(); + exit(); + } + } } diff --git a/lib/template.php b/lib/template.php index fb9f7ad62d90b18c3b9e74828d8f1087f2d95666..ce55e58d28d9158f131c400ec86ba8561ae63a8a 100644 --- a/lib/template.php +++ b/lib/template.php @@ -192,7 +192,13 @@ class OC_Template{ // Content Security Policy // If you change the standard policy, please also change it in config.sample.php - $policy = OC_Config::getValue('custom_csp_policy', 'default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:'); + $policy = OC_Config::getValue('custom_csp_policy', + 'default-src \'self\'; ' + .'script-src \'self\' \'unsafe-eval\'; ' + .'style-src \'self\' \'unsafe-inline\'; ' + .'frame-src *; ' + .'img-src *; ' + .'font-src \'self\' data:'); header('Content-Security-Policy:'.$policy); // Standard header('X-WebKit-CSP:'.$policy); // Older webkit browsers @@ -215,7 +221,8 @@ class OC_Template{ $mode='tablet'; }elseif(stripos($_SERVER['HTTP_USER_AGENT'], 'iphone')>0) { $mode='mobile'; - }elseif((stripos($_SERVER['HTTP_USER_AGENT'], 'N9')>0) and (stripos($_SERVER['HTTP_USER_AGENT'], 'nokia')>0)) { + }elseif((stripos($_SERVER['HTTP_USER_AGENT'], 'N9')>0) + and (stripos($_SERVER['HTTP_USER_AGENT'], 'nokia')>0)) { $mode='mobile'; }else{ $mode='default'; @@ -285,7 +292,8 @@ class OC_Template{ if ($this->checkPathForTemplate(OC::$SERVERROOT."/themes/$theme/$app/templates/", $name, $fext)) { }elseif ($this->checkPathForTemplate(OC::$SERVERROOT."/$app/templates/", $name, $fext)) { }else{ - echo('template not found: template:'.$name.' formfactor:'.$fext.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); + echo('template not found: template:'.$name.' formfactor:'.$fext + .' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); die(); } @@ -295,7 +303,8 @@ class OC_Template{ if ($this->checkPathForTemplate(OC::$SERVERROOT."/themes/$theme/core/templates/", $name, $fext)) { } elseif ($this->checkPathForTemplate(OC::$SERVERROOT."/core/templates/", $name, $fext)) { }else{ - echo('template not found: template:'.$name.' formfactor:'.$fext.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); + echo('template not found: template:'.$name.' formfactor:'.$fext + .' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); die(); } } @@ -404,9 +413,6 @@ class OC_Template{ if( $this->renderas ) { $page = new OC_TemplateLayout($this->renderas); - if($this->renderas == 'user') { - $page->assign('requesttoken', $this->vars['requesttoken']); - } // Add custom headers $page->assign('headers', $this->headers, false); @@ -519,8 +525,10 @@ class OC_Template{ * @param string $hint An option hint message */ public static function printErrorPage( $error_msg, $hint = '' ) { + $content = new OC_Template( '', 'error', 'error' ); $errors = array(array('error' => $error_msg, 'hint' => $hint)); - OC_Template::printGuestPage("", "error", array("errors" => $errors)); + $content->assign( 'errors', $errors, false ); + $content->printPage(); die(); } } diff --git a/lib/templatelayout.php b/lib/templatelayout.php index 345f540af042a057787be9125c1b998deb05f2e7..afa875b0a6d90ec38ff915dd58f339ed531db016 100644 --- a/lib/templatelayout.php +++ b/lib/templatelayout.php @@ -31,7 +31,7 @@ class OC_TemplateLayout extends OC_Template { } $user_displayname = OC_User::getDisplayName(); $this->assign( 'user_displayname', $user_displayname ); - } else if ($renderas == 'guest') { + } else if ($renderas == 'guest' || $renderas == 'error') { parent::__construct('core', 'layout.guest'); } else { parent::__construct('core', 'layout.base'); @@ -39,7 +39,7 @@ class OC_TemplateLayout extends OC_Template { // Add the js files $jsfiles = self::findJavascriptFiles(OC_Util::$scripts); $this->assign('jsfiles', array(), false); - if (OC_Config::getValue('installed', false)) { + if (OC_Config::getValue('installed', false) && $renderas!='error') { $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config')); } if (!empty(OC_Util::$core_scripts)) { @@ -134,7 +134,8 @@ class OC_TemplateLayout extends OC_Template { } } if(! $append) { - echo('css file not found: style:'.$style.' formfactor:'.$fext.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); + echo('css file not found: style:'.$style.' formfactor:'.$fext + .' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); die(); } } @@ -202,7 +203,8 @@ class OC_TemplateLayout extends OC_Template { } } if(! $append) { - echo('js file not found: script:'.$script.' formfactor:'.$fext.' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); + echo('js file not found: script:'.$script.' formfactor:'.$fext + .' webroot:'.OC::$WEBROOT.' serverroot:'.OC::$SERVERROOT); die(); } } diff --git a/lib/updater.php b/lib/updater.php index d44ac1083808d41120066a202db38a0f5af0f6fd..e7d33ac2bb970c5ac240850594057982f5357bea 100644 --- a/lib/updater.php +++ b/lib/updater.php @@ -30,7 +30,9 @@ class OC_Updater{ */ public static function check() { OC_Appconfig::setValue('core', 'lastupdatedat', microtime(true)); - if(OC_Appconfig::getValue('core', 'installedat', '')=='') OC_Appconfig::setValue('core', 'installedat', microtime(true)); + if(OC_Appconfig::getValue('core', 'installedat', '')=='') { + OC_Appconfig::setValue('core', 'installedat', microtime(true)); + } $updaterurl='http://apps.owncloud.com/updater.php'; $version=OC_Util::getVersion(); @@ -72,7 +74,9 @@ class OC_Updater{ if(OC_Config::getValue('updatechecker', true)==true) { $data=OC_Updater::check(); if(isset($data['version']) and $data['version']<>'') { - $txt=''.$l->t('%s is available. Get more information', array($data['versionstring'], $data['web'])).''; + $txt='' + .$l->t('%s is available. Get more information', + array($data['versionstring'], $data['web'])).''; }else{ $txt=$l->t('up to date'); } diff --git a/lib/user.php b/lib/user.php index 9dc8cca97a66e8a9c2c0b5f375643477441d6de5..6144f0f6bf9851a0ae7daeb3576a77a0b90032c8 100644 --- a/lib/user.php +++ b/lib/user.php @@ -160,7 +160,8 @@ class OC_User { // Check the name for bad characters // Allowed are: "a-z", "A-Z", "0-9" and "_.@-" if( preg_match( '/[^a-zA-Z0-9 _\.@\-]/', $uid )) { - throw new Exception('Only the following characters are allowed in a username: "a-z", "A-Z", "0-9", and "_.@-"'); + throw new Exception('Only the following characters are allowed in a username:' + .' "a-z", "A-Z", "0-9", and "_.@-"'); } // No empty username if(trim($uid) == '') { @@ -172,7 +173,7 @@ class OC_User { } // Check if user already exists - if( self::userExists($uid) ) { + if( self::userExistsForCreation($uid) ) { throw new Exception('The username is already being used'); } @@ -436,7 +437,7 @@ class OC_User { } return false; } - + /** * @brief Check whether user can change his display name * @param $uid The username @@ -445,10 +446,12 @@ class OC_User { * Check whether a specified user can change his display name */ public static function canUserChangeDisplayName($uid) { - foreach(self::$_usedBackends as $backend) { - if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) { - if($backend->userExists($uid)) { - return true; + if (OC_Config::getValue('allow_user_to_change_display_name', true)) { + foreach(self::$_usedBackends as $backend) { + if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) { + if($backend->userExists($uid)) { + return true; + } } } } @@ -485,7 +488,7 @@ class OC_User { */ public static function getHome($uid) { foreach(self::$_usedBackends as $backend) { - if($backend->implementsActions(OC_USER_BACKEND_GET_HOME)) { + if($backend->implementsActions(OC_USER_BACKEND_GET_HOME) && $backend->userExists($uid)) { $result=$backend->getHome($uid); if($result) { return $result; @@ -527,7 +530,7 @@ class OC_User { $displayNames = array_merge($displayNames, $backendDisplayNames); } } - ksort($displayNames); + asort($displayNames); return $displayNames; } @@ -539,9 +542,9 @@ class OC_User { */ public static function userExists($uid, $excludingBackend=null) { foreach(self::$_usedBackends as $backend) { - if (!is_null($excludingBackend) && !strcmp(get_class($backend),$excludingBackend)) { - OC_Log::write('OC_User', $excludingBackend . 'excluded from user existance check.', OC_Log::DEBUG); - continue; + if (!is_null($excludingBackend) && !strcmp(get_class($backend), $excludingBackend)) { + OC_Log::write('OC_User', $excludingBackend . 'excluded from user existance check.', OC_Log::DEBUG); + continue; } $result=$backend->userExists($uid); if($result===true) { @@ -551,6 +554,19 @@ class OC_User { return false; } + public static function userExistsForCreation($uid) { + foreach(self::$_usedBackends as $backend) { + if(!$backend->hasUserListings()) + continue; + + $result=$backend->userExists($uid); + if($result===true) { + return true; + } + } + return false; + } + /** * disables a user * @param string $userid the user to disable @@ -573,7 +589,8 @@ class OC_User { * @param string $userid */ public static function enableUser($userid) { - $sql = "DELETE FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?"; + $sql = 'DELETE FROM `*PREFIX*preferences`' + ." WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?"; $stmt = OC_DB::prepare($sql); if ( ! OC_DB::isError($stmt) ) { $result = $stmt->execute(array($userid, 'core', 'enabled', 'false')); @@ -591,14 +608,17 @@ class OC_User { * @return bool */ public static function isEnabled($userid) { - $sql = "SELECT `userid` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?"; + $sql = 'SELECT `userid` FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?'; $stmt = OC_DB::prepare($sql); if ( ! OC_DB::isError($stmt) ) { $result = $stmt->execute(array($userid, 'core', 'enabled', 'false')); if ( ! OC_DB::isError($result) ) { return $result->numRows() ? false : true; } else { - OC_Log::write('OC_User', 'could not check if enabled: '. OC_DB::getErrorMessage($result), OC_Log::ERROR); + OC_Log::write('OC_User', + 'could not check if enabled: '. OC_DB::getErrorMessage($result), + OC_Log::ERROR); } } else { OC_Log::write('OC_User', 'could not check if enabled: '. OC_DB::getErrorMessage($stmt), OC_Log::ERROR); diff --git a/lib/user/backend.php b/lib/user/backend.php index 56fa3195978fcf95bf373293d404d3b6910f0eb6..93e8f17ca98ab460d2531dd35a3531b31cab6fbe 100644 --- a/lib/user/backend.php +++ b/lib/user/backend.php @@ -36,7 +36,7 @@ define('OC_USER_BACKEND_SET_PASSWORD', 0x000010); define('OC_USER_BACKEND_CHECK_PASSWORD', 0x000100); define('OC_USER_BACKEND_GET_HOME', 0x001000); define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x010000); -define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x010000); +define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x100000); /** @@ -124,7 +124,7 @@ abstract class OC_User_Backend implements OC_User_Interface { public function getHome($uid) { return false; } - + /** * @brief get display name of the user * @param $uid user ID of the user @@ -133,19 +133,27 @@ abstract class OC_User_Backend implements OC_User_Interface { public function getDisplayName($uid) { return $uid; } - - /** - * @brief Get a list of all display names - * @returns array with all displayNames (value) and the correspondig uids (key) - * - * Get a list of all display names and user ids. - */ - public function getDisplayNames($search = '', $limit = null, $offset = null) { + + /** + * @brief Get a list of all display names + * @returns array with all displayNames (value) and the corresponding uids (key) + * + * Get a list of all display names and user ids. + */ + public function getDisplayNames($search = '', $limit = null, $offset = null) { $displayNames = array(); $users = $this->getUsers($search, $limit, $offset); foreach ( $users as $user) { $displayNames[$user] = $user; } - return $displayNames; + return $displayNames; + } + + /** + * @brief Check if a user list is available or not + * @return boolean if users can be listed or not + */ + public function hasUserListings() { + return false; } } diff --git a/lib/user/database.php b/lib/user/database.php index 8dfd9534a96cc48f6abfa2d76869cb586f5eb04f..210c7f3e1eb28c38b0cd42164ae3c2371a0755ef 100644 --- a/lib/user/database.php +++ b/lib/user/database.php @@ -110,31 +110,31 @@ class OC_User_Database extends OC_User_Backend { return false; } } - - /** - * @brief Set display name - * @param $uid The username - * @param $displayName The new display name - * @returns true/false - * - * Change the display name of a user + + /** + * @brief Set display name + * @param $uid The username + * @param $displayName The new display name + * @returns true/false + * + * Change the display name of a user */ public function setDisplayName( $uid, $displayName ) { - if( $this->userExists($uid) ) { - $query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' ); - $query->execute( array( $displayName, $uid )); - return true; - }else{ - return false; - } + if( $this->userExists($uid) ) { + $query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' ); + $query->execute( array( $displayName, $uid )); + return true; + }else{ + return false; + } } - /** - * @brief get display name of the user - * @param $uid user ID of the user - * @return display name - */ - public function getDisplayName($uid) { + /** + * @brief get display name of the user + * @param $uid user ID of the user + * @return display name + */ + public function getDisplayName($uid) { if( $this->userExists($uid) ) { $query = OC_DB::prepare( 'SELECT displayname FROM `*PREFIX*users` WHERE `uid` = ?' ); $result = $query->execute( array( $uid ))->fetchAll(); @@ -144,38 +144,40 @@ class OC_User_Database extends OC_User_Backend { } else { return $uid; } - } + } } - - /** - * @brief Get a list of all display names - * @returns array with all displayNames (value) and the correspondig uids (key) - * - * Get a list of all display names and user ids. - */ + + /** + * @brief Get a list of all display names + * @returns array with all displayNames (value) and the correspondig uids (key) + * + * Get a list of all display names and user ids. + */ public function getDisplayNames($search = '', $limit = null, $offset = null) { $displayNames = array(); - $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset); + $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`' + .' WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset); $result = $query->execute(array($search.'%')); - $users = array(); - while ($row = $result->fetchRow()) { - $displayNames[$row['uid']] = $row['displayname']; + $users = array(); + while ($row = $result->fetchRow()) { + $displayNames[$row['uid']] = $row['displayname']; } - + // let's see if we can also find some users who don't have a display name yet - $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset); + $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`' + .' WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset); $result = $query->execute(array($search.'%')); - while ($row = $result->fetchRow()) { + while ($row = $result->fetchRow()) { $displayName = trim($row['displayname'], ' '); - if ( empty($displayName) ) { + if ( empty($displayName) ) { $displayNames[$row['uid']] = $row['uid']; - } + } } - - - return $displayNames; + + + return $displayNames; } - + /** * @brief Check if the password is correct * @param $uid The username @@ -256,4 +258,12 @@ class OC_User_Database extends OC_User_Backend { return false; } } + + /** + * @return bool + */ + public function hasUserListings() { + return true; + } + } diff --git a/lib/user/dummy.php b/lib/user/dummy.php index 4dbbc02b8888b0a282cefe892c178a06df960601..d63f60efbeb53c0a1adb61e6ce8c5df789672957 100644 --- a/lib/user/dummy.php +++ b/lib/user/dummy.php @@ -112,4 +112,11 @@ class OC_User_Dummy extends OC_User_Backend { public function userExists($uid) { return isset($this->users[$uid]); } + + /** + * @return bool + */ + public function hasUserListings() { + return true; + } } diff --git a/lib/user/interface.php b/lib/user/interface.php index b4667633b5083b13996f678988b9938951f5a9f7..b1e19aea7fb2373badab0ddc512f6d18fe1a68d7 100644 --- a/lib/user/interface.php +++ b/lib/user/interface.php @@ -66,10 +66,15 @@ interface OC_User_Interface { /** * @brief Get a list of all display names - * @returns array with all displayNames (value) and the correspondig uids (key) + * @returns array with all displayNames (value) and the corresponding uids (key) * * Get a list of all display names and user ids. */ public function getDisplayNames($search = '', $limit = null, $offset = null); + /** + * @brief Check if a user list is available or not + * @return boolean if users can be listed or not + */ + public function hasUserListings(); } \ No newline at end of file diff --git a/lib/util.php b/lib/util.php index 9ce974619bcee2a496e0785f63bd5cf9cc90020a..060db73da00a0cf63d367cd8842f28e6d9efa3db 100755 --- a/lib/util.php +++ b/lib/util.php @@ -51,7 +51,7 @@ class OC_Util { mkdir( $userdirectory, 0755, true ); } //jail the user into his "home" directory - \OC\Files\Filesystem::init($user_dir); + \OC\Files\Filesystem::init($user, $user_dir); $quotaProxy=new OC_FileProxy_Quota(); $fileOperationProxy = new OC_FileProxy_FileOperations(); @@ -73,8 +73,9 @@ class OC_Util { * @return array */ public static function getVersion() { - // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4.90.0. This is not visible to the user - return array(4, 91, 9); + // hint: We only can count up. Reset minor/patchlevel when + // updating major/minor version number. + return array(4, 94, 10); } /** @@ -82,11 +83,13 @@ class OC_Util { * @return string */ public static function getVersionString() { - return '5.0 pre alpha'; + return '5.0 beta 2'; } /** - * get the current installed edition of ownCloud. There is the community edition that just returns an empty string and the enterprise edition that returns "Enterprise". + * get the current installed edition of ownCloud. There is the community + * edition that just returns an empty string and the enterprise edition + * that returns "Enterprise". * @return string */ public static function getEditionString() { @@ -166,24 +169,33 @@ class OC_Util { $web_server_restart= false; //check for database drivers - if(!(is_callable('sqlite_open') or class_exists('SQLite3')) and !is_callable('mysql_connect') and !is_callable('pg_connect')) { - $errors[]=array('error'=>'No database drivers (sqlite, mysql, or postgresql) installed.
    ', 'hint'=>'');//TODO: sane hint + if(!(is_callable('sqlite_open') or class_exists('SQLite3')) + and !is_callable('mysql_connect') + and !is_callable('pg_connect')) { + $errors[]=array('error'=>'No database drivers (sqlite, mysql, or postgresql) installed.
    ', + 'hint'=>'');//TODO: sane hint $web_server_restart= true; } //common hint for all file permissons error messages - $permissionsHint="Permissions can usually be fixed by giving the webserver write access to the ownCloud directory"; + $permissionsHint='Permissions can usually be fixed by giving the webserver write access' + .' to the ownCloud directory'; // Check if config folder is writable. if(!is_writable(OC::$SERVERROOT."/config/") or !is_readable(OC::$SERVERROOT."/config/")) { - $errors[]=array('error'=>"Can't write into config directory 'config'", 'hint'=>"You can usually fix this by giving the webserver user write access to the config directory in owncloud"); + $errors[]=array('error'=>"Can't write into config directory 'config'", + 'hint'=>'You can usually fix this by giving the webserver user write access' + .' to the config directory in owncloud'); } // Check if there is a writable install folder. if(OC_Config::getValue('appstoreenabled', true)) { - if( OC_App::getInstallPath() === null || !is_writable(OC_App::getInstallPath()) || !is_readable(OC_App::getInstallPath()) ) { - $errors[]=array('error'=>"Can't write into apps directory", 'hint'=>"You can usually fix this by giving the webserver user write access to the apps directory - in owncloud or disabling the appstore in the config file."); + if( OC_App::getInstallPath() === null + || !is_writable(OC_App::getInstallPath()) + || !is_readable(OC_App::getInstallPath()) ) { + $errors[]=array('error'=>"Can't write into apps directory", + 'hint'=>'You can usually fix this by giving the webserver user write access' + .' to the apps directory in owncloud or disabling the appstore in the config file.'); } } $CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ); @@ -193,69 +205,79 @@ class OC_Util { if ($success) { $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); } else { - $errors[]=array('error'=>"Can't create data directory (".$CONFIG_DATADIRECTORY.")", 'hint'=>"You can usually fix this by giving the webserver write access to the ownCloud directory '".OC::$SERVERROOT."' (in a terminal, use the command 'chown -R www-data:www-data /path/to/your/owncloud/install/data' "); + $errors[]=array('error'=>"Can't create data directory (".$CONFIG_DATADIRECTORY.")", + 'hint'=>"You can usually fix this by giving the webserver write access to the ownCloud directory '" + .OC::$SERVERROOT."' (in a terminal, use the command " + ."'chown -R www-data:www-data /path/to/your/owncloud/install/data' "); } } else if(!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) { - $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud
    ', 'hint'=>$permissionsHint); + $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud
    ', + 'hint'=>$permissionsHint); } else { $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); } // check if all required php modules are present if(!class_exists('ZipArchive')) { - $errors[]=array('error'=>'PHP module zip not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module zip not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('mb_detect_encoding')) { - $errors[]=array('error'=>'PHP module mb multibyte not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module mb multibyte not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('ctype_digit')) { - $errors[]=array('error'=>'PHP module ctype is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module ctype is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('json_encode')) { - $errors[]=array('error'=>'PHP module JSON is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module JSON is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('imagepng')) { - $errors[]=array('error'=>'PHP module GD is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module GD is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('gzencode')) { - $errors[]=array('error'=>'PHP module zlib is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module zlib is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('iconv')) { - $errors[]=array('error'=>'PHP module iconv is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module iconv is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(!function_exists('simplexml_load_string')) { - $errors[]=array('error'=>'PHP module SimpleXML is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP module SimpleXML is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } if(floatval(phpversion())<5.3) { - $errors[]=array('error'=>'PHP 5.3 is required.
    ', 'hint'=>'Please ask your server administrator to update PHP to version 5.3 or higher. PHP 5.2 is no longer supported by ownCloud and the PHP community.'); + $errors[]=array('error'=>'PHP 5.3 is required.
    ', + 'hint'=>'Please ask your server administrator to update PHP to version 5.3 or higher.' + .' PHP 5.2 is no longer supported by ownCloud and the PHP community.'); $web_server_restart= false; } if(!defined('PDO::ATTR_DRIVER_NAME')) { - $errors[]=array('error'=>'PHP PDO module is not installed.
    ', 'hint'=>'Please ask your server administrator to install the module.'); + $errors[]=array('error'=>'PHP PDO module is not installed.
    ', + 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } - - $handler = ini_get("session.save_handler"); - if($handler == "files") { - $tmpDir = session_save_path(); - if($tmpDir != ""){ - if(!@is_writable($tmpDir)){ - $errors[]=array('error' => 'The temporary folder used by PHP to save the session data is either incorrect or not writable! Please check : '.session_save_path().'
    ', - 'hint'=>'Please ask your server administrator to grant write access or define another temporary folder.'); - } - } + if(ini_get('safe_mode')) { + $errors[]=array('error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.
    ', + 'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.'); + $web_server_restart= false; } if($web_server_restart) { - $errors[]=array('error'=>'PHP modules have been installed, but they are still listed as missing?
    ', 'hint'=>'Please ask your server administrator to restart the web server.'); + $errors[]=array('error'=>'PHP modules have been installed, but they are still listed as missing?
    ', + 'hint'=>'Please ask your server administrator to restart the web server.'); } return $errors; @@ -270,14 +292,16 @@ class OC_Util { if (stristr(PHP_OS, 'WIN')) { //TODO: permissions checks for windows hosts } else { - $permissionsModHint = 'Please change the permissions to 0770 so that the directory cannot be listed by other users.'; + $permissionsModHint = 'Please change the permissions to 0770 so that the directory' + .' cannot be listed by other users.'; $prems = substr(decoct(@fileperms($dataDirectory)), -3); if (substr($prems, -1) != '0') { OC_Helper::chmodr($dataDirectory, 0770); clearstatcache(); $prems = substr(decoct(@fileperms($dataDirectory)), -3); if (substr($prems, 2, 1) != '0') { - $errors[] = array('error' => 'Data directory ('.$dataDirectory.') is readable for other users
    ', 'hint' => $permissionsModHint); + $errors[] = array('error' => 'Data directory ('.$dataDirectory.') is readable for other users
    ', + 'hint' => $permissionsModHint); } } } @@ -323,7 +347,8 @@ class OC_Util { public static function checkLoggedIn() { // Check if we are a user if( !OC_User::isLoggedIn()) { - header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', array('redirect_url' => OC_Request::requestUri()))); + header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', + array('redirect_url' => OC_Request::requestUri()))); exit(); } } @@ -471,10 +496,10 @@ class OC_Util { * @return array with sanitized strings or a single sanitized string, depends on the input parameter. */ public static function sanitizeHTML( &$value ) { - if (is_array($value) || is_object($value)) { + if (is_array($value)) { array_walk_recursive($value, 'OC_Util::sanitizeHTML'); } else { - $value = htmlentities($value, ENT_QUOTES, 'UTF-8'); //Specify encoding for PHP<5.4 + $value = htmlentities((string)$value, ENT_QUOTES, 'UTF-8'); //Specify encoding for PHP<5.4 } return $value; } @@ -516,9 +541,53 @@ class OC_Util { } } + /** + * we test if webDAV is working properly + * + * The basic assumption is that if the server returns 401/Not Authenticated for an unauthenticated PROPFIND + * the web server it self is setup properly. + * + * Why not an authenticated PROFIND and other verbs? + * - We don't have the password available + * - We have no idea about other auth methods implemented (e.g. OAuth with Bearer header) + * + */ + public static function isWebDAVWorking() { + if (!function_exists('curl_init')) { + return true; + } + $settings = array( + 'baseUri' => OC_Helper::linkToRemote('webdav'), + ); + + // save the old timeout so that we can restore it later + $old_timeout=ini_get("default_socket_timeout"); + + // use a 5 sec timeout for the check. Should be enough for local requests. + ini_set("default_socket_timeout", 5); + + $client = new \Sabre_DAV_Client($settings); + + $return = true; + try { + // test PROPFIND + $client->propfind('', array('{DAV:}resourcetype')); + } catch(\Sabre_DAV_Exception_NotAuthenticated $e) { + $return = true; + } catch(\Exception $e) { + OC_Log::write('core', 'isWebDAVWorking: NO - Reason: '.$e, OC_Log::WARN); + $return = false; + } + + // restore the original timeout + ini_set("default_socket_timeout", $old_timeout); + + return $return; + } /** - * Check if the setlocal call doesn't work. This can happen if the right local packages are not available on the server. + * Check if the setlocal call doesn't work. This can happen if the right + * local packages are not available on the server. */ public static function issetlocaleworking() { // setlocale test is pointless on Windows @@ -526,12 +595,11 @@ class OC_Util { return true; } - $result=setlocale(LC_ALL, 'en_US.UTF-8'); - if($result==false) { - return(false); - }else{ - return(true); - } + $result = setlocale(LC_ALL, 'en_US.UTF-8', 'en_US.UTF8'); + if($result == false) { + return false; + } + return true; } /** @@ -658,10 +726,10 @@ class OC_Util { curl_setopt($curl, CURLOPT_MAXREDIRS, 10); curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler"); - if(OC_Config::getValue('proxy','')<>'') { + if(OC_Config::getValue('proxy', '')<>'') { curl_setopt($curl, CURLOPT_PROXY, OC_Config::getValue('proxy')); } - if(OC_Config::getValue('proxyuserpwd','')<>'') { + if(OC_Config::getValue('proxyuserpwd', '')<>'') { curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd')); } $data = curl_exec($curl); @@ -670,7 +738,7 @@ class OC_Util { } else { $contextArray = null; - if(OC_Config::getValue('proxy','')<>'') { + if(OC_Config::getValue('proxy', '')<>'') { $contextArray = array( 'http' => array( 'timeout' => 10, diff --git a/lib/vcategories.php b/lib/vcategories.php index 1700870f91f31e0db8c8987997044fb8d440017a..f94a0a55d3b904ad96c9b9ceeb31737002e8bb33 100644 --- a/lib/vcategories.php +++ b/lib/vcategories.php @@ -306,12 +306,18 @@ class OC_VCategories { OCP\Util::writeLog('core', __METHOD__.', name: ' . $name. ' exists already', OCP\Util::DEBUG); return false; } - OCP\DB::insertIfNotExist(self::CATEGORY_TABLE, - array( - 'uid' => $this->user, - 'type' => $this->type, - 'category' => $name, - )); + try { + OCP\DB::insertIfNotExist(self::CATEGORY_TABLE, + array( + 'uid' => $this->user, + 'type' => $this->type, + 'category' => $name, + )); + } catch(Exception $e) { + OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(), + OCP\Util::ERROR); + return false; + } $id = OCP\DB::insertid(self::CATEGORY_TABLE); OCP\Util::writeLog('core', __METHOD__.', id: ' . $id, OCP\Util::DEBUG); $this->categories[$id] = $name; @@ -436,12 +442,17 @@ class OC_VCategories { private function save() { if(is_array($this->categories)) { foreach($this->categories as $category) { - OCP\DB::insertIfNotExist(self::CATEGORY_TABLE, - array( - 'uid' => $this->user, - 'type' => $this->type, - 'category' => $category, - )); + try { + OCP\DB::insertIfNotExist(self::CATEGORY_TABLE, + array( + 'uid' => $this->user, + 'type' => $this->type, + 'category' => $category, + )); + } catch(Exception $e) { + OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(), + OCP\Util::ERROR); + } } // reload categories to get the proper ids. $this->loadCategories(); @@ -454,12 +465,17 @@ class OC_VCategories { $catid = $this->array_searchi($relation['category'], $categories); OC_Log::write('core', __METHOD__ . 'catid, ' . $relation['category'] . ' ' . $catid, OC_Log::DEBUG); if($catid) { - OCP\DB::insertIfNotExist(self::RELATION_TABLE, - array( - 'objid' => $relation['objid'], - 'categoryid' => $catid, - 'type' => $this->type, - )); + try { + OCP\DB::insertIfNotExist(self::RELATION_TABLE, + array( + 'objid' => $relation['objid'], + 'categoryid' => $catid, + 'type' => $this->type, + )); + } catch(Exception $e) { + OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(), + OCP\Util::ERROR); + } } } self::$relations = array(); // reset @@ -689,7 +705,9 @@ class OC_VCategories { $stmt = OCP\DB::prepare($sql); $result = $stmt->execute(array($id)); if (OC_DB::isError($result)) { - OC_Log::write('core', __METHOD__. 'DB error: ' . OC_DB::getErrorMessage($result), OC_Log::ERROR); + OC_Log::write('core', + __METHOD__. 'DB error: ' . OC_DB::getErrorMessage($result), + OC_Log::ERROR); } } catch(Exception $e) { OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(), diff --git a/search/js/result.js b/search/js/result.js index cadb0d0aabec4b6b7f6076d4a5c457dbe2442e17..78fa8efc8e9d04d3a5648eb03ddf721ebad3a67a 100644 --- a/search/js/result.js +++ b/search/js/result.js @@ -28,7 +28,7 @@ OC.search.showResults=function(results){ OC.search.hide(); event.stopPropagation(); }); - $(window).click(function(event){ + $(document).click(function(event){ OC.search.hide(); }); OC.search.lastResults=results; diff --git a/settings/admin.php b/settings/admin.php index 7cca716515390fc9cda2bccf151ed4329deca2e9..c7848803095e2e794a90a9e9c5822e9859996677 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -31,6 +31,7 @@ $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); $tmpl->assign('internetconnectionworking', OC_Util::isinternetconnectionworking()); $tmpl->assign('islocaleworking', OC_Util::issetlocaleworking()); +$tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking()); $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax')); $tmpl->assign('shareAPIEnabled', OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes')); diff --git a/settings/ajax/apps/ocs.php b/settings/ajax/apps/ocs.php index d0205a1ba34a0b0229bcc2621c70e2378376deaf..9c5adfcfef95080ff0250d7e2aa2af4acb18aab8 100644 --- a/settings/ajax/apps/ocs.php +++ b/settings/ajax/apps/ocs.php @@ -23,9 +23,9 @@ if(is_null($enabledApps)) { $apps=array(); // apps from external repo via OCS -$catagoryNames=OC_OCSClient::getCategories(); -if(is_array($catagoryNames)) { - $categories=array_keys($catagoryNames); +$categoryNames=OC_OCSClient::getCategories(); +if(is_array($categoryNames)) { + $categories=array_keys($categoryNames); $page=0; $filter='approved'; $externalApps=OC_OCSClient::getApplications($categories, $page, $filter); @@ -45,7 +45,7 @@ if(is_array($catagoryNames)) { $pre=$app['preview']; } if($app['label']=='recommended') { - $label='3rd Party App'; + $label='3rd Party'; } else { $label='Recommended'; } diff --git a/settings/ajax/changedisplayname.php b/settings/ajax/changedisplayname.php index 8f2ff865bd5f0d3ad4f89d7c1372c87b0b1b1968..dff4d733cd213790ee6469c18d52fb99f4847c31 100644 --- a/settings/ajax/changedisplayname.php +++ b/settings/ajax/changedisplayname.php @@ -1,29 +1,33 @@ - array( "message" => $l->t("Authentication error") ))); - exit(); -} - -// Return Success story -if( OC_User::setDisplayName( $username, $displayName )) { - OC_JSON::success(array("data" => array( "username" => $username, 'displayName' => $displayName ))); -} -else{ - OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change display name"), displayName => OC_User::getDisplayName($username) ))); -} \ No newline at end of file + array( "message" => $l->t("Authentication error") ))); + exit(); +} + +// Return Success story +if( OC_User::setDisplayName( $username, $displayName )) { + OC_JSON::success(array("data" => array( "username" => $username, 'displayName' => $displayName ))); +} +else{ + OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change display name"), 'displayName' => OC_User::getDisplayName($username) ))); +} diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index ceb4bbeecb0b96ba660f44fe3b5f22bac8f7ea87..1fc6d0e10002eae6296f1701bf8544c6150aa165 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -8,7 +8,7 @@ OC_JSON::checkLoggedIn(); OC_APP::loadApps(); $username = isset($_POST["username"]) ? $_POST["username"] : OC_User::getUser(); -$password = $_POST["password"]; +$password = isset($_POST["password"]) ? $_POST["password"] : null; $oldPassword=isset($_POST["oldpassword"])?$_POST["oldpassword"]:''; $userstatus = null; @@ -28,7 +28,7 @@ if(is_null($userstatus)) { } // Return Success story -if( OC_User::setPassword( $username, $password )) { +if(!is_null($password) && OC_User::setPassword( $username, $password )) { OC_JSON::success(array("data" => array( "username" => $username ))); } else{ diff --git a/settings/ajax/createuser.php b/settings/ajax/createuser.php index 09ef25d92fa1f6835e5dc0617daca43bf5bf06c4..56653bed6bd7e8d2f4ea1a8a72033d665509b93c 100644 --- a/settings/ajax/createuser.php +++ b/settings/ajax/createuser.php @@ -26,12 +26,6 @@ if(OC_User::isAdminUser(OC_User::getUser())) { $username = $_POST["username"]; $password = $_POST["password"]; -// Does the group exist? -if(OC_User::userExists($username)) { - OC_JSON::error(array("data" => array( "message" => "User already exists" ))); - exit(); -} - // Return Success story try { if (!OC_User::createUser($username, $password)) { diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php index e89de928eac13c3e9278279daf402fe1f470d9b6..466a719157d6fd726d185df6d69d57c975f6c6e9 100644 --- a/settings/ajax/disableapp.php +++ b/settings/ajax/disableapp.php @@ -2,6 +2,6 @@ OC_JSON::checkAdminUser(); OCP\JSON::callCheck(); -OC_App::disable($_POST['appid']); +OC_App::disable(OC_App::cleanAppId($_POST['appid'])); OC_JSON::success(); diff --git a/settings/ajax/enableapp.php b/settings/ajax/enableapp.php index 18202dc39e9ceca8ae200cb78e7538c3ce4490ca..ab84aee516653c0fc14cf1e7ce538caae9b2723c 100644 --- a/settings/ajax/enableapp.php +++ b/settings/ajax/enableapp.php @@ -3,7 +3,7 @@ OC_JSON::checkAdminUser(); OCP\JSON::callCheck(); -$appid = OC_App::enable($_POST['appid']); +$appid = OC_App::enable(OC_App::cleanAppId($_POST['appid'])); if($appid !== false) { OC_JSON::success(array('data' => array('appid' => $appid))); } else { diff --git a/settings/ajax/navigationdetect.php b/settings/ajax/navigationdetect.php index 93acb50dc200adffd78285b94fc46c4d084839be..7f961eb9bc52d73ca8631b48aa6b597d6945be0b 100644 --- a/settings/ajax/navigationdetect.php +++ b/settings/ajax/navigationdetect.php @@ -4,11 +4,9 @@ OC_Util::checkAdminUser(); OCP\JSON::callCheck(); $app = $_GET['app']; +$app = OC_App::cleanAppId($app); -//load the one app and see what it adds to the navigation -OC_App::loadApp($app); - -$navigation = OC_App::getNavigation(); +$navigation = OC_App::getAppNavigationEntries($app); $navIds = array(); foreach ($navigation as $nav) { diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php index 356466c0c002c3d509a5aef5cf3e8ff307143a8a..cd8dc0e2796ee8fe99df217f6009a1e86f85f87b 100644 --- a/settings/ajax/setquota.php +++ b/settings/ajax/setquota.php @@ -10,7 +10,9 @@ OCP\JSON::callCheck(); $username = isset($_POST["username"])?$_POST["username"]:''; -if(($username == '' && !OC_User::isAdminUser(OC_User::getUser()))|| (!OC_User::isAdminUser(OC_User::getUser()) && !OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username))) { +if(($username == '' && !OC_User::isAdminUser(OC_User::getUser())) + || (!OC_User::isAdminUser(OC_User::getUser()) + && !OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username))) { $l = OC_L10N::get('core'); OC_JSON::error(array( 'data' => array( 'message' => $l->t('Authentication error') ))); exit(); diff --git a/settings/ajax/togglegroups.php b/settings/ajax/togglegroups.php index 9bba9c5269d0f8d56e24a3252e5a2432fd695e74..f6fd9aba6d908a0d77f52732bcbedcf1bddda149 100644 --- a/settings/ajax/togglegroups.php +++ b/settings/ajax/togglegroups.php @@ -13,7 +13,9 @@ if($username == OC_User::getUser() && $group == "admin" && OC_User::isAdminUser exit(); } -if(!OC_User::isAdminUser(OC_User::getUser()) && (!OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username) || !OC_SubAdmin::isGroupAccessible(OC_User::getUser(), $group))) { +if(!OC_User::isAdminUser(OC_User::getUser()) + && (!OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username) + || !OC_SubAdmin::isGroupAccessible(OC_User::getUser(), $group))) { $l = OC_L10N::get('core'); OC_JSON::error(array( 'data' => array( 'message' => $l->t('Authentication error') ))); exit(); diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php index 77c0bbc3e36cc3af4f266068c8ee405e87af004c..300e864251532615fabf271c2776fd92446a6139 100644 --- a/settings/ajax/updateapp.php +++ b/settings/ajax/updateapp.php @@ -4,6 +4,7 @@ OC_JSON::checkAdminUser(); OCP\JSON::callCheck(); $appid = $_POST['appid']; +$appid = OC_App::cleanAppId($appid); $result = OC_Installer::updateApp($appid); if($result !== false) { @@ -11,7 +12,4 @@ if($result !== false) { } else { $l = OC_L10N::get('settings'); OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't update app.") ))); -} - - - +} \ No newline at end of file diff --git a/settings/ajax/userlist.php b/settings/ajax/userlist.php index 9bbff80ea0cc17eef7bccd0ae2e13f699b093fea..5282f4a7143e87f48b45c366134a206aaf55a71c 100644 --- a/settings/ajax/userlist.php +++ b/settings/ajax/userlist.php @@ -29,10 +29,11 @@ if (isset($_GET['offset'])) { } $users = array(); if (OC_User::isAdminUser(OC_User::getUser())) { - $batch = OC_User::getUsers('', 10, $offset); - foreach ($batch as $user) { + $batch = OC_User::getDisplayNames('', 10, $offset); + foreach ($batch as $user => $displayname) { $users[] = array( 'name' => $user, + 'displayname' => $displayname, 'groups' => join(', ', OC_Group::getUserGroups($user)), 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); @@ -43,6 +44,7 @@ if (OC_User::isAdminUser(OC_User::getUser())) { foreach ($batch as $user) { $users[] = array( 'name' => $user, + 'displayname' => OC_User::determineDisplayName($user), 'groups' => join(', ', OC_Group::getUserGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } diff --git a/settings/css/settings.css b/settings/css/settings.css index 9dd17daaeb765c60ff0c01cb0cf7552823240586..265a29b8f7f5167ecab38e7b6a9fc818a005c25f 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -5,7 +5,15 @@ select#languageinput, select#timezone { width:15em; } input#openid, input#webdav { width:20em; } + /* PERSONAL */ + +/* Sync clients */ +.clientsbox { margin:12px; text-align:center; } +.clientsbox h1 { font-size:40px; font-weight:bold; margin:50px 0 20px; } +.clientsbox h2 { font-size:20px; font-weight:bold; margin:35px 0 10px; } +.clientsbox center { margin-top:10px; } + #passworderror { display:none; } #passwordchanged { display:none; } #displaynameerror { display:none; } @@ -35,14 +43,19 @@ tr:hover>td.remove>a { float:right; } li.selected { background-color:#ddd; } table:not(.nostyle) { width:100%; } #rightcontent { padding-left: 1em; } -div.quota { float:right; display:block; position:absolute; right:25em; top:0; } +div.quota { float:right; display:block; position:absolute; right:25em; top:-1px; } div.quota-select-wrapper { position: relative; } -select.quota { position:absolute; left:0; top:0.5em; width:10em; } +select.quota { position:absolute; left:0; top:0; width:10em; } select.quota-user { position:relative; left:0; top:0; width:10em; } -input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; box-shadow:none; } div.quota>span { position:absolute; right:0; white-space:nowrap; top:.7em; color:#888; text-shadow:0 1px 0 #fff; } select.quota.active { background: #fff; } +/* positioning fixes */ +#newuser { position:relative; top:-3px; } +#newuser .multiselect { top:1px; } +#headerGroups, #headerSubAdmins, #headerQuota { padding-left:18px; } + + /* APPS */ .appinfo { margin: 1em; } h3 { font-size: 1.4em; font-weight: bold; } @@ -75,3 +88,4 @@ table.shareAPI td { padding-bottom: 0.8em; } /* HELP */ .pressed {background-color:#DDD;} + diff --git a/settings/js/apps-custom.php b/settings/js/apps-custom.php index 9ec2a758ee3b5806bf28a016861507cabef9ca36..d827dfc7058e74cfade6286b7a67c7cbbfd6f725 100644 --- a/settings/js/apps-custom.php +++ b/settings/js/apps-custom.php @@ -23,4 +23,4 @@ foreach($combinedApps as $app) { echo("\n"); } -echo ("var appid =\"".$_GET['appid']."\";"); \ No newline at end of file +echo ("var appid =".json_encode($_GET['appid']).";"); \ No newline at end of file diff --git a/settings/js/apps.js b/settings/js/apps.js index 3bc3488e4907daf6ec3a28240329a4608ccba817..8c266c66e4b118c66e886974d84a4437a40778ad 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -134,7 +134,7 @@ OC.Settings.Apps = OC.Settings.Apps || { if(container.children('li[data-id="'+entry.id+'"]').length === 0){ var li=$('
  • '); li.attr('data-id', entry.id); - var img= $('').attr({ src: entry.icon, class:'icon'}); + var img= $('').attr({ src: entry.icon}); var a=$('').attr('href', entry.href); a.text(entry.name); a.prepend(img); diff --git a/settings/js/personal.js b/settings/js/personal.js index d9455b3786bbdd881badd180919ffb61145a6bca..d0a471e56b57b5cf8ff0cb35ad6da349804e761b 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -31,7 +31,7 @@ $(document).ready(function(){ } }); - + $("#displaynamebutton").click( function(){ if ($('#displayName').val() != '' ) { // Serialize the data @@ -42,6 +42,9 @@ $(document).ready(function(){ $.post( 'ajax/changedisplayname.php', post, function(data){ if( data.status == "success" ){ $('#displaynamechanged').show(); + $('#oldDisplayName').text($('#displayName').val()); + // update displayName on the top right expand button + $('#expandDisplayName').text($('#displayName').val()); } else{ $('#newdisplayname').val(data.data.displayName) diff --git a/settings/js/users.js b/settings/js/users.js index 094cddda29461d8e8295c5e073b32376b9421b71..2c27c6d7666203c94b6a4db9c21cdb80461844e1 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -5,449 +5,390 @@ */ var UserList = { - useUndo:true, + useUndo: true, - /** - * @brief Initiate user deletion process in UI - * @param string uid the user ID to be deleted - * - * Does not actually delete the user; it sets them for - * deletion when the current page is unloaded, at which point - * finishDelete() completes the process. This allows for 'undo'. - */ - do_delete:function (uid) { - if (typeof UserList.deleteUid !== 'undefined') { - //Already a user in the undo queue - UserList.finishDelete(null); - } - UserList.deleteUid = uid; + /** + * @brief Initiate user deletion process in UI + * @param string uid the user ID to be deleted + * + * Does not actually delete the user; it sets them for + * deletion when the current page is unloaded, at which point + * finishDelete() completes the process. This allows for 'undo'. + */ + do_delete: function (uid) { + if (typeof UserList.deleteUid !== 'undefined') { + //Already a user in the undo queue + UserList.finishDelete(null); + } + UserList.deleteUid = uid; - // Set undo flag - UserList.deleteCanceled = false; + // Set undo flag + UserList.deleteCanceled = false; - // Provide user with option to undo - $('#notification').data('deleteuser', true); - OC.Notification.showHtml(t('users', 'deleted') + ' ' + uid + '' + t('users', 'undo') + ''); - }, + // Provide user with option to undo + $('#notification').data('deleteuser', true); + OC.Notification.showHtml(t('users', 'deleted') + ' ' + uid + '' + t('users', 'undo') + ''); + }, - /** - * @brief Delete a user via ajax - * @param bool ready whether to use ready() upon completion - * - * Executes deletion via ajax of user identified by property deleteUid - * if 'undo' has not been used. Completes the user deletion procedure - * and reflects success in UI. - */ - finishDelete:function (ready) { + /** + * @brief Delete a user via ajax + * @param bool ready whether to use ready() upon completion + * + * Executes deletion via ajax of user identified by property deleteUid + * if 'undo' has not been used. Completes the user deletion procedure + * and reflects success in UI. + */ + finishDelete: function (ready) { - // Check deletion has not been undone - if (!UserList.deleteCanceled && UserList.deleteUid) { + // Check deletion has not been undone + if (!UserList.deleteCanceled && UserList.deleteUid) { - // Delete user via ajax - $.ajax({ - type:'POST', - url:OC.filePath('settings', 'ajax', 'removeuser.php'), - async:false, - data:{ username:UserList.deleteUid }, - success:function (result) { - if (result.status == 'success') { - // Remove undo option, & remove user from table - OC.Notification.hide(); - $('tr').filterAttr('data-uid', UserList.deleteUid).remove(); - UserList.deleteCanceled = true; - if (ready) { - ready(); - } - } else { - oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user')); - } - } - }); - } - }, + // Delete user via ajax + $.ajax({ + type: 'POST', + url: OC.filePath('settings', 'ajax', 'removeuser.php'), + async: false, + data: { username: UserList.deleteUid }, + success: function (result) { + if (result.status == 'success') { + // Remove undo option, & remove user from table + OC.Notification.hide(); + $('tr').filterAttr('data-uid', UserList.deleteUid).remove(); + UserList.deleteCanceled = true; + if (ready) { + ready(); + } + } else { + oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user')); + } + } + }); + } + }, - add:function (username, groups, subadmin, quota, sort) { - var tr = $('tbody tr').first().clone(); - tr.attr('data-uid', username); - tr.attr('data-displayName', username); - tr.find('td.name').text(username); - tr.find('td.displayName').text(username); - var groupsSelect = $('').attr('data-username', username).attr('data-user-groups', groups); - tr.find('td.groups').empty(); - if (tr.find('td.subadmins').length > 0) { - var subadminSelect = $('').attr('data-username', username).attr('data-user-groups', groups); + tr.find('td.groups').empty(); + if (tr.find('td.subadmins').length > 0) { + var subadminSelect = $(''); - img.css('display', 'none'); - img.parent().children('span').replaceWith(input); - input.focus(); - input.keypress(function (event) { - if (event.keyCode == 13) { - if ($(this).val().length > 0) { - $.post( - OC.filePath('settings', 'ajax', 'changepassword.php'), - {username:uid, password:$(this).val()}, - function (result) { - } - ); - input.blur(); - } else { - input.blur(); - } - } - }); - input.blur(function () { - $(this).replaceWith($('●●●●●●●')); - img.css('display', ''); - }); - }); - $('table').on('click', 'td.password', function (event) { - $(this).children('img').click(); - }); - - $('table').on('click', 'td.displayName>img', function (event) { - event.stopPropagation(); - var img = $(this); - var uid = img.parent().parent().attr('data-uid'); - var displayName = img.parent().parent().attr('data-displayName'); - var input = $(''); - img.css('display', 'none'); - img.parent().children('span').replaceWith(input); - input.focus(); - input.keypress(function (event) { - if (event.keyCode == 13) { - if ($(this).val().length > 0) { - $.post( - OC.filePath('settings', 'ajax', 'changedisplayname.php'), - {username:uid, displayName:$(this).val()}, - function (result) { - } - ); - input.blur(); - } else { - input.blur(); - } - } - }); - input.blur(function () { - $(this).replaceWith($(this).val()); - img.css('display', ''); - }); - }); - $('table').on('click', 'td.displayName', function (event) { - $(this).children('img').click(); - }); - - - $('select.quota, select.quota-user').on('change', function () { - var select = $(this); - var uid = $(this).parent().parent().parent().attr('data-uid'); - var quota = $(this).val(); - var other = $(this).next(); - if (quota != 'other') { - other.hide(); - select.data('previous', quota); - setQuota(uid, quota); - } else { - other.show(); - select.addClass('active'); - other.focus(); - } - }); - $('select.quota, select.quota-user').each(function (i, select) { - $(select).data('previous', $(select).val()); - }) + $('table').on('click', 'td.password>img', function (event) { + event.stopPropagation(); + var img = $(this); + var uid = img.parent().parent().attr('data-uid'); + var input = $(''); + img.css('display', 'none'); + img.parent().children('span').replaceWith(input); + input.focus(); + input.keypress(function (event) { + if (event.keyCode == 13) { + if ($(this).val().length > 0) { + $.post( + OC.filePath('settings', 'ajax', 'changepassword.php'), + {username: uid, password: $(this).val()}, + function (result) { + } + ); + input.blur(); + } else { + input.blur(); + } + } + }); + input.blur(function () { + $(this).replaceWith($('●●●●●●●')); + img.css('display', ''); + }); + }); + $('table').on('click', 'td.password', function (event) { + $(this).children('img').click(); + }); - $('input.quota-other').on('change', function () { - var uid = $(this).parent().parent().parent().attr('data-uid'); - var quota = $(this).val(); - var select = $(this).prev(); - var other = $(this); - if (quota) { - setQuota(uid, quota, function (quota) { - select.children().attr('selected', null); - var existingOption = select.children().filter(function (i, option) { - return ($(option).val() == quota); - }); - if (existingOption.length) { - existingOption.attr('selected', 'selected'); - } else { - var option = $('
    diff --git a/settings/users.php b/settings/users.php index ab7a7aed73481ca06e677af94d4dbfb5108fc9dd..94e6d0a9a10f9ee5751b7d5b645692642a0c5871 100644 --- a/settings/users.php +++ b/settings/users.php @@ -11,6 +11,7 @@ OC_App::loadApps(); // We have some javascript foo! OC_Util::addScript( 'settings', 'users' ); OC_Util::addScript( 'core', 'multiselect' ); +OC_Util::addScript( 'core', 'singleselect' ); OC_Util::addScript('core', 'jquery.inview'); OC_Util::addStyle( 'settings', 'settings' ); OC_App::setActiveNavigationEntry( 'core_users' ); @@ -39,12 +40,14 @@ foreach($quotaPreset as &$preset) { $quotaPreset=array_diff($quotaPreset, array('default', 'none')); $defaultQuota=OC_Appconfig::getValue('files', 'default_quota', 'none'); -$defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false && array_search($defaultQuota, array('none', 'default'))===false; +$defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false + && array_search($defaultQuota, array('none', 'default'))===false; // load users and quota foreach($accessibleusers as $uid => $displayName) { $quota=OC_Preferences::getValue($uid, 'files', 'quota', 'default'); - $isQuotaUserDefined=array_search($quota, $quotaPreset)===false && array_search($quota, array('none', 'default'))===false; + $isQuotaUserDefined=array_search($quota, $quotaPreset)===false + && array_search($quota, array('none', 'default'))===false; $name = $displayName; if ( $displayName != $uid ) { diff --git a/tests/lib/app.php b/tests/lib/app.php new file mode 100644 index 0000000000000000000000000000000000000000..c452d752c9f43cc13cc8749fd7242d9619ebe96b --- /dev/null +++ b/tests/lib/app.php @@ -0,0 +1,74 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +class Test_App extends PHPUnit_Framework_TestCase { + + + public function testIsAppVersionCompatibleSingleOCNumber(){ + $oc = array(4); + $app = '4.0'; + + $this->assertTrue(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleMultipleOCNumber(){ + $oc = array(4, 3, 1); + $app = '4.3'; + + $this->assertTrue(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleSingleNumber(){ + $oc = array(4); + $app = '4'; + + $this->assertTrue(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleSingleAppNumber(){ + $oc = array(4, 3); + $app = '4'; + + $this->assertTrue(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleComplex(){ + $oc = array(5, 0, 0); + $app = '4.5.1'; + + $this->assertTrue(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleShouldFail(){ + $oc = array(4, 3, 1); + $app = '4.3.2'; + + $this->assertFalse(OC_App::isAppVersionCompatible($oc, $app)); + } + + public function testIsAppVersionCompatibleShouldFailTwoVersionNumbers(){ + $oc = array(4, 3, 1); + $app = '4.4'; + + $this->assertFalse(OC_App::isAppVersionCompatible($oc, $app)); + } + + + public function testIsAppVersionCompatibleShouldFailOneVersionNumbers(){ + $oc = array(4, 3, 1); + $app = '5'; + + $this->assertFalse(OC_App::isAppVersionCompatible($oc, $app)); + } + +} \ No newline at end of file diff --git a/tests/lib/dbschema.php b/tests/lib/dbschema.php index fb60ce7dbb7d3f542fe975a18dba672227b7fca1..e20a04ef7fd06fe9d64e55b8de3e7feab9c7e413 100644 --- a/tests/lib/dbschema.php +++ b/tests/lib/dbschema.php @@ -91,9 +91,15 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase { break; case 'pgsql': $sql = "SELECT tablename AS table_name, schemaname AS schema_name " - . "FROM pg_tables WHERE schemaname NOT LIKE 'pg_%' " - . "AND schemaname != 'information_schema' " - . "AND tablename = '".$table."'"; + . "FROM pg_tables WHERE schemaname NOT LIKE 'pg_%' " + . "AND schemaname != 'information_schema' " + . "AND tablename = '".$table."'"; + $query = OC_DB::prepare($sql); + $result = $query->execute(array()); + $exists = $result && $result->fetchOne(); + break; + case 'mssql': + $sql = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{$table}'"; $query = OC_DB::prepare($sql); $result = $query->execute(array()); $exists = $result && $result->fetchOne(); diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index c466fbb63e79bda189e37d05252ce1eaf53e5896..250842805e5d32072fc253a5c6fc892baf008594 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -8,6 +8,12 @@ namespace Test\Files\Cache; +class LongId extends \OC\Files\Storage\Temporary { + public function getId() { + return 'long:' . str_repeat('foo', 50) . parent::getId(); + } +} + class Cache extends \PHPUnit_Framework_TestCase { /** * @var \OC\Files\Storage\Temporary $storage; @@ -204,6 +210,15 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->assertEquals(array($storageId, 'foo'), \OC\Files\Cache\Cache::getById($id)); } + function testLongId() { + $storage = new LongId(array()); + $cache = $storage->getCache(); + $storageId = $storage->getId(); + $data = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $id = $cache->put('foo', $data); + $this->assertEquals(array(md5($storageId), 'foo'), \OC\Files\Cache\Cache::getById($id)); + } + public function tearDown() { $this->cache->clear(); } diff --git a/tests/lib/files/cache/updater.php b/tests/lib/files/cache/updater.php index b83dd0c26e50ab20926388326e838ba48df820ef..7a79f45a20344e2038120442a310e1e8299cb132 100644 --- a/tests/lib/files/cache/updater.php +++ b/tests/lib/files/cache/updater.php @@ -45,7 +45,7 @@ class Updater extends \PHPUnit_Framework_TestCase { if (!self::$user) { if (!\OC\Files\Filesystem::getView()) { self::$user = uniqid(); - \OC\Files\Filesystem::init('/' . self::$user . '/files'); + \OC\Files\Filesystem::init(self::$user, '/' . self::$user . '/files'); } else { self::$user = \OC_User::getUser(); } diff --git a/tests/lib/files/cache/watcher.php b/tests/lib/files/cache/watcher.php index e8a1689cab0dbcee6bce27a24a325214ebd9e463..8ef6ab44d102f72349dc4d0c15092569933d8d15 100644 --- a/tests/lib/files/cache/watcher.php +++ b/tests/lib/files/cache/watcher.php @@ -76,7 +76,6 @@ class Watcher extends \PHPUnit_Framework_TestCase { $updater->checkUpdate(''); $entry = $cache->get('foo.txt'); - $this->assertEquals(-1, $entry['size']); $this->assertEquals('httpd/unix-directory', $entry['mimetype']); $this->assertFalse($cache->inCache('folder')); $this->assertFalse($cache->inCache('folder/bar.txt')); diff --git a/tests/lib/files/filesystem.php b/tests/lib/files/filesystem.php index fd116af2d2e3d08320c2a50ec3985d9882140ae6..6ce45e6178a7c15c9c43d9e1163a4484a702ef4a 100644 --- a/tests/lib/files/filesystem.php +++ b/tests/lib/files/filesystem.php @@ -82,7 +82,7 @@ class Filesystem extends \PHPUnit_Framework_TestCase { $user = \OC_User::getUser(); }else{ $user=uniqid(); - \OC\Files\Filesystem::init('/'.$user.'/files'); + \OC\Files\Filesystem::init($user, '/'.$user.'/files'); } \OC_Hook::clear('OC_Filesystem'); \OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook'); diff --git a/tests/lib/files/mount.php b/tests/lib/files/mount.php index f223f0f6c534de73fa4219bbff21db85390112f1..4e6aaf0679b5b130f6344bc48aca219b533c7c1a 100644 --- a/tests/lib/files/mount.php +++ b/tests/lib/files/mount.php @@ -10,6 +10,12 @@ namespace Test\Files; use \OC\Files\Storage\Temporary; +class LongId extends Temporary { + public function getId() { + return 'long:' . str_repeat('foo', 50) . parent::getId(); + } +} + class Mount extends \PHPUnit_Framework_TestCase { public function setup() { \OC_Util::setupFS(); @@ -38,4 +44,15 @@ class Mount extends \PHPUnit_Framework_TestCase { $mount2 = new \OC\Files\Mount($storage, '/foo/bar'); $this->assertEquals(array($mount, $mount2), \OC\Files\Mount::findById($id)); } + + public function testLong() { + $storage = new LongId(array()); + $mount = new \OC\Files\Mount($storage, '/foo'); + + $id = $mount->getStorageId(); + $storageId = $storage->getId(); + $this->assertEquals(array($mount), \OC\Files\Mount::findById($id)); + $this->assertEquals(array($mount), \OC\Files\Mount::findById($storageId)); + $this->assertEquals(array($mount), \OC\Files\Mount::findById(md5($storageId))); + } } diff --git a/tests/lib/files/storage/mappedlocal.php b/tests/lib/files/storage/mappedlocal.php new file mode 100644 index 0000000000000000000000000000000000000000..b483f3a1954d7ae2139d78d90faf9bd827e8f717 --- /dev/null +++ b/tests/lib/files/storage/mappedlocal.php @@ -0,0 +1,40 @@ +. +* +*/ + +namespace Test\Files\Storage; + +class MappedLocal extends Storage { + /** + * @var string tmpDir + */ + private $tmpDir; + public function setUp() { + $this->tmpDir=\OC_Helper::tmpFolder(); + $this->instance=new \OC\Files\Storage\MappedLocal(array('datadir'=>$this->tmpDir)); + } + + public function tearDown() { + \OC_Helper::rmdirr($this->tmpDir); + unset($this->instance); + } +} + diff --git a/tests/lib/files/storage/mappedlocalwithdotteddatadir.php b/tests/lib/files/storage/mappedlocalwithdotteddatadir.php new file mode 100644 index 0000000000000000000000000000000000000000..d2e5e2e97aff8a84bd046410f1d5091036eb6373 --- /dev/null +++ b/tests/lib/files/storage/mappedlocalwithdotteddatadir.php @@ -0,0 +1,42 @@ +. +* +*/ + +namespace Test\Files\Storage; + +class MappedLocalWithDottedDataDir extends Storage { + /** + * @var string tmpDir + */ + private $tmpDir; + + public function setUp() { + $this->tmpDir = \OC_Helper::tmpFolder().'dir.123'.DIRECTORY_SEPARATOR; + mkdir($this->tmpDir); + $this->instance=new \OC\Files\Storage\MappedLocal(array('datadir'=>$this->tmpDir)); + } + + public function tearDown() { + \OC_Helper::rmdirr($this->tmpDir); + unset($this->instance); + } +} + diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php index 781c0f92c9262111c7db57ddf310b42e23f0051f..f78f66d8b8ad1345fa0a62141a8fadee0466bb16 100644 --- a/tests/lib/files/storage/storage.php +++ b/tests/lib/files/storage/storage.php @@ -146,10 +146,19 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { $localFolder = $this->instance->getLocalFolder('/folder'); $this->assertTrue(is_dir($localFolder)); - $this->assertTrue(file_exists($localFolder . '/lorem.txt')); - $this->assertEquals(file_get_contents($localFolder . '/lorem.txt'), file_get_contents($textFile)); - $this->assertEquals(file_get_contents($localFolder . '/bar.txt'), 'asd'); - $this->assertEquals(file_get_contents($localFolder . '/recursive/file.txt'), 'foo'); + + // test below require to use instance->getLocalFile because the physical storage might be different + $localFile = $this->instance->getLocalFile('/folder/lorem.txt'); + $this->assertTrue(file_exists($localFile)); + $this->assertEquals(file_get_contents($localFile), file_get_contents($textFile)); + + $localFile = $this->instance->getLocalFile('/folder/bar.txt'); + $this->assertTrue(file_exists($localFile)); + $this->assertEquals(file_get_contents($localFile), 'asd'); + + $localFile = $this->instance->getLocalFile('/folder/recursive/file.txt'); + $this->assertTrue(file_exists($localFile)); + $this->assertEquals(file_get_contents($localFile), 'foo'); } public function testStat() { @@ -214,6 +223,22 @@ abstract class Storage extends \PHPUnit_Framework_TestCase { $this->assertContains('/logo-wide.png', $result); } + public function testSearchInSubFolder() { + $this->instance->mkdir('sub') + ; + $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; + $this->instance->file_put_contents('/sub/lorem.txt', file_get_contents($textFile, 'r')); + $pngFile = \OC::$SERVERROOT . '/tests/data/logo-wide.png'; + $this->instance->file_put_contents('/sub/logo-wide.png', file_get_contents($pngFile, 'r')); + $svgFile = \OC::$SERVERROOT . '/tests/data/logo-wide.svg'; + $this->instance->file_put_contents('/sub/logo-wide.svg', file_get_contents($svgFile, 'r')); + + $result = $this->instance->search('logo'); + $this->assertEquals(2, count($result)); + $this->assertContains('/sub/logo-wide.svg', $result); + $this->assertContains('/sub/logo-wide.png', $result); + } + public function testFOpen() { $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt';
    -
    - -
    +
    - +